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

上传人:xin****828 文档编号:15640752 上传时间:2020-08-27 格式:PPT 页数:30 大小:499KB
收藏 版权申诉 举报 下载
基于CCS的嵌入式软件开发与调试.ppt_第1页
第1页 / 共30页
基于CCS的嵌入式软件开发与调试.ppt_第2页
第2页 / 共30页
基于CCS的嵌入式软件开发与调试.ppt_第3页
第3页 / 共30页
资源描述:

《基于CCS的嵌入式软件开发与调试.ppt》由会员分享,可在线阅读,更多相关《基于CCS的嵌入式软件开发与调试.ppt(30页珍藏版)》请在装配图网上搜索。

1、基于CCS的嵌入式实时系统软件开发与调试田黎育,实时调试的挑战,DSP程序常见的错误程序跑飞,死机程序跳转不正确数据被修改指针问题、堆栈溢出 DSP实时程序的特点:与通用OS的应用程序比较(1)至少存在一个中断,即有时限(2)DSP系统是嵌入式系统,用户管理memory map。(3)数据IO程序+数据处理程序:并行 可能的硬件平台的问题给软件带来的麻烦,调试:debug调试就是通过理解系统行为(运行),让系统实现其正确的功能的过程。 在调试时,我们试图根除导致系统出现未预期行为的根本原因。为了理解其根本原因,我们需要理解系统的运行情况。 我们需要理解系统在做什么-不是我们认为系统应该做什么,

2、 也不是另外什么人说系统在做什么-而是系统实际上在做什么。 如果我们不理解系统,就不能指望改动系统让它完成我们想做的事情。而且,我们所做的任何改变系统行为的事情,都有破坏另外一些事情的危险;也可能因为改动而带来了更多的bug。,什么是“调试”,调试的过程,调试的一般过程(1)识别问题(加断点对timer计数的影响)(2)收集信息logging:(收集什么信息?造成输出错误的直接输入信息,逐级tracing)(3)分析收集的数据,定位bug;(4)修改bug。 可控性 16个中断,每个中断的8条指令; 二次跳转: 中断服务程序的任务实现超过8条指令时,跳转到真正处理中断的子程序,_INT4: .

3、asg 4, vec stw .d2 b0, *-b15 | mvk (_isr_jump_table + vec * 4), b0 mvkh (_isr_jump_table + vec * 4), b0 ldw .d2 *b0, b0 nop 4 b .s2 b0 | ldw .d2 *b15+, b0 nop 5,C6000的中断(3),二次跳转的实现:(1)中断跳转表:isr_jump_table 全局变量 (2) “挂”中断:void intr_hook(void (*fp)(void),int cpu_intr); 来源:tic6000evm6xdsp 库函数,头文件,源文件v1.

4、2 有; v2.0 只含头文件,C6000的中断(4),中断嵌套进入中断后,GIE0允许中断嵌套的设置 中断重入打乱时序关系,应该尽量避免,IRPBak = GET_REG(IRP);CSRBak = GET_REG(CSR);IERBak = GET_REG(IER);INTR_DISABLE(CPU_INT6);INTR_GLOBAL_ENABLE();.INTR_CLR_FLAG(CPU_INT6); INTR_GLOBAL_DISABLE(); SET_REG(IRP, IRPBak); SET_REG(CSR, CSRBak); SET_REG(IER, IERBak);,写C600

5、0中断程序,一般来讲,嵌入式系统是中断驱动的系统,另外还有数据流驱动的嵌入式系统(Windows:事件驱动)典型的结构:main函数中初始化While循环等待中断到来,在中断处理程序中进行真正的数据处理 中断之间的关系:同步关系:中断的触发次数成比例异步关系:。因果关系:一个中断触发其他中断,可看作是同步关系中的一种特例 基于以上关系的中断间的数据共享模式:乒乓模式:采数中断处理中断, 同步中断关系圆周buffer:串口中断处理中断,异步中断关系共享memory:传数中断DMA结束中断,因果关系,C6000的DMA(1),C6000的DMA控制器在CPU结构中的位置,确定DMA的数据链路:编程

6、时考虑效率XB, PBC, EMIF, DMC, PMC*其中和PMC的连接是单向的,只能向程序存储空间写入(723数采例子,软硬件bug定位) 4个DMA通道1个辅助DMA(HPI/XB)C6711/C6211/C64XX,16 EDMA通道 复杂的传输模式:满足不同的数据传输应用单通道分割,多帧传输,自动初始化,传输完毕后触发中断.,C6000的DMA(2),由于DMAC的位置,某些存储区之间的数据搬移要通过中间的buffer(一般为IDRAM)实现,否则时间消耗大。如双口和SBSRAM的数据传输,2次DMA的时间小于一次直接DMA的时间;2次DMA传输中的第二次传输的启动一般是靠第一次D

7、MA完成后产生的软件中断触发的 用DMA实现MemoryCopy和MemorySet;片内的MemorySet可以有更快的方法,优化 DMA的优先级:可设,但默认DMA0最高如果高优先级DMA启动时,低优先级DMA没有完成时,要将低优先级DMA的操作挂起,等完成高优先级DMA后,继续完成。所以系统中有几个DMA同时发生时,要根据数据的重要性和数据传输处理的顺序选择合适的DMA通道。 DMAC通用管脚在调试中的使用:发光二极管,C6000的Timer,DSP时间的最细刻度:主频 利用时钟(中断)为系统提供的各种时间, 起到计时器的作用中断发生的间隔时间可设:1ms计算时间间隔精度:1us 利用计

8、时器防止等待超时 TIMER测试程序时间的两种方法:中断法;直接计数法(无中断开销)。,一个AD板的例子,AD板的中断小结,调试经验1,可中断程序的编写:应用条件-核循环的并行指令数不小于6SPRA534 Writing Interruptible Looped Code For The TMS320C6x 调试中数据的存储和显示:系统级调试 中的重要性CCS的显示工具,Matlab 定点DSP实现浮点运算的考虑,调试经验2,一次新增的调试代码不能过长:便于新的bug定位 防御式编程: 例:723解模糊程序边界条件 对感兴趣的事件做记录:放到片外ram;某些计数记录在halt运行后更新时可能有

9、/1的误差 CCS添加断点的注意:run前,running中if( Cnt1000) nop_debug(); audio例子运行时,设置断点的现象 窗口刷新的影响:application的非实时 随时关心程序运行时间:使用timer测量时间,中断法/非中断法 注意数组的越界和指针的使用:中断向量表被修改,程序就会跑飞,调试经验3,关于全局变量和局部变量:bug例:723程序,MTD子函数设置256字的大数组,修改中断向量表 volatile 关键字:其它任务中可能修改 const关键字: 关于中断嵌套 观察中断间的同步关系 程序跑飞: 不要惧怕程序“死了”、“跑飞”,万事皆有原因;对编程环境

10、的基础知识熟悉 。程序跑飞绝大多数是中断向量表被修改 “快”与“慢”,“大”与“小”:,调试经验4,选择高级的优化不会造成程序错误,如果有错误,是自己程序的问题。(例:最初接dqy的 DSP板 程序,局部变量-全局变量,堆栈) 设计小实验进行某些验证:语法,设想。例子:PM数据改变,怀疑硬件问题,结果设计DMA改写PM,不排除软件的bug;培养工程动手能力,想一想-试一试, Far型数据:truncated错误 CCS不支持中文目录 节拍节拍节拍:处理帧、时间粒度 改变某部分后出了问题,就是改的部分有bug,调试经验5,Restart go main跑飞和reloadgo main跑飞的原因:

11、(1)GIE为1和IER的某些位为1(2)发生了某些中断或IFR某些位为1(3)中断向量表未初始化。要运行run time load 后才初始化。发生中断后,读取中断向量表的值是乱数。(联系那个 设置大数组的 调试例子) 中断处理的超时错误计数器在停止(halt命令)后加1JTAG对实时时序的影响,调试小结,应用工程师:实现层次程序员在调试时医生与警察 未能实现功能观察现象(错误的结果) 注重相关的基础知识的掌握:编程环境,硬件平台的测试,自己开发的硬件平台,在交付软件开发工程师之前,应该做测试。以便于硬件bug和软件bug的定位。 主要的测试内容:数据IO,数据处理 测试方法:(1)时间足够长,1hour以上(2)数据IO:DMA,CPU核和各个外设通讯(3)数据处理:FFT,充分使用各个运算单元,Ending,要客观世界可“控制”,可“利用”,你需要先深刻地理解客观世界的运行规律。然后,在种种规律(也可理解为“限制”)的前提下实现你的想法。 调试例子解析,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!