Semidrive E3 I-Jet&J-Link 工具多核启动

一、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)

6. 选择当前 part 支持的 core 的个数
 
图 (6)
7. 选择对应的 .ProbeConfig 文件

路径: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)

8. 修改完代码后,需要先把代码下载到 flash 中,板子运行起来才会 kick 多核,IDE 将会 attach 到 3 个 core 上。

下载方式可选择 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/ 刘倩

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论