Part Number:TMS320C6713B
TI工程师您好:
我将一个简单的串口收发程序再RAM中运行测试通过后下载到flash,下载至flash后(有引导程序,上电会自动将flash程序搬运到RAM运行)不断电只按复位按钮,测试多次程序每次都能正常启动,串口收发都是正常的,但是只要一断电重起,程序可以启动起来,但是串口给板子一发数据,程序就卡死了。请问要从哪方面查找原因呢?堆栈我设置的很大,中断向量表中就一个用于串口接受_c_int08(EDMA)中断。
另外不知道我理解的对不,我的程序中使用了全局变量、static,这些变量应该存在于.cintit .const .bss 段中,在上电的引导程序中应该会自定拷贝至变量符号中,还是我的全局变量必须使用 #pragma DATA_SECTION(xmitbuf,"xmit_buf"); 指令存放到指定位置才可以。
希望工程师能够指点迷津,谢谢!
Nancy Wang:
再次确认一下boot管脚的设置以及复位信号的时序是否正常。
such 说:但是只要一断电重起,程序可以启动起来,但是串口给板子一发数据,程序就卡死了。
只能建议您连上仿真器跟一下启动代码调试看看。
,
such:
您好 boot管脚没问题,设置的从ce1启动,您的意思是断电重新上电和按复位按钮的复位时序有区别导致的吗?
但是我的现象是程序引导是成功的,重新上电程序也能起来可以看到初始化信息,但是串口一交互就卡死了,有打印信息应该就和复位的时序没有关系了把 因为程序已经起来了
,
Nancy Wang:
such 说:但是我的现象是程序引导是成功的,重新上电程序也能起来可以看到初始化信息,但是串口一交互就卡死了,有打印信息应该就和复位的时序没有关系了把 因为程序已经起来了
是的,只是让您再次确认一下,通常来说应该是没有问题的。
用仿真器跟一下程序看看。