TI中文支持网
TI专业的中文技术问题搜集分享网站

关于F28377D的双CPU的FLASH烧写问题

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   而不是掉电和上电, 两个小灯就时钟亮着 而不是亮灭,  暂停后掉电再上电 才会亮灭 这是为什么呢?? 

赞(0)
未经允许不得转载:TI中文支持网 » 关于F28377D的双CPU的FLASH烧写问题
分享到: 更多 (0)