F28379D烧写双核程序(在线&离线)
文章信息
撰写日期 |
2018.11.21 |
完稿日期
2018.11.21
最近维护
2018.11.30
本文作者
multimicro
联系方式
multimicro@qq.com
开发环境
环境说明 |
详细信息 |
备注信息 |
操作系统
Win10_x64
CCS版本
Code Composer Studio v8
官网地址
controlSUITE
controlSUITE for C2000 MCUs
官网地址
F28379D
C2000 Delfino MCU F28379D LaunchPad™ development kit
官网地址
烧写双核程序前需知
在分别对F28379D的CPU1和CPU2两个核进行烧写程序时,需要在CCS中建立两个工程,独立编写两个核的程序。如controlSUITE中提供的双核程序例程:
1. 在线
1.1 编译烧写CPU1程序到F28379D中
1.2 编译CPU2程序,把生成的.out
文件加载到CPU2中
选中上图中红 {MOD}框框中的
Texas Instruments XDS100v2 USB Debug Probe_0/C28xx_CPU2 (Disconnected:Unknown)
,右键点击
Connect Target
连接上CPU2,如图:
选定CPU2,在CCS菜单栏中选择
"Run -> Load -> Load Program..."
弹窗中选择编译好的CPU2的
.aout
文件
点击ok烧录进去即可。
1.3 运行双核程序
上图中可以看出,
Debug
选项中选定的是CPU2,所以这个时候,点击
播放
按钮就是运行CPU2内的程序,若在
Debug
选项中选定的是CPU1,再次点击
播放
就是运行CPU1内的程序。
2. 离线
离线就涉及到烧写FLASH了,这个时候就需要更改一些配置了。
首先看一张图:
从图中可以看出,F28379D的CPU1和CPU2是各自配有一套
FLASH、RAM和ROM
在烧录烧程时两个核实分别烧写到自己所属下的存储位置去的,
烧写程序的地方是没有共用部分的,双核之间的数据传输有一个专门的
RAM
供交换数据(黑 {MOD}箭头所指的)。
2.1 对CPU1烧写FLASH
对于F28379D的离线烧写有两种模式,一种是
FLASH
,另一种是
FLASH_STANDALONE
(见下图)
FLASH
:支持CPU1离线运行程序
FLASH_STANDALONE
:支持CPU1离线运行程序,并可通过
IPC
控制启动CPU2
对于CPU1,如图:
通过以上步骤设置为
FLASH_STANDALONE
模式
编译后烧录即可。
不要点击运行
注意,由于是烧写FLASH,所以一定要保证在烧写时不要干扰开发板,否则会容易导致烧写失败,造成FLASH锁定!
2.2 对CPU2烧写FLASH
对CPU1烧写完FLASH后不要运行,紧接着把cpu2的程序也配置为FLASH模式:
CPU2的FLASH只有一种,没有
STANDALONE
模式
编译后生成
.out
文件即可
然后仿照在线烧写CPU2程序的套路把这个
.out
文件烧写进去即可
烧写完的界面如下:
全部烧写完
不要点击运行,正确的顺序是点击红 {MOD}的按钮断开连接,然后给开发板断电,上电后开发板就会运行双核CPU里面的程序。此时的CPU2就是通过IPC机制被CPU1控制启动的。
板子的启动模式一定为从FLASH启动哦!
Tip:
若对CPU2设置为FLASH模式后,直接点击小虫子烧写FLASH,则会出现以下错误:
C28xx_CPU2: Error occurred during flash operation: No core matches the pattern 'CPU1'
所以,一定要通过
load
的方式烧写CPU2的FLASH程序
2.3 小结
以上是TI在
controlSUITE
中提供的例程,涉及到自己建立的工程脱机运行时,需要自己手动配置cmd文件和进行预定义了,不过既然你能撸到双核开发,想必脱机步骤你应该可以搞定的!
多说一下,在选择不同的模式时,在
Predefined Symbols
下会有不同的预定义,这个是CPU1的程序,预定义中有
CPU1
,那么CPU2的程序中就应该有
CPU2
在这里感谢TI
e2echina
社区里面的两位工程师提供的帮助,给我提供了一些帮助,让我少走了很多弯路,感谢!
维护日志
维护日期 |
维护内容 |
2018.11.30
加入在对CPU2烧写FLASH时的错误操作
参考资料
- F28379D CPU2烧写FLASH
- F28379D双核程序调试问题
- C2000 One-Day Workshop
- F28379D所涉及的各种官方文档