InitFlash(); // Call the flash wrapper init function
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
请教各位,这两句代码顺序。有人说initFLASH得放在后面,可是放在后面,我程序跑到delayus函数就非法中断了。放到前面,我程序能跑
看到论坛中,有人放在前面,说是程序采样出错。。。这是闹那样啊,不明白了。。。
而且同一个Memcopy,定义
extern Uint16 RamfuncsLoadStart, RamfuncsLoadEnd, RamfuncsRunStart;时,同样6.4.1的编译器,ccs6.1.2只认这个
而ccs6.2.0认可
extern Uint16 *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;用上面语句,就是乱码
user4880999:
第一个问题的根本是预编译的问题,已解决。不过还是顺便问一下Memcopy吧
InitFlash(); // Call the flash wrapper init function
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
请教各位,这两句代码顺序。有人说initFLASH得放在后面,可是放在后面,我程序跑到delayus函数就非法中断了。放到前面,我程序能跑
看到论坛中,有人放在前面,说是程序采样出错。。。这是闹那样啊,不明白了。。。
而且同一个Memcopy,定义
extern Uint16 RamfuncsLoadStart, RamfuncsLoadEnd, RamfuncsRunStart;时,同样6.4.1的编译器,ccs6.1.2只认这个
而ccs6.2.0认可
extern Uint16 *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;用上面语句,就是乱码
Eric Ma:
1. 首先当然是memcpy在前面,因为initflash的函数需要先复制到RAM后,才能够调用,包括其他需要运行在RAM的函数,都需要先memcpy后才能运行。
2. 你参考最新controlSUITE的例程吧,用memcpy函数就好了。
ERIC