想让程序在FLASH中运行,现在是仿真可以正常运行;然后退出仿真模式,但是仿真器不拔,板子也能正常运行;最后板子断电,拔掉仿真器,然后上电重启,程序不能正常运行。检查过供电都正常,在烧程序的时候可以看到程序先erase,后load,都没有错误,但就是不能在flash中运行,这是为什么呢?
mangui zhang:插上JTAG应该还是在RAM中运行的确保CMD是flash的
实在不行采用搬移上电后从flash搬移到RAM中运行看看
想让程序在FLASH中运行,现在是仿真可以正常运行;然后退出仿真模式,但是仿真器不拔,板子也能正常运行;最后板子断电,拔掉仿真器,然后上电重启,程序不能正常运行。检查过供电都正常,在烧程序的时候可以看到程序先erase,后load,都没有错误,但就是不能在flash中运行,这是为什么呢?
user5342636:
回复 mangui zhang:
CMD是flash的,请问搬移的具体操作是怎样的呢?第一次遇到这种问题,还请指导一下
想让程序在FLASH中运行,现在是仿真可以正常运行;然后退出仿真模式,但是仿真器不拔,板子也能正常运行;最后板子断电,拔掉仿真器,然后上电重启,程序不能正常运行。检查过供电都正常,在烧程序的时候可以看到程序先erase,后load,都没有错误,但就是不能在flash中运行,这是为什么呢?
Green Deng:
FLASH的.cmd文件的路径有没有包含进include option里面?如图
如果还是不行,可以先尝试使用TI例程烧写,看能不能烧写入FLASH。可以使用以下位置的例程:
C:\ti\controlSUITE\device_support\F2837xS\v210\F2837xS_examples_Cpu1\blinky
烧写的时候选择编译和烧写的时候选择flash模式。
想让程序在FLASH中运行,现在是仿真可以正常运行;然后退出仿真模式,但是仿真器不拔,板子也能正常运行;最后板子断电,拔掉仿真器,然后上电重启,程序不能正常运行。检查过供电都正常,在烧程序的时候可以看到程序先erase,后load,都没有错误,但就是不能在flash中运行,这是为什么呢?
mangui zhang:
回复 user5342636:
如下部分只需要在工程属性中增加预定义
void InitSysCtrl(void)
{// Disable the watchdogDisableDog();
#ifdef _FLASH
// Copy time critical code and Flash setup code to RAM
// This includes the following functions:InitFlash();
// TheRamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart
// symbols are created by the linker. Refer to the device .cmd file.memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
// Call Flash Initialization to setup flash waitstates
// This function must reside in RAMInitFlash_Bank0();
#endif