基于CCS的嵌入式软件开发.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CCS的嵌入式软件开发

基于CCS的 嵌入式实时系统 软件开发 嵌入式系统程序的分类 简单地,可以分为 (1)数据处理的程序: 各种算法的实现;与硬件相对无关 (2)数据传输的程序: 与硬件紧密相关; 中断、DMA: 提高数据传输效率的 两种“古老”而有效的手段 两种程序的开发时间: 数据链路层次(1)CPU核 DSP的寄存器和运算单元之间的数据链路多 数据链路层次(2)DSP 片内存储器 片外存储器接口: EMIF, HPI/XBUS DMA 中断 其它外设: 时钟,串口 补:PLL时钟倍频 BOOT模式,低功耗模式 C6x 片内总线 数据链路层次(3)板级 数据链路层次(4)板间 数据链路层次(5)系统间 C6000的中断(1) 三个概念: (1)中断源(Interrupt source):即中断事件,32个 (2)中断选择号(Interrupt Selection Number):5bit (3)中断(Interrupt):12个可屏蔽+NMI(No.1) +RESET(No.0)+ RTDX(No.3) 中断寄存器的设置: 中断源通过中断选择子(Interrupt Selector) “映射”到CPU的中断上,并可通过外中断极性设置寄存器设置EXT_INT4?EXT_INT7的中断极性(即中断地触发时刻) C6000的中断(2) 中断服务程序: map1:IDRAM 0x000~0x200 0x200 = 16 * 32 ; 16个中断,每个中断的8条指令; 二次跳转: 中断服务程序的任务实现超过8条指令时,跳转到真正处理中断的子程序 C6000的中断(3) 二次跳转的实现: (1)中断跳转表:isr_jump_table 全局变量 (2) “挂”中断: void intr_hook(void (*fp)(void),int cpu_intr); 来源: ti\c6000\evm6x\dsp\… 库函数,头文件,源文件 v1.2 有; v2.0 只含头文件 C6000的中断(4) 中断嵌套 -进入中断后,GIE=0 -允许中断嵌套的设置 中断重入 -打乱时序关系,应该 尽量避免 写C6000中断程序 嵌入式系统是中断驱动的系统 典型的结构:main函数中初始化?While循环等待中断到来,在中断处理程序中进行真正的数据处理 中断之间的关系: -同步关系:中断的触发次数成比例 -异步关系:。。。 -因果关系:一个中断触发其他中断,可看作是同步 关系中的一种特例 基于以上关系的中断间的数据共享模式: -乒乓模式:采数中断+处理中断, 同步中断关系 -圆周buffer:串口中断+处理中断,异步中断关系 -共享memory:传数中断+DMA结束中断,因果关系 C6000的DMA(1) C6000的DMA控制器在CPU结构中的位置,确定DMA的数据链路:编程时考虑效率 XB, PBC, EMIF, DMC, PMC *其中和PMC的连接是单向的,只能向程序存储空间写入(723数采例子,软硬件bug定位) 4个DMA通道+1个辅助DMA(HPI/XB) 复杂的传输模式:满足不同的数据传输应用 单通道分割,多帧传输,自动初始化,传输完毕后触发中断..…. C6000的DMA(2) 由于DMAC的位置,某些存储区之间的数据搬移要通过中间的buffer(一般为IDRAM)实现,否则时间消耗大。 如双口和SBSRAM的数据传输,2次DMA的时间小于一次直接DMA的时间;2次DMA传输中的第二次传输的启动一般是靠第一次DMA完成后产生的软件中断触发的 用DMA实现MemoryCopy和MemorySet; 片内的MemorySet可以有更快的方法,优化 DMA的优先级:可设,但默认DMA0最高 如果高优先级DMA启动时,低优先级DMA没有完成时,要将低优先级DMA的操作挂起,等完成高优先级DMA后,继续完成。 所以系统中有几个DMA同时发生时,要根据数据的重要性和数据传输处理的顺序选择合适的DMA通道。 DMAC通用管脚在调试中的使用:发光二极管 C6000的Timer DSP时间的最细刻度:主频 利用时钟(中断)为系统提供的各种时间, 起到计时器的作用 -中断发生的间隔时间可设:1ms -计算时间间隔精度:1us 利用计时器防止等待超时 一个AD板的例子 AD板的中断小结 C6000程序的优化 需要的知识: -CPU结构:DSP核,8个功能单元,数据通路,IDRAM的结构(bank) 什么最花时间? -跳转延时:if -存储器相关性: C语言的restrict关键字 线形汇编的.nomdep 伪指令 调试经验1 可中断程序的编写:应用条件 -核循环的并行指令数不小于

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档