现在调试easylink 和modbus 协议栈的时候遇到了 硬件异常中断问题,现在不清楚是访问哪个硬件资源或者函数引起的,想看一下 代码调用的 call stack ,但是在ccs中找了半天没找到,请问 CCS7中有 类似的功能么
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
call stack的话,一般在debug 芯片时,通过View菜单查看,
http://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-main.html#after-launch
因为call stack 已集成到调试视图中,如下
恩,按照您的方法尝试了一下还是没法看到,只显示当前的进入的这个异常中断中,我进入的异常中断是 ti_sysbios_family_arm_m3_hwi_excHandler__I;
目前我的任务中使用了 串口驱动 定时器驱动 和 easylink 协议栈; 实现的功能是
1、modbus接收任务通过event阻塞 , 串口接收1个字节 开启10ms定时器超时 再次接收到1个字节时刷新定时器计数器,知道产生定时器10ms超时,在这个超时中发送一个event 给modbus接收任务; 接收任务开始处理这一帧接收的数据;
2、easylink 准备实现1对多的 发送接收,目前测试的时候是点对点发送接收,使用的是阻塞方式;成功接收数据后将数据处理后放在modbus寄存器中;
目前的现象: modbus 和easylink 分开测试 只编译其中一个功能,运行测试都是没问题的,是有2个功能编译到一起,同时工作的时候回产生上面的异常中断;这个异常中断
/* excHandler__I */
#define ti_sysbios_family_arm_m3_Hwi_excHandler ti_sysbios_family_arm_m3_Hwi_excHandler__I
xdc__CODESECT(ti_sysbios_family_arm_m3_Hwi_excHandler__I, "ti_sysbios_family_arm_m3_Hwi_excHandler")
__extern xdc_Void ti_sysbios_family_arm_m3_Hwi_excHandler__I( xdc_UInt *excStack, xdc_UInt lr );
我的问题:我应该怎么定位这个产生异常中断的原因,上面的是宏定义没找到哪里能调用这个函数。
触发的HWI异常处理程序指示CPU异常,实际上没有调试此异常的好方法。
建议您采用如下的方式:
在debug时,点击View -> Registers,查看CPU_SCS 下的CFSR寄存器的值(Configurable Fault Status)
看哪一位出现了异常