如何理解dspc6748的例程

如何理解dspc6748的例程,第1张

TMS320C6748创龙开发例程使用手册

1. 完善StarterWare例程ECAP_APWM,底板TL138/6748-EasyEVM的A3和A4版的测试引脚不一样。

2. UART_INT例程不适用TL138/6748-EasyEVM的A4版。

3. 完善SYS/BIOS例程Board的 *** 作步骤。

1.添加算法例程——车牌识别。

1.修改StarterWare的DEMO综合例程——重新换了新的LOGO图片。

4. 修改SYS/BIOS工程新建。

5. 修改SYS/BIOS例程Queue。

1.修改4.62 NandFlash——NAND FLASH读写测试,增加了高配版例程说明。

1.添加其他例程GPIO_LED_C_Mix。

2.添加其他例程GPIO_LED_C++_Mix。

3.添加SYS/BIOS例程AD模块采集测试(使用uPP)。

4.添加SYS/BIOS例程伺服电机测试。

1. 更新NSP组件为1.10.3.15版本,程序可兼容旧版本NSP,更新以下例程:MJPEG_Streamer、NDK_Runtime、RawSocket、TCP、TCP_Benchmark、TCP_Client、Telnet、UDP、WebServer、WebServer_Audio_Video、WebServer_RMII。

2. 添加SYS/BIOS例程Gate门保护。

3. 添加SYS/BIOS例程Queue队列。

4. 添加SYS/BIOS例程Event事件模块。

5. 添加SYS/BIOS例程Mailbox邮箱通信。

6. 添加SYS/BIOS例程CPU低功耗模式。

7. 添加SYS/BIOS例程VFSCALE动态调频调压测试。

8. 添加SYS/BIOS例程综合demo。

9. 添加SYS/BIOS例程uPP_B_TO_A例程uPP回环测试。

10. 添加SYS/BIOS例程NDK_UIA系统分析基于网络传输。

11. 添加StarterWare例程SPI_EDMA_FLASH。

12. 添加StarterWare例程EMIF_AD8568_100K。

13. 添加StarterWare例程EMIF_AD7606_200K_EDMA。

14. 添加StarterWare例程EMIF_AD7606_10K。

15. 添加StarterWare例程TL5147_LCD_2CH_SYNC。

16. 添加StarterWare例程EDMA3_LED。

17. 添加StarterWare例程EDMA3_LINK。

18. 添加PRU例程PRU_AD8568_SAVE。

19. 添加PRU例程PRU_TIMER2_POLL。

20. 添加PRU例程PRUtoDSP_Interrupt。

21. 优化VPIF_OV2640例程,侦率提高至30帧,并通过LCD显示帧率。

2016/12/09

V2.5

1. 基于算法例程的ImageProcessQR二维码扫描测试例程。

2. 基于算法例程的ImageProcessChar文字识别测试例程。

3. 基于算法例程的ImageProcessAlph字母识别测试例程。

2016/08/26

V2.4

1. 添加基于StarterWare的SD卡读写测试例程。

2. 添加基于StarterWare的SPI0测试例程。

3. 添加基于StarterWare的UART2 FIFO中断模式测试例程。

4. 添加基于StarterWare的TL5147摄像头实现3路图片采集

5. 添加基于PRU的PRU控制AD5724输出连续波形例程。

2016/07/25

V2.3

1. 添加C++的GPIO输出例程。

2. 添加基于SYS/BIOS的UART2中断接收例程。

2016/04/25

V2.2

1. 添加基于StarterWare的5.6、10.4、12、15寸触摸屏驱动例程。

2. 添加基于StarterWare的复合视频双通道输入LCD显示例程。

3. 添加标准汇编的GPIO输出例程。

4. 添加线性汇编的GPIO输出例程。

5. 添加GPIO_KEY直接 *** 作寄存器中断实现流水灯例程。

6. 更新SD卡烧写程序到NAND FLASH内容。

7. 更新Web_IAP网络烧写工具版本。

2015/01/05

V2.1

1. 添加基于SYS/BIOS的二进制信号量例程。

2. 添加基于SYS/BIOS的计数型信号量例程。

3. 添加基于StarterWare的uPP板间通信例程。

4. 添加基于StarterWare的双CAN通信例程。

5. 添加基于PRU的LED输出例程。

6. 添加基于PRU的KEY输入例程。

7. 添加基于PRU的DAC输出例程。

8. 添加基于PRU的7606 ADC采集例程。

9. 添加基于PRU的8568 ADC采集例程。

10. 添加基于PRU的uPP通信例程。

11. 添加网络烧写程序的 *** 作方法。

12. 优化FFT_Benchmark例程。

2015/09/24

V2.0

1. 更新FaceDetect人脸识别测试案例。

2. 删除基于SYS/BIOS的GPIO_LED_CLOCK例程。

3. 删除基于SYS/BIOS的AUDIO_LINE_IN音频输入例程。

4. 删除基于SYS/BIOS的AUDIO_LINE_OUT音频输出例程。

5. 更新基于Starerware的Line Out音频输入(EMDA方式)例程。

6. 添加基于Starerware的Line Out音频输出(中断方式)例程。

7. 添加基于Starerware的Line Out音频输出(查询方式)例程。

8. 添加基于Starerware的Line Out音频输出(导入文件方式)例程。

9. 更新基于Starerware的Line In音频输入(EMDA方式)例程。

10. 添加基于Starerware的Line In音频输入(中断方式)例程。

11. 添加基于Starerware的Line In音频输入(查询方式)例程。

12. 添加基于Starerware的LineIn音频输入(保存文件方式)例程。

13. 添加基于Starerware的LineIn音频输入(波形输入方式)例程。

14. 更新基于Starerware的Mic In音频输入(EMDA方式)例程。

15. 添加基于Starerware的Mic In音频输入(中断方式)例程。

16. 添加基于Starerware的Mic In音频输入(查询方式)例程。

17. 添加基于Starerware的Mic In音频输入(保存文件方式)例程。

18. 添加基于Starerware的Mic In音频输入(波形输入方式)例程。

19. 添加基于Starerware的EMIFA总线8通道并口AD数据采集(EMIF_AD8568)。

20. 添加基于Starerware的EMIFA总线8通道并口AD数据采集(EMIF_AD8568v2)。

21. 添加TL6748-EasyEVM与TL6748F-EVM开发板使用EMIF接口模块说明。

22. 添加基于Starerware的ClockOut时钟输出测试例程。

23. 添加基于Starerware的CPU时钟测试例程。

24. 添加基于SYS/BIOS的时间戳(通用)例程。

25. 添加基于SYS/BIOS的时间戳(专用)例程。

26. 添加基于SYS/BIOS的Line In音频输入与保存例程。

27. 添加基于SYS/BIOS的Mic In音频输入与保存例程。

28. 添加基于SYS/BIOS的MP3音频播放(SD卡)例程。

29. 添加基于SYS/BIOS的WAV音频播放(SD卡)例程。

30. 添加基于SYS/BIOS的网络Web服务器(支持串口输入IP)例程。

这几句是将FLASH中的程序COPY到RAM中运行,通常的目的是加快程序的运行速度,通常有两种情况需要这样去 *** 作:

1、程序中对基要求比较高的函数,如中断;

2、程序需要对FLASH进行 *** 作,这时就要把程序先复制到RAM中运行然后才能对FLASH *** 作。

RamfuncsLoadStart、RamfuncsLoadEnd、RamfuncsRunStart这三个变量是在CMD文件中创建的,创建方式如下:

LOAD_START(RamfuncsLoadStart),

LOAD_END(RamfuncsLoadEnd),

RUN_START(RamfuncsRunStart),

分别表示了装载函数的首地址,装载函数的结束地址和装载函数的运行地址;

执行完MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)后,便将FLASH中相关的程序COPY到了RAM中,之后的程序运行时,只要调用FLASH中RamfuncsLoadStart地址开始的相关函数,系统都会自动地指向RAM中相应的函数入口地址运行。

求采纳为满意回答。

从这些宏定义可以看到C语言是如何支持硬件编程的。

以#define IMR *(volatile unsigned int *)0x0004 为例:

1)0x0004,这个容易理解,是一个十六进制的常数

2)再看(volatile unsigned int *),这是一个强制转换,将0x0004转换成(volatile usigned int *)

3)现在解释volatile usigned int *是什么。* 表示指针(地址),这个指针指向一个 usigned int的数。最前面的volatile有特殊含义:这个指针必须保存在RAM中(不是FLASH或DSP寄存器中)

4)综合上面1)2)3)可知: (volatile unsigned int *)0x0004 的含义是:

0x0004是一个地址,在这个地址内保存的是一个unsigned int 类型的整数。这个地址存在于RAM

5)*(volatile unsigned int *)0x0004 最左边多一个*,表示取地址指向单元的内容。综合起来的意思是:从0x0004地址单元中取出一个usigned int 类型的数据值

6)#define IMR *(volatile unsigned int *)0x0004 的意思是,将从0x0004地址单元中取出一个usigned int 类型的数据值定义为IMR

7)根据DSP硬件,在DSP中RAM中的 0x0004地址单元恰好是中断管理寄存器!

8)绕了半天,#define IMR *(volatile unsigned int *)0x0004 的意思是:在C语言程序中,定义了一个宏标示符 IMR 来表示DSP中的中断管理寄存器。在程序中,可以通过这个宏标示符来使用这个寄存器:

unsigned int v = IMR //取出中断管理寄存器的值并赋给v


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11733872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存