rt
Eric Ma:
CPU2有没有设置引导啊?
IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
或者说先去跑一下TI发布的历程先
C:\ti\controlSUITE\device_support\F2837xD\v190\F2837xD_examples_Dual\blinky_dc
ERIC
rt
同大同:
回复 Eric Ma:
你好,问题1:程序中#ifdef _FLASH ,那么我在哪里define呢?好像程序中并没define啊, 是不是我需要在main()之前先 define _STANDALONE然后 define _FLASH 1 呢?? 因为 好像不define 程序都是带阴影无效的。
问题2:
#ifdef _STANDALONE#ifdef _FLASH// Send boot command to allow the CPU2 application to begin executionIPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);#else// Send boot command to allow the CPU2 application to begin executionIPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);#endif#endif
我直接在cpu1中把上面这一坨 改成IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH); 这一句就好了吧
问题3
_STANDALONE 和 _FLASH 有何区别??
rt
Eric Ma:
回复 同大同:
1. 可以在主文件前面define啊,或是右键工程>属性》CCS BUILD > c2000 compiler >advanced options > predefined sysbol中设置。
注意一下,你右键工程》build configuration 》 set active 不同的编译选项后,其实已经会有不同的predefine帮你设好了。
2. 也可以啊。只不过例程是为了配合不同的编译设置,做了一些预编译而已。一般单机跑的情况,就一定要加这句IPC指令,否则CPU2跑不起来。
3. STANDALONE表示单机跑情况,即不带仿真器。FLASH即可以带仿真器,也可以不带仿真器。
Eric
rt
同大同:
回复 Eric Ma:
大哥,你好,我在你的指示下将blinky双核的程序做了化简,只在cpu1中写了IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
将cpu2中的
extern Uint16 RamfuncsLoadStart;extern Uint16 RamfuncsLoadSize;extern Uint16 RamfuncsRunStart;
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
都删除了 ,load 完之后 掉电 再 上电 发现两个小灯确实按程序的设定进行亮灭了,但是还是发现了一个问题
就是 如果我在load 完之后 直接对cpu1 和cpu2 点resume 而不是掉电和上电, 两个小灯就时钟亮着 而不是亮灭, 暂停后掉电再上电 才会亮灭 这是为什么呢??