6基于CCS的嵌入式软件开发与调试.pptVIP

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

基于CCS的 嵌入式实时系统 软件开发与调试 田黎育 实时调试的挑战 DSP程序常见的错误 程序跑飞,死机?程序跳转不正确 数据被修改?指针问题、堆栈溢出 DSP实时程序的特点:与通用OS的应用程序比较 (1)至少存在一个中断,即有时限 (2)DSP系统是嵌入式系统,用户管理memory map。 (3)数据IO程序+数据处理程序:并行 可能的硬件平台的问题给软件带来的麻烦 什么是“调试” 调试:debug 调试就是通过理解系统行为(运行),让系统实现其正确的功能的过程。 在调试时,我们试图根除导致系统出现未预期行为的根本原因。为了理解其根本原因,我们需要理解系统的运行情况。 我们需要理解系统在做什么----不是我们认为系统应该做什么, 也不是另外什么人说系统在做什么----而是系统实际上在做什么。 如果我们不理解系统,就不能指望改动系统让它完成我们想做的事情。而且,我们所做的任何改变系统行为的事情,都有破坏另外一些事情的危险;也可能因为改动而带来了更多的bug。 调试的过程 调试的一般过程 (1)识别问题(加断点对timer计数的影响) (2)收集信息logging:(收集什么信息?造成输出错误的直接输入信息,逐级tracing) (3)分析收集的数据,定位bug; (4)修改bug。 可控性 可观测性 :来自软件工程的概念,其中可观测性是软件、硬件调试的基石。 调试的手段 静态调试: 单步执行;设置断点; 观察变量;观察寄存器和存储器值; 修改变量、寄存器和存储器的值; 运行一段程序; “必须掌握的基本技能” 动态调试: 实时记录、观察数据;RTDX 条件断点; 论述“调试”的书籍 The Science of Debugging, Matt Telles. 程序调试思想与实践,中国水力水电出版社 ---bug 是系统逻辑的奴隶 Debugging Application , John Robbins , Microsoft Press ,2000 主要针对windows程序调试 中文名: 应用程序调试技术 软件调试思想 : Robert Charles Metzger 嵌入式实时系统程序的分类 简单地,可以分为 (1)数据处理的程序: 各种算法的实现;与硬件相对无关 (2)数据传输的程序: 与硬件紧密相关; 中断、DMA: 提高数据传输效率的 两种“古老”而有效的手段 两种程序的开发时间: 数据链路层次(1)CPU核 DSP的寄存器和运算单元之间的数据链路多 数据链路层次(2)DSP 片内存储器 片外存储器接口: EMIF, HPI/XBUS DMA 中断 其它外设: 时钟,串口 数据链路层次(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中断程序 一般来讲,嵌入式系统是中断驱动的系统,另外还有数据流驱动的嵌入式系统(Windows:事件驱动) 典型的结构:main函数中初始化?While循环等待中断到来,在中断处理程序中进行真正的数据处理 中断之间的关系: -同步关系:中断的触发次数成比例 -异步关系:。。。 -因果关系:一个中断触发其他中断,可看作是同步 关系中的一种特例 基于以上关系的中断间的数据共享模式: -乒乓模式:采数中断+处理中断

您可能关注的文档

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档