我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
Jones Chen:
程序烧到Flash之后,请用不要断开仿真器,用Load Symbols将程序加载,然后运行,Flash在线调试,看看程序跑到什么地方了?
另外,程序中是否使用Delay_us()函数,此函数是否已经copy到Ram中执行。
Stack的大小开的是否足够?
看看程序是否进入了什么illegal ISR?
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
ke xu:
回复 Jones Chen:
你可以先将仿真器卸掉,试试 有可能是连接仿真器的原因,有时烧写完成程序以后等你在重新上电时,仿真器就认为是复位状态的。
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
jie chen:
回复 ke xu:
@ Jones Chen:尝试用Flash在线调试,发现这时用串口调试助手收发数据都很正确,和用仿真器仿真结果一样,但是拔掉仿真器,启动装置,就再也回不来数据了
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
Jones Chen:
回复 jie chen:
你的上电Boot引脚是怎么接的?一共有4个引脚来决定上电时的Boot位置。你是否对这四个引脚有拉低的行为?
另外,为了确保程序在Flash能够跑起来,请用一个闪灯程序测试一下,看看是否程序都没有跑起来。
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
jie chen:
回复 Jones Chen:
现在情况是这样的。。仿真依旧正常,但烧写完成后,用串口发送数据10次,可能其中就有一次回过来,或者几率更小。
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
Zitong Wang:
回复 Jones Chen:
我也遇到了类似的问题,烧到flash里后连着仿真器非常正常,去掉仿真器就有一定的误码率。
后来不使用DELAY-US来延时,用定时中断就不会出现这个问题了。
DELAY——US在程序里已经 .sect "ramfuncs",是不是已经声明为RAM运行?
还用不用在主程序里做一些处理?
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
Johnson Chen1:
回复 Zitong Wang:
请楼主确认是否正确初始化FLASH waitstates,通过以下方法:
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
// Call Flash Initialization to setup flash waitstates
// This function must reside in RAM
InitFlash();
//
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
jie chen:
回复 Johnson Chen1:
是的。。
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
jie chen:
回复 jie chen:
/*** Copy all FLASH sections that need to run from RAM (use memcpy() from RTS library) ***/
// Section secureRamFuncs contains user defined code that runs from CSM secured RAM
memcpy( &secureRamFuncs_runstart,
&secureRamFuncs_loadstart,
&secureRamFuncs_loadend – &secureRamFuncs_loadstart);
//copy from the flash to the ram for change the registers of the flash,
/*** Initialize the FLASH ***/
InitFlash();
我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。
jie chen:
回复 Johnson Chen1:
@ Johnson Chen,这种现象是不是主要还是cmd文件的问题?您能留个联系方式吗?