1、地址的分配要注意,空间要够
2、在ram里面,出现错误
C28xx: Trouble Setting Breakpoint with the Action “Finish Auto Run” at 0x223db3: (Error -1066 @ 0x223DB3) Unable to set requested breakpoint in memory. Verify that the breakpoint address is in writable memory. (Emulation package 5.0.872.0)
这里的问题是,程序用的内部ram进行的仿真,程序过大,需要使能外部ram
具体操作如下:
打开ccs版本安装目录下的f28335.gel,我的在C:\ti\ccsv5\ccs_base\emulation\gel目录下,去掉只读属性。
OnReset(int nErrorCode)
{
if (GEL_IsInRealtimeMode()) /* If in real-time-mode */
{
}
else /* Put device in C28x mode */
{
C28x_Mode();
}
Unlock_CSM();
ADC_Cal();
// XINTF_Enable(); /* Uncomment to enable XINTF on Reset */
}
去掉// XINTF_Enable();前面的反斜杠,变成
OnReset(int nErrorCode)
{
if (GEL_IsInRealtimeMode()) /* If in real-time-mode */
{
}
else /* Put device in C28x mode */
{
C28x_Mode();
}
Unlock_CSM();
ADC_Cal();
XINTF_Enable(); /* Uncomment to enable XINTF on Reset */
}
再次编译。调试即可。
3、在下载完程序后,最后能把dsp仿真器从板子上拔下来,而不是把USB线拔下来,否则极易出现dsp启动异常。——是不是很可笑的问题,我的板子老是无法正常启动,是不是flash原因是不是ram原因,查半天是这个,哭了吧,所以保险起见,直接拔掉仿真器。划重点。
4、寄存器配置时候,注意高低字节。校验也是。还有就是数据类型的定义。
5、编程过程中要注意内存溢出。该是布尔型就定义个布尔。定义的变量一定记得初始化。
6、有些东西必须放在中断里执行,你的任务开销要弄清,小心因为多个时间要求高的任务,导致计算不过来,这时候程序放在内部RAM还是外部FLASH,你的变量定义在外部RAM还是内部RAM,自己算清楚。
7、下载器一般不会坏,下不了程序看看下载线的端子吧,十有八九是接头坏了
|