5_基于CCS的嵌入式软件开发与调试(已套模板)

更新时间:2023-08-17 23:33:02 阅读量: 资格考试认证 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C6000 DSP体系结构 清华远见 培训资料

The success's road

基于CCS的 嵌入式实时系统 软件开发与调试

C6000 DSP体系结构 清华远见 培训资料

远见品质

实时调试的挑战

DSP程序常见的错误 程序跑飞,死机 程序跳转不正确 数据被修改 指针问题,堆栈溢出 DSP实时程序的特点:与通用OS的应用程 序比较 (1)至少存在一个中断,即有时限 (2)DSP系统是嵌入式系统,用户管理 memory map. (3)数据IO程序+数据处理程序:并行 可能的硬件平台的问题给软件带来的麻烦

C6000 DSP体系结构 清华远见 培训资料

远见品质

什么是"调试"输入× 输出

调试:debug

调试就是通过理解 理解系统行为 运行 行为(运行 理解 行为 运行),让系统实现其正确 的功能的过程. 在调试时,我们试图根除导致系统出现未预期行为 未预期行为的 未预期行为 根本原因.为了理解其根本原因,我们需要理解系统 根本原因 的运行情况. 我们需要理解系统在做什么----不是我们认为系统应该 做什么, 也不是另外什么人说系统在做什么----而是系 统实际上在做什么. 如果我们不理解系统,就不能指望改动系统让它完成 我们想做的事情.而且,我们所做的任何改变系统行 为的事情,都有破坏另外一些事情的危险;也可能因 为改动而带来了更多的bug.

C6000 DSP体系结构 清华远见 培训资料

远见品质

调试的过程调试的一般过程 (1)识别问题(加断点对timer计数的影 响) (2)收集信息logging:(收集什么信息? 造成输出错误的直接 直接输入信息,逐级 直接 tracing) (3)分析收集的数据,定位bug; (4)修改bug. 可控性 & 可观测性 :来自软件工程的概 念,其中可观测性是软件,硬件调试的基 石.

C6000 DSP体系结构 清华远见 培训资料

远见品质

调试的手段

静态调试: 单步执行;设置断点; 观察变量;观察寄存器和存储器值; 修改变量,寄存器和存储器的值; 运行一段程序; "必须掌握的基本技能" 动态调试: 实时记录,观察数据;RTDX 条件断点;

C6000 DSP体系结构 清华远见 培训资料

远见品质

论述"调试"的书籍The Science of Debugging, Matt Telles. 程序调试思想与实践,中国水力水电出版 社 ---bug 是系统逻辑的奴隶 Debugging Application , John Robbins , Microsoft Press ,2000 主要针对windows程序调试 中文名: 应用程序调试技术 软件调试思想 : Robert Charles Metzger

C6000 DSP体系结构 清华远见 培训资料

远见品质

嵌入式实时系统程序的分类

简单地,可以分为 (1)数据处理的程序: 各种算法的实现;与硬件相对无关 (2)数据传输的程序: 与硬件紧密相关; 中断,DMA: 提高数据传输效率的 中断, 两种"古老"而有效的手段 两种程序的开发时间:

C6000 DSP体系结构 清华远见 培训资料

远见品质

数据链路层次(1)CPU核DSP的寄存器 和运算单元之 间的数据链路 多

C6000 DSP体系结构 清华远见 培训资料

远见品质

数据链路层次(2)DSP

片内存储器 片外存储器接 口: EMIF, HPI/XBUS DMA 中断 其它外设: 时钟,串口

C6000 DSP体系结构 清华远见 培训资料

远见品质

C6x 片内总线Program Addr Program Data Data Addr - T1 Data Data - T1 Data Addr - T2 Data Data - T2 DMA Addr - Read x32 x256 x32 x32/64 x32 x32/64 x32 x32

x32 x32

Internal Memory

PC Aregs

A DExternal Interface

A D A D'C67x

Bregs

x32

Peripheralsx32

DMA Data - Read DMA Addr - Write DMA Data - Write

DMA

can perform 64-bit data loads. 64-

C6000 DSP体系结构 清华远见 培训资料

远见品质

数据链路层次(3)板级

C6000 DSP体系结构 清华远见 培训资料

远见品质

数据链路层次(4)板间

系统定时信号

AD预处理板

脉冲压缩板 C6701 C6701 C6701 C6701 C6202

定 时 板 C31

ADC C6202 ADC C6202

DSP板 并口 串口 C6202

CPU 板

Compact PCI 总线 某 信号处理系统框图

C6000 DSP体系结构 清华远见 培训资料

远见品质

数据链路层次(5)系统间

其实是一个雷达系统的子 系统之间的数据链路. 再进一步:这个雷达系统 可以组网,利用通信系统 给决策单位提供信息,进 行后数据处理,做出决策 总之,要对数据链路有一 个清晰的各级层次的传输 图

C6000 DSP体系结构 清华远见 培训资料

远见品质

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 DSP体系结构 清华远见 培训资料

远见品质

C6000的中断(2)

中断服务程序: map1:IDRAM 0x000~0x200 0x200 = 16 * 32 ; 16个中断,每个中断的8条指令; 二次跳转: 中断服务程序的任务实现超过8条指令时,跳转到真正 处理中断的子程序_INT4: .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 DSP体系结构 清华远见 培训资料

远见品质

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 DSP体系结构 清华远见 培训资料

远见品质

C6000的中断(4)

中断嵌套-进入中断后,GIE=0 -允许中断嵌套的设置 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);

中断重入-打乱时序关系,应该 尽量避免

C6000 DSP体系结构 清华远见 培训资料

远见品质

写C6000中断程序

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

C6000 DSP体系结构 清华远见 培训资料

远见品质

C6000的DMA(1)

C6000的DMA控制器在CPU结构中的位置,确 定DMA的数据链路:编程时考虑效率 XB, PBC, EMIF, DMC, PMC *其中和PMC的连接是单向的,只能向程序 存储空间写入(723数采例子,软硬件bug定位) 4个DMA通道+1个辅助DMA(HPI/XB) C6711/C6211/C64XX,16 EDMA通道 复杂的传输模式:满足不同的数据传输应用 单通道分割,多帧传输,自动初始化,传输完 毕后触发中断..….

C6000 DSP体系结构 清华远见 培训资料

远见品质

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 DSP体系结构 清华远见 培训资料

远见品质

C6000的Timer

DSP时间的最细刻度:主频 利用时钟(中断)为系统提供的各种时间, 起到计时器的作用 -中断发生的间隔时间可设:1ms -计算时间间隔精度:1us 利用计时器防止等待超时 TIMER测试程序时间的两种方法: 中断法;直接计数法(无中断开销).

本文来源:https://www.bwwdw.com/article/968j.html

Top