其他分享
首页 > 其他分享> > DSP—2833x CMD文件说明以及非法中断

DSP—2833x CMD文件说明以及非法中断

作者:互联网


请添加图片描述

1.cinit是用来存放变量初始值的段,在程序复位以后首先会运行_c_int00函数,这个函数会将初始值搬到相应的带初始值的变量。

2.pinit我的理解是应该在C++时用的,一般用不上!

3.const 和.econst都是有来存储常量的,主要差异应该是寻址范围,.const是64K范围内,>而.econst是全地址范围。

4…bss和.ebss的差异也是这样,.bss是64K范围内,而.ebss是全地址范围。

5.esystem这个段的话,如果你没有那些函数的话,也不用管它,有这个段定义它也不会占用RAM空间。

6…stack大小定义问题,其实要精确定义不太容易,多数时候要靠经验,如果你无法估计它的大小,最简单的办法是给堆栈尽可能的大。至于为什么我将堆栈大小设为小于0X3B0,是因为RAMM0最大只有0X3B0。

请添加图片描述

. 1.中是否使用了Delay_us()函数,如果是,是否已经copy到Ram中?必须的先执行MyCopy才能使用Delay_us

. 2.开了足够的Stack空间

. 3.程序后,先单步运行,看看在哪条语句进入了非法中断

. 4.中是否有越界的情况?例如定义了一个50字节的数组,在赋值的时候,或者在程序运行中,超过了50,非法越界

. 5.中断是否正常,特别是中断号是否对应

标签:初始值,定义,中断,是否,CMD,非法,DSP,2833x,函数
来源: https://blog.csdn.net/Steven_new_h/article/details/119084493