一、MCAL 多核 I-jet 工具启动
软件包 |
使用工具 |
使用软件 |
拨码 |
示例板子 |
MCAL RTG3.0 |
I-jet |
IAR |
1110 |
SD103_E3_GATEWAY_ePOWERTRAIN_A03 开发板 |
表(1)
1.准备环境
图(1)
2. 准备工具图(2)
3. 多核调试仅支持 IRAM,去掉 use flash loader(s)图(3)
4. Kick 多核图 (4)
此处 E3640 芯片 kick 一个 SP lockstep 核,一个 SX lockstep 核。
5. 选择 debugger Driver图(5)
路径:C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm\config\debugger\SemiDrive
图(7)
E3.ProbeConfig、E3xxx_SF.ProbeConfig、E3xxx_SP.ProbeConfig、E3xxx_SX.ProbeConfig 文件是按照一定规律设置。当我们得知方法时,就可以自行对 .ProbeConfig 进行修改以满足不同需求。
打开 E3xxx_SF.ProbeConfig 观察一下:
图 (8)
我们得知,“;”有“注释”之意。
在第 4 步时,我们 kick 一个 SP lockstep 核,一个 SX lockstep 核,E3.ProbeConfig、E3xxx_SF.ProbeConfig、E3xxx_SP.ProbeConfig、E3xxx_SX.ProbeConfig 文件中没有满足要求的 .ProbeConfig,任意选一个进行修改:
图 (9)
图(10)
下载方式可选择 SD TOOL 工具也可选择 IDE 下载。
若选择 IDE 下载方式,勾选上 use flash loader(s),将 symmetric multicore 数量改回 1,点击 project->download active application。
若使用 SD TOOL 工具,将要下载的版本下的 pac 加载到 ospi1 pac下载成功后如图:
图 (11)
9. 勾选掉 use flash loader(s),将 symmetric multicore 数量改回 3,拨码开关改变为 0000,重新上电,重新编译代码,并重新 debug。可以选择如下工具栏进行 all core atart 和 all core stop,同时进行多核调试。core0 指 sf,core1 指 sx,core2 指 sp。
图 (12)
可以通过 View->cores 窗口打开 Cores 状态窗口,可以通过此窗口观察到当前 Attach 到的 Core 以及各个 Core 的状态,并且可以双击某个 core 跳转到对应 Core,此时对应的 Registers、Disassembly 窗口也会自动跳转到对应 Core。
图 (13)
10. 启动成功图 (14)
二、SSDK 多核 J-Link 工具启动
软件包 |
使用工具 |
使用软件 |
拨码 |
示例板子 |
示例 demo |
SSDK RTG3.0 |
J-Link |
IAR |
视情况 |
SD103_E3_GATEWAY_ePOWERTRAIN_A03 开发板 |
Multicore-rtc |
表 (2)
SSDK 的多核启动流程与 MCAL 多核启动流程差距较大。我们先介绍一下整体的情况。
所有 core 的程序都 xip 运行在 flash 上;
Xip 程序启动前,需先在 iram 中运行 sf core 的 bootloader 程序对 xspi 以及 flash 进行初始化;
Bootlader 程序作为 sf core 的 boot package 由 ROM 启动或由 IAR IDE 环境调试启动,sf 的 XIP 程序以及 sp0,sp1,sx0.sx1 的 XIP 程序都以固定地址的形式下载到所指定的绝对地址;
Bootloader 调试时,需要先保证 sf 的 XIP 程序以及 sp0,sp1,sx0,sx1 的 XIP 程序已经下载到 flash 的指定地址,下载方法见调试流程。
Storage layout:
Hyperflash:
0x100c0000 boot package ( bootloader 程序 +BPT )
0x10140000 sf XIP 程序;1M
0x10340000 sp0 XIP 程序;2M
0x103c0000 sp1 XIP 程序;0.5M
0x10440000 sx0 XIP 程序;0.5M
0x104c0000 sx1 XIP 程序;0.5M
Norflash:
0x10008000 boot package (bootloader 程序 +BPT)
0x10140000 sf XIP 程序;1M
0x10288000 sp0 XIP 程序;1M
0x10308000 sp1 XIP 程序;1M
0x10388000 sx0 XIP 程序;0.5M
0x10408000 sx1 XIP 程序;1M
sf 的 XIP 程序以及 sp0,sp1,sx0,sx1 的 XIP 程序
调试流程:
1. 打开 sf/sp0/sp1/sx0/sx1 的工程,并逐个编译;2. 打开 bootloader 工程并切换到 FlashDebug 配置;点击编译,此时 IAR 会把 SFS+bootloader 程序+sf/sp0/sp1/sx0/sx1 的 XIP 程序整体编译为一个 elf 文件。
elf 文件路径:D:\Semidrive\train\internaltrain\ssdktrain\ssdktrain\project\E3_3.0\ssdk\boards\e3_gateway\app_demo\multicore-rtc\bootloader\IAR\FlashDebug\Exe
3. 点击 Download active application 按钮,IAR flashloader 下载上述 elf 到 flash 中;flash loader 路径:D:\Semidrive\train\internaltrain\ssdktrain\ssdktrain\project\E3_RTG3.0\ssdk\devices\E3640\flashloader\xip\hyperflash
图 (15)
图 (16)
4. 以 0b0000 模式启动开发板,UART 打印输出,此时表示所有 core 的程序都已经运行起来;图 (17)
5. 将bootloader工程切换到 Debug 配置,点击Download and Debug按钮,即可对bootloader工程进行调试;(此时由于没有配置 flashloader, download and Debug 仅下载 bootloader 程序至 iram;)。拨码开关不做改变,依旧为 0000。
图 (18)
6. 在 bootloader 程序启动 sf/sp0/sp1/sx0/sx1 之后,打开 sf/sp0/sp1/sx0/sx1 的 XIP 程序;选择 project->Attach to Running Target,attach 到各个 core 的程序进行调试,例 sf:图 (19)
7. 如果需要修改 sp0/sp1/sx0/sx1 的 XIP 程序,需要使用 bootloader 工程并切换到 FlashDebug 配置重新编译下载;(flashloader 仅支持运行于 sf core)8. 如果需要修改 sf 的 XIP 程序,可以直接使用 debug and download 进行下载调试。
参考资料:E3 Mcal IAR + I-jet 多核调试
IAR Multicore 调试
欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com
作者:Rita Liu/ 刘倩
评论