
TRACE32:多核调试配置
对于开发人员,Lauterbach调试器并不陌生,如果你所参与的项目,已经有配置好的工程和*.cmm脚本,调试多核系统时,会方便很多。如果是新的工程,没有进行多核配置,可能需要费点脑筋。本文,就TRACE32如何配置多核调试,做一个简单介绍。
提示:本文基于TC375TP讨论
1、加载默认Flash刷写*.cmm脚本
安装TRACE32以后,在安装路径~~\demo\tricore\flash下(~~表示本地安装路径),存在不同芯片架构、不同型号的Flash刷写脚本(*.cmm),如下所示:
提示:本文使用tricore架构芯片
(一)刷写Flash(更新程序)
使用刷写脚本(*.cmm)的主要目的是更新程序(Application或者Bootloader),操作步骤如下:
Step1:启动TRACE32,系统处于system down状态,如下所示:
Step2:File->Run Script...加载目标板脚本(本文选择:TC37x.cmm)
加载目标板脚本后,提示选择芯片型号,本文型号TC375TP,如下所示:
选择芯片型号后,弹出如下提示,单机“Yes”,如下所示:
Step3:加载目标*.elf文件
加载*.elf文件以后,发现调试界面的右下角没有多核选择项,即:脚本默认单核调试,如下所示:
如果这样,如何才能多核调试呢?答:修改默认编程脚本。
2、修改默认Flash编程脚本,启动多核调试
打开默认TC37x.cmm脚本,芯片配置操作脚本如下所示:
(一)启用多核调试配置
在TC37x.cmm中,添加启动多核调试配置的脚本语句,如下所示:
SYStem.CPU TC375TP
CORE.ASSIGN 1. 2. 3. // assign cores to the SMP system
提示:TC375TP有3个Core,当你清楚项目使用的芯片型号时,可以直接使用SYStem.CPU命令配置,最终修改如下所示:
保存TC37x.cmm脚本的修改,重新启动TRACE32,在调试界面的右下角即可看到一个显示Core Number的窗口,可以在此选择不同的Core进行调试,如下所示:
(二)不同Core调试示例
比如:调试Core1,示意如下:
3、加载指令路径下的*.elf文件
一般,在本地CP中,编译器生成的*.elf文件路径固定,所以,加载固定路径下的*.elf文件会方便很多。
(一)修改TC37x.cmm脚本
修改TC37x.cmm脚本的具体位置如下所示,本文使其可以直接打开"D:\WorkSpace\HighTec\*"路径,如下所示:
保存TC37x.cmm脚本,重启TRACE32,再次加载TC37x.cmm脚本后,提示加载*.elf文件的路径如下所示:
也可以使用Data.LOAD.Elf "*.elf文件的本地路径"命令直接加载绝对路径下的*.elf文件,示例如下:
Data.LOAD.Elf "D:\WorkSpace\HighTec\HighTec_TC375_MulitiCore\iRAM\HighTec_TC375_MulitiCore.elf"
(二)补充:System.Up和System.Attach区别
调试过程中,经常会用到System.Up和System.Attach两个选项,在TRACE32右下角右击选择,如下所示:
System.Up:会复位芯片,程序复位到复位向量位置(reset vector),Debug模式激活,程序running。
System.Attach:程序仍然在运行,没有复位,Debug处于激活状态。只有调试器在NoDebug模式时,选择Attach才有效,即:程序再次Running,System进入Up模式。
文章转载自公众号:开心果 Need Car
