概述
本章主要介绍开发板支持的三种调试方式:
GDB 调试
可在主机上直接运行,通过 GDB Server 与目标设备通信
支持使用
.axf
文件,在相应源码位置设置断点,实现源码级调试
Jlink 调试
支持直接暂停 CPU 并获取 CPU 的当前状态
可直接访问和操作目标设备内存
Ozone 调试
提供图形化界面调试, 便于调试和可视化操作
硬件连接
参考下图将 JLink 的 SWCLK 和 SWDIO 连接到 SoC 的 SWD CLK 和 SWD DATA,然后将 JLink 连接到 PC。
JLink 连接到 SWD 的接线图
备注
JLink 的版本必须高于或等于 v9。
GDB 调试
GDB 软件连接和配置
从 SEGGER 官网下载并安装最新版 JLink
连接时可编辑对应的
xxx_jlinkGDBSever.bat
调整 JLinkGDBServer.exe 的路径
连接 JLinkGDBSever
双击 {SDK}\amebadplus_gcc_project\utils\jlink_script\cm4_jlinkGDBSever.bat
,如下图所示,确认 KM4 与 JLinkGDBSever 成功连接。

小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
双击 {SDK}\amebadplus_gcc_project\utils\jlink_script\cm0_jlinkGDBSever.bat
,如下图所示,确认 KM0 与 JLinkGDBSever 成功连接。

连接 JLinkGDBSever
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\km4_jlinkGDBSever_combination.bat
,如下图所示,确认 KM4 与 JLinkGDBSever 成功连接:

小心
保持此窗口开启以进行 KM4 后续操作
连接 JLinkGDBSever
系统中 KM4 使用 SWD ,KR4 使用 Cjtag。在 EVB 中,两者共用同一组 Debug pin。由于默认工作在 SWD 模式,故如需要切换为 Cjtag 方式需要通过 SWD 连接 KM4 并配置内部电路工作状态
关闭 KM4 JLinkGDBSever 连接, 然后进行 KR4 连接
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\kr4_jlinkGDBSever_combination.bat
,如下图所示,确认 KR4 与 JLinkGDBSever 成功连接:

小心
保持此窗口开启以进行 KR4 后续操作
连接 JLinkGDBSever
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\km4_jlinkGDBSever_combination.bat
,如下图所示,确认 KM4 与 JLinkGDBSever 成功连接:

小心
保持此窗口开启以进行 KM4 后续操作
连接 JLinkGDBSever
系统中 KM4 使用 SWD ,KR4 使用 Cjtag。在 EVB 中,两者共用同一组 Debug pin。由于默认工作在 SWD 模式,故如需要切换为 Cjtag 方式需要通过 SWD 连接 KM4 并配置内部电路工作状态
关闭 KM4 JLinkGDBSever 连接, 然后进行 KR4 连接
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\kr4_jlinkGDBSever_combination.bat
,如下图所示,确认 KR4 与 JLinkGDBSever 成功连接:

小心
保持此窗口开启以进行 KR4 后续操作
连接 JLinkGDBSever
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\km4_jlinkGDBSever_combination.bat
,如下图所示,确认 KM4 与 JLinkGDBSever 成功连接:

小心
保持此窗口开启以进行 KM4 后续操作
连接 JLinkGDBSever
系统中 KM4 使用 SWD ,KR4 使用 Cjtag。在 EVB 中,两者共用同一组 Debug pin。由于默认工作在 SWD 模式,故如需要切换为 Cjtag 方式需要通过 SWD 连接 KM4 并配置内部电路工作状态
关闭 KM4 JLinkGDBSever 连接, 然后进行 KR4 连接
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\kr4_jlinkGDBSever_combination.bat
,如下图所示,确认 KR4 与 JLinkGDBSever 成功连接:

小心
保持此窗口开启以进行 KR4 后续操作
连接 JLinkGDBSever
双击 {SDK}\amebasmart_gcc_project\utils\jlink_script\ca32_jlinkGDBSever_core0.bat
,如下图所示,确认 CA32 core0 与 JLinkGDBSever 成功连接。

连接 JLinkGDBSever
双击 {SDK}\amebasmart_gcc_project\utils\jlink_script\ca32_jlinkGDBSever_core1.bat
,如下图所示,确认 CA32 core1 与 JLinkGDBSever 成功连接。

连接 JLinkGDBSever
双击 {SDK}\amebasmart_gcc_project\utils\jlink_script\cm4_jlinkGDBSever.bat
,如下图所示,确认 KM4 与 JLinkGDBSever 成功连接。

小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
双击 {SDK}\amebasmart_gcc_project\utils\jlink_script\cm0_jlinkGDBSever.bat
,如下图所示,确认 KM0 与 JLinkGDBSever 成功连接。

连接 JLinkGDBSever
双击 {SDK}\amebagreen2_gcc_project\utils\jlink_script\ap_jlinkGDBSever.bat
,如下图所示,确认 KM4TZ 与 JLinkGDBSever 成功连接。

小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
双击 {SDK}\amebagreen2_gcc_project\utils\jlink_script\np_jlinkGDBSever.bat
,如下图所示,确认 KM4NS 与 JLinkGDBSever 成功连接。

按以下步骤部署 JLinkGDBServer
下载最新版 JLink 软件包
执行安装命令:
$ dpkg -i JLink_Linux_V840_x86_64.deb
连接时可编辑对应的
xxx_jlinkGDBSever.sh
调整 JLinkGDBServer.exe 的路径
连接 JLinkGDBSever
运行
/amebadplus_gcc_project/utils/jlink_script/cm4_jlinkGDBSever.sh
,如下所示,确认 KM4 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP2_KM4.JLinkScript J-Link settings file: none ------Target related settings------ Target device: Cortex-M33 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled May 23 2023 14:44:38 Hardware: V11.00 S/N: 601015439 Feature(s): RDI, FlashBP, FlashDL, JFlash, GDB Checking target voltage... Target voltage: 3.35 V Listening on TCP/IP port 2335 Connecting to target... Connected to target Connecting for GDB connection... Waiting for GDB connection...
小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
运行
/amebadplus_gcc_project/utils/jlink_script/cm0_jlinkGDBSever.sh
,如下所示,确认 KM0 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: API_KM0.JLinkScript J-Link settings file: none ------Target related settings------ Target device: Cortex-M23 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled May 23 2023 14:44:38 Hardware: V11.00 S/N: 601015439 Feature(s): RDI, FlashBP, FlashDL, JFlash, GDB Checking target voltage... Target voltage: 3.35 V Listening on TCP/IP port 2331 Connecting to target... Connected to target Waiting for GDB connection...
连接 JLinkGDBSever
运行
/amebalite_gcc_project/utils/jlink_script/km4_jlinkGDBSever.sh
,如下所示,确认 KM4 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP0_KM4.JLinkScript J-Link settings file: none ------Target related settings------ Target device: Cortex-M33 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.32 V Listening on TCP/IP port 2335 Connecting to target... Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
系统中 KM4 使用 SWD ,KR4 使用 Cjtag。在 EVB 中,两者共用同一组 Debug pin。由于默认工作在 SWD 模式,故如需要切换为 Cjtag 模式则需要通过 SWD 连接 KM4 并配置内部电路工作状态
关闭 KM4 JLinkGDBSever 连接, 然后进行 KR4 连接
运行
/amebalite_gcc_project/utils/jlink_script/kr4_jlinkGDBSever.sh
,如下所示,确认 KR4 与 JLinkGDBSever 成功连接。------Target related settings------ Target device: RV32 Target interface: cJTAG Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.32 V Listening on TCP/IP port 2331 Connecting to target... J-Link found 1 JTAG device, Total IRLen = 5 JTAG ID: 0x161818F3 (RISC-V) Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行 KR4 后续操作
连接 JLinkGDBSever
运行
/amebalite_gcc_project/utils/jlink_script/km4_jlinkGDBSever.sh
,如下所示,确认 KM4 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP0_KM4.JLinkScript J-Link settings file: none ------Target related settings------ Target device: Cortex-M33 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.32 V Listening on TCP/IP port 2335 Connecting to target... Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
系统中 KM4 使用 SWD ,KR4 使用 Cjtag。在 EVB 中,两者共用同一组 Debug pin。由于默认工作在 SWD 模式,故如需要切换为 Cjtag 模式则需要通过 SWD 连接 KM4 并配置内部电路工作状态
关闭 KM4 JLinkGDBSever 连接, 然后进行 KR4 连接
运行
/amebalite_gcc_project/utils/jlink_script/kr4_jlinkGDBSever.sh
,如下所示,确认 KR4 与 JLinkGDBSever 成功连接。------Target related settings------ Target device: RV32 Target interface: cJTAG Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.32 V Listening on TCP/IP port 2331 Connecting to target... J-Link found 1 JTAG device, Total IRLen = 5 JTAG ID: 0x161818F3 (RISC-V) Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行 KR4 后续操作
连接 JLinkGDBSever
运行
/amebalite_gcc_project/utils/jlink_script/km4_jlinkGDBSever.sh
,如下所示,确认 KM4 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP0_KM4.JLinkScript J-Link settings file: none ------Target related settings------ Target device: Cortex-M33 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.32 V Listening on TCP/IP port 2335 Connecting to target... Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
系统中 KM4 使用 SWD ,KR4 使用 Cjtag。在 EVB 中,两者共用同一组 Debug pin。由于默认工作在 SWD 模式,故如需要切换为 Cjtag 模式则需要通过 SWD 连接 KM4 并配置内部电路工作状态
关闭 KM4 JLinkGDBSever 连接, 然后进行 KR4 连接
运行
/amebalite_gcc_project/utils/jlink_script/kr4_jlinkGDBSever.sh
,如下所示,确认 KR4 与 JLinkGDBSever 成功连接。------Target related settings------ Target device: RV32 Target interface: cJTAG Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.32 V Listening on TCP/IP port 2331 Connecting to target... J-Link found 1 JTAG device, Total IRLen = 5 JTAG ID: 0x161818F3 (RISC-V) Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行 KR4 后续操作
连接 JLinkGDBSever
运行
/amebasmart_gcc_project/utils/jlink_script/ca32_jlink_core0.sh
,如下所示,确认 CA32 core0 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP3_CA32_Core0.JLinkScript J-Link settings file: none ------Target related settings------ Target device: cortex-a32 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.40 V Listening on TCP/IP port 2337 Connecting to target... Connected to target Waiting for GDB connection...
连接 JLinkGDBSever
运行
/amebasmart_gcc_project/utils/jlink_script/ca32_jlink_core1.sh
,如下所示,确认 CA32 core1 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP3_CA32_Core1.JLinkScript J-Link settings file: none ------Target related settings------ Target device: cortex-a32 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.40 V Listening on TCP/IP port 2339 Connecting to target... Connected to target Waiting for GDB connection...
连接 JLinkGDBSever
运行
/amebasmart_gcc_project/utils/jlink_script/cm4_jlink.sh
,如下所示,确认 KM4 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP1_KM4.JLinkScript J-Link settings file: none ------Target related settings------ Target device: cortex-m33 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.40 V Listening on TCP/IP port 2335 Connecting to target... Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
运行
/amebasmart_gcc_project/utils/jlink_script/cm0_jlink.sh
,如下所示,确认 KM0 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP0_KM0.JLinkScript J-Link settings file: none ------Target related settings------ Target device: cortex-m23 Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 27 2041 16:36:21 Hardware: V11.00 S/N: 50120677 Feature(s): GDB, JFlash, FlashDL, RDI, FlashBP Checking target voltage... Target voltage: 3.40 V Listening on TCP/IP port 2331 Connecting to target... Connected to target Waiting for GDB connection...
连接 JLinkGDBSever
运行
/amebagreen2_gcc_project/utils/jlink_script/ap_jlinkGDBSever.sh
,如下所示,确认 KM4TZ 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP2_AP.JLinkScript J-Link settings file: none ------Target related settings------ Target device: Cortex-M33 Target device parameters: none Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 1 2025 10:02:30 Hardware: V11.00 S/N: 51024332 Feature(s): GDB Checking target voltage... Target voltage: 3.34 V Listening on TCP/IP port 2335 Connecting to target... Halting core... Core security extensions: Implemented Connected to target Waiting for GDB connection...
小心
保持此窗口开启以进行后续操作
连接 JLinkGDBSever
运行
/amebagreen2_gcc_project/utils/jlink_script/np_jlinkGDBSever.sh
,如下所示,确认 KM4NS 与 JLinkGDBSever 成功连接。------J-Link related settings------ J-Link Host interface: USB J-Link script: AP1_NP.JLinkScript J-Link settings file: none ------Target related settings------ Target device: Cortex-M33 Target device parameters: none Target interface: SWD Target interface speed: 4000kHz Target endian: little Connecting to J-Link... J-Link is connected. Firmware: J-Link V11 compiled Apr 1 2025 10:02:30 Hardware: V11.00 S/N: 51024332 Feature(s): GDB Checking target voltage... Target voltage: 3.34 V Listening on TCP/IP port 2331 Connecting to target... Halting core... Core security extensions: Not implemented Connected to target Waiting for GDB connection...
GDB 固件烧录
我们更推荐使用 Realtek 提供的 Image Tool 软件下载固件。更多信息请参考 Image Tool。
如果必须使用 JLinkGDBSever 下载固件,请参考如下内容:
编译固件(参考 编译代码)并连接 JLinkGDBSever
键入
build.py -gdb
命令开始下载,之后固件将被下载到 Flash 中,以 RTL8721Dx 为例,如下所示:Breakpoint 1, Gdb_Floader_Program_Start () at .amebadplus_gcc_project/project_km4/asdk/flashloader/rtl_flash_download.c:36 36 in .amebadplus_gcc_project/project_km4/asdk/flashloader/rtl_flash_download.c flash_write FileName:3 flash_write FileSize:0 Loopnumber = 0 TailSize = 0 global variables FlashDatSrc:3000a754 FlashBlockWriteSize:800 Flash write start... Breakpoint 2, Gdb_Floader_Program_End () at .amebadplus_gcc_project/project_km4/asdk/flashloader/rtl_flash_download.c:45 45 in .amebadplus_gcc_project/project_km4/asdk/flashloader/rtl_flash_download.c dump for check
验证固件是否被正确地下载
在下载之前勾选 verify download,在固件下载过程中,将会有 verified OK
的日志提示。

查看 GDBSever 连接窗口确认下载进度。
Starting target CPU...
...Breakpoint (set by 'GDB') reached @ address 0x3000A304
Reading common registers: Read register 'r0' (4 bytes) from hardware: 0x14000000
Read register 'r1' (4 bytes) from hardware: 0x0002FF00
Read register 'r2' (4 bytes) from hardware: 0x9C0DF100
Read register 'r3' (4 bytes) from hardware: 0x900F0030
Read register 'r4' (4 bytes) from hardware: 0x00000000
Read register 'r5' (4 bytes) from hardware: 0xFFFFFFFF
Read register 'r6' (4 bytes) from hardware: 0x19E0FF00
Read register 'r7' (4 bytes) from hardware: 0x19E0FF00
Read register 'r8' (4 bytes) from hardware: 0x00000000
Read register 'r9' (4 bytes) from hardware: 0x00000000
Read register 'r10' (4 bytes) from hardware: 0x00000018
Read register 'r11' (4 bytes) from hardware: 0x00000000
Read register 'r12' (4 bytes) from hardware: 0x00000000
Read register 'sp' (4 bytes) from hardware: 0x93A2E030
Read register 'lr' (4 bytes) from hardware: 0x9C0DF030
Read register 'pc' (4 bytes) from hardware: 0x04A30030
Read register 'xpsr' (4 bytes) from hardware: 0x01000061
Removing breakpoint @ address 0x3000A2EC, Size = 2
Removing breakpoint @ address 0x3000A304, Size = 2
Read 4 bytes @ address 0x3000A304 (Data = 0x21004A03)
GDB closed TCP/IP connection (Socket 10)
下载完成后按下
Reset
按键,可以看到设备使用新的固件启动。
GDB 调试模式流程
编译固件并连接 JLinkGDBSever
执行命令:
进入 SDK 根目录
运行
build.py -debug
,进入 GDB 模式,以 RTL8721Dx 为例,如下所示:
GDB CMD : cd E:\sdk0508\amebadplus_gcc_project\project_km4/asdk && C:/rtk-toolchain/asdk-10.3.1-4365/mingw32/newlib/bin/arm-none-eabi-gdb.exe -x E:\sdk0508\amebadplus_gcc_project\project_km4/asdk\gnu_utility/gnu_script\rtl_gdb_debug.txt GNU gdb (Realtek ASDK-10.3.1 Build 4365) 12.1.90.20221114-git Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-w64-mingw32 --target=arm-none-eabi". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". warning: No executable has been specified and target does not support determining executable automatically. Try using the "file" command. 0x3000a304 in ?? () Notification of completion for asynchronous execution commands is off. (gdb)
GDB 调试器指南
GNU 调试器支持在程序运行时进行状态检查与错误追踪(参考章节 GDB 调试模式流程)
完整文档:GDB 用户手册
功能模块 |
命令 |
操作说明 |
---|---|---|
断点管理 |
break (b) |
设置执行暂停点 |
数据监视点 |
watch |
监控变量变化 (含 watch/rwatch/awatch) |
断点列表 |
info |
显示所有激活的断点/监视点 |
断点删除 |
delete (d) |
移除指定断点 |
恢复执行 |
continue (c) |
继续程序运行 |
单步进入 |
step (s) |
进入函数内部执行 |
单步跳过 |
next (n) |
执行当前行并跳至下一行 |
退出调试 |
quit (q) |
终止调试会话 |
调用追踪 |
backtrace (bt) |
显示函数调用栈 |
源码查看 |
list (l) |
显示上下文代码 |
数据检查 |
print (p) |
输出变量/表达式值 |
备注
数据监视点的监视范围建议小于 20 字节。
JLink 调试
JLink 连接和配置
从 SEGGER 官网下载并安装最新版 JLink
连接时可编辑对应的
xxx_jlink.bat
调整 JLink.exe 的路径
连接 JLink
双击 {SDK}\amebadplus_gcc_project\utils\jlink_script\cm4_jlink.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help
J-Link>connect
Specify target interface speed [kHz]. <Default>: 4000 kHz
Speed>
Device "CORTEX-M33" selected.
Connecting to target via SWD
InitTarget() start
InitTarget() end
Found SW-DP with ID 0x6BA02477
DPIDR: 0x6BA02477
AP map detection skipped. Manually configured AP map found.
AP[0]: APB-AP (IDR: Not set)
AP[1]: AHB-AP (IDR: Not set)
AP[2]: AHB-AP (IDR: Not set)
AP[2]: Core found
AP[2]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x721FD22A. Implementer code: 0x72 (Realtek)
Feature set: Mainline
Found Cortex-M33 r1p10, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
Security extension: implemented
Secure debug: enabled
CoreSight components:
ROMTbl[0] @ E00FF000
[0][0]: E000E000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS
[0][1]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT
[0][2]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB
Cortex-M33 identified.
连接 JLink
双击 {SDK}\amebadplus_gcc_project\utils\jlink_script\cm0_jlink.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM0 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help
J-Link>connect
Specify target interface speed [kHz]. <Default>: 4000 kHz
Speed>
Device "CORTEX-M23" selected.
Connecting to target via SWD
InitTarget() start
******************************************************
J-Link script: AmebaDplus KM0 J-Link script
******************************************************
InitTarget() end
Found SW-DP with ID 0x6BA02477
DPIDR: 0x6BA02477
AP map detection skipped. Manually configured AP map found.
AP[0]: APB-AP (IDR: Not set)
AP[1]: AHB-AP (IDR: Not set)
AP[2]: AHB-AP (IDR: Not set)
AP[1]: Core found
AP[1]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x721CD20A. Implementer code: 0x72 (Realtek)
Feature set: Baseline
Found Cortex-M23 r1p10, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
Security extension: not implemented
CoreSight components:
ROMTbl[0] @ E00FF000
[0][0]: E000E000 CID B105900D PID 000F9013 DEVARCH 47702A04 DEVTYPE 00 SCS
[0][1]: E0001000 CID B105900D PID 000F9015 DEVARCH 47701A02 DEVTYPE 00 DWT
[0][2]: E0002000 CID B105900D PID 000F9014 DEVARCH 47701A03 DEVTYPE 00 FPB
Cortex-M23 identified.
连接 JLink
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\km4_jlink_combination.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set) AP[1]: AHB-AP (IDR: Not set) AP[2]: AHB-AP (IDR: Not set) AP[3]: APB-AP (IDR: Not set) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB Cortex-M33 identified.
连接 JLink
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\kr4_jlink_combination.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KR4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect JTAGConf> Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "RV32" selected. Connecting to target via cJTAG ConfigTargetSettings() start ConfigTargetSettings() end TotalIRLen = 5, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x161818F3, IRLen: 05, Unknown device Debug architecture: RISC-V debug: 0.13 AddrBits: 8 DataBits: 32 IdleClks: 7 Memory access: Via system bus: No Via ProgBuf: Yes (2 ProgBuf entries) Via abstract command (AAM): May be tried as last resort DataBuf: 2 entries autoexec[0] implemented: Yes Detected: RV32 core CSR access via abs. commands: No Temp. halted CPU for NumHWBP detection HW instruction/data BPs: 8 Support set/clr BPs while running: No HW data BPs trigger after execution of inst BG memory access support: No RISC-V identified.
连接 JLink
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\km4_jlink_combination.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set) AP[1]: AHB-AP (IDR: Not set) AP[2]: AHB-AP (IDR: Not set) AP[3]: APB-AP (IDR: Not set) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB Cortex-M33 identified.
连接 JLink
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\kr4_jlink_combination.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KR4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect JTAGConf> Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "RV32" selected. Connecting to target via cJTAG ConfigTargetSettings() start ConfigTargetSettings() end TotalIRLen = 5, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x161818F3, IRLen: 05, Unknown device Debug architecture: RISC-V debug: 0.13 AddrBits: 8 DataBits: 32 IdleClks: 7 Memory access: Via system bus: No Via ProgBuf: Yes (2 ProgBuf entries) Via abstract command (AAM): May be tried as last resort DataBuf: 2 entries autoexec[0] implemented: Yes Detected: RV32 core CSR access via abs. commands: No Temp. halted CPU for NumHWBP detection HW instruction/data BPs: 8 Support set/clr BPs while running: No HW data BPs trigger after execution of inst BG memory access support: No RISC-V identified.
连接 JLink
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\km4_jlink_combination.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set) AP[1]: AHB-AP (IDR: Not set) AP[2]: AHB-AP (IDR: Not set) AP[3]: APB-AP (IDR: Not set) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB Cortex-M33 identified.
连接 JLink
双击 {SDK}\amebalite_gcc_project\utils\jlink_script\kr4_jlink_combination.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KR4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect JTAGConf> Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "RV32" selected. Connecting to target via cJTAG ConfigTargetSettings() start ConfigTargetSettings() end TotalIRLen = 5, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x161818F3, IRLen: 05, Unknown device Debug architecture: RISC-V debug: 0.13 AddrBits: 8 DataBits: 32 IdleClks: 7 Memory access: Via system bus: No Via ProgBuf: Yes (2 ProgBuf entries) Via abstract command (AAM): May be tried as last resort DataBuf: 2 entries autoexec[0] implemented: Yes Detected: RV32 core CSR access via abs. commands: No Temp. halted CPU for NumHWBP detection HW instruction/data BPs: 8 Support set/clr BPs while running: No HW data BPs trigger after execution of inst BG memory access support: No RISC-V identified.
连接 JLink
双击
{SDK}\amebasmart_gcc_project\utils\jlink_script\ca32_jlink_core0.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 Core0 与 JLink 成功连接,如下图所示:Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-A32" selected. Connecting to target via SWD InitTarget() start ****************************************************** J-Link script: AmebaSmart (Cortex-A32 CPU0) J-Link script ****************************************************** ****************************************************** J-Link script: ResetTarget() ****************************************************** EDPRSR: 0x0000000B InitTarget() end Found SW-DP with ID 0x6BA02477 Skipped AP map detection. User manually configured AP map Skipped APB-AP search. User manually configured AP[3] as debug ABP-AP AP[0]: AHB-AP AP[1]: AHB-AP AP[2]: AHB-AP AP[3]: APB-AP ROM table scan skipped because DebugRegs and CTI addr. are manually specified Cortex-A32 @ 0x80030000 (configured) CoreCTI @ 0x80038000 (configured) Debug architecture: ARMv8 6 code breakpoints, 4 data breakpoints Processor features: EL0 support: AArch32 EL1 support: AArch32 EL2 support: N/A EL3 support: N/A FPU support: Single + Double + Conversion Add. info (CPU temp. halted) Current exception level: EL1 Exception level AArch usage: EL0: AArch32 EL1: AArch32 EL2: AArch32 EL3: AArch32 Non-secure status: Non-secure Cache info: Inner cache boundary: none LoU Uniprocessor: 1 LoC: 2 LoU Inner Shareable: 1 I-Cache L1: 32 KB, 256 Sets, 64 Bytes/Line, 2-Way D-Cache L1: 32 KB, 128 Sets, 64 Bytes/Line, 4-Way Unified-Cache L2: 256 KB, 512 Sets, 64 Bytes/Line, 8-Way Cortex-A32 identified.
连接 JLink
双击
{SDK}\amebasmart_gcc_project\utils\jlink_script\ca32_jlink_core1.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 Core1 与 JLink 成功连接,如下图所示:Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-A32" selected. Connecting to target via SWD InitTarget() start ****************************************************** J-Link script: AmebaSmart (Cortex-A32 CPU0) J-Link script ****************************************************** ****************************************************** J-Link script: ResetTarget() ****************************************************** EDPRSR: 0x0000000B InitTarget() end Found SW-DP with ID 0x6BA02477 Skipped AP map detection. User manually configured AP map Skipped APB-AP search. User manually configured AP[3] as debug ABP-AP AP[0]: AHB-AP AP[1]: AHB-AP AP[2]: AHB-AP AP[3]: APB-AP ROM table scan skipped because DebugRegs and CTI addr. are manually specified Cortex-A32 @ 0x80032000 (configured) CoreCTI @ 0x80039000 (configured) Debug architecture: ARMv8 6 code breakpoints, 4 data breakpoints Processor features: EL0 support: AArch32 EL1 support: AArch32 EL2 support: N/A EL3 support: N/A FPU support: Single + Double + Conversion Add. info (CPU temp. halted) Current exception level: EL1 Exception level AArch usage: EL0: AArch32 EL1: AArch32 EL2: AArch32 EL3: AArch32 Non-secure status: Non-secure Cache info: Inner cache boundary: none LoU Uniprocessor: 1 LoC: 2 LoU Inner Shareable: 1 I-Cache L1: 32 KB, 256 Sets, 64 Bytes/Line, 2-Way D-Cache L1: 32 KB, 128 Sets, 64 Bytes/Line, 4-Way Unified-Cache L2: 256 KB, 512 Sets, 64 Bytes/Line, 8-Way Cortex-A32 identified.
连接 JLink
双击 {SDK}\amebasmart_gcc_project\utils\jlink_script\cm4_jlink.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set) AP[1]: AHB-AP (IDR: Not set) AP[2]: AHB-AP (IDR: Not set) AP[3]: APB-AP (IDR: Not set) AP[1]: Core found AP[1]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB Cortex-M33 identified.
连接 JLink
双击 {SDK}\amebasmart_gcc_project\utils\jlink_script\cm0_jlink.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM0 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M23" selected. Connecting to target via SWD InitTarget() start ****************************************************** J-Link script: AmebaSmart KM0 J-Link script ****************************************************** InitTarget() end Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set) AP[1]: AHB-AP (IDR: Not set) AP[2]: AHB-AP (IDR: Not set) AP[3]: APB-AP (IDR: Not set) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721CD208. Implementer code: 0x72 (Realtek) Feature set: Baseline Found Cortex-M23 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: not implemented CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9013 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9015 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9014 DEVARCH 47701A03 DEVTYPE 00 FPB Cortex-M23 identified.
连接 JLink
双击 {SDK}\amebagreen2_gcc_project\utils\jlink_script\ap_jlink.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM4TZ 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 AP map detection skipped. Manually configured AP map found. AP[0]: APB-AP (IDR: Not set) AP[1]: AHB-AP (IDR: Not set) AP[2]: AHB-AP (IDR: Not set) AP[2]: Core found AP[2]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD22A. Implementer code: 0x72 (Realtek) Feature set: Mainline Found Cortex-M33 r1p10, Little endian. FPUnit: 4 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9023 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9025 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9024 DEVARCH 47701A03 DEVTYPE 00 FPB Cortex-M33 identified.
连接 JLink
双击 {SDK}\amebagreen2_gcc_project\utils\jlink_script\np_jlink.bat
,按照提示输入 connect 和 回车键(默认值)后,确认 KM4NS 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start ****************************************************** J-Link script: AP1 J-Link script ****************************************************** InitTarget() end Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 AP map detection skipped. Manually configured AP map found. AP[0]: APB-AP (IDR: Not set) AP[1]: AHB-AP (IDR: Not set) AP[2]: AHB-AP (IDR: Not set) AP[1]: Core found AP[1]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD22A. Implementer code: 0x72 (Realtek) Feature set: Mainline Found Cortex-M33 r1p10, Little endian. FPUnit: 4 code (BP) slots and 0 literal slots Security extension: not implemented CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9023 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9025 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9024 DEVARCH 47701A03 DEVTYPE 00 FPB Cortex-M33 identified.
按以下步骤部署 JLink :
下载最新版 JLink 软件包
执行安装命令:
$ dpkg -i JLink_Linux_V840_x86_64.deb
连接时可编辑对应的
xxx_jlink.sh
调整 JLink.exe 的路径
连接 JLink
运行
/amebadplus_gcc_project/utils/jlink_script/cm4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,确认 KM4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end - Took 236us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: Core found AP[2]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD22A. Implementer code: 0x72 (Realtek) Feature set: Mainline Cache: L1 I/D-cache present Found Cortex-M33 r1p0, Little endian. FPU: 4 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 0F09D13A DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 0F09D135 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 0F09D134 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way D-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M33 identified.
小心
保持此窗口开启以进行后续操作
连接 JLink
运行
/amebadplus_gcc_project/utils/jlink_script/cm0_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,确认 KM0 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link> connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M23" selected. Connecting to target via SWD InitTarget() start *********************************************************** * J-Link script: AmebaDPlus KMO J-Link script *********************************************************** InitTarget() end - Took 251us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: Core found AP[1]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721CD20A. Implementer code: 0x72 (Realtek) Feature set: Baseline Cache: L1 I/D-cache present Found Cortex-M23 r1p10, Little endian. FPUUnit: 4 code (BP) slots and 0 literal slots Security extension: not implemented CoreSight components: ROMTbl[0] @ E00FF000 E00FE000: CID B105900D PID 00FF0013 DEVARCH 47702A04 DEVTYPE 00 SCS E00FF000: CID B105900D PID 00FF0013 DEVARCH 47701A02 DEVTYPE 00 DWT E00FC000: CID B105900D PID 00FF0013 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way D-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M23 identified.
连接 JLink
运行
/amebalite_gcc_project/utils/jlink_script/km4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,如下所示, 确认 KM4 与 JLink 成功连接:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end - Took 354us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[3]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Cache: L1 I/D-cache present Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E00FE000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [1][0]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [2][0]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way D-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M33 identified.
KR4 连接 JLink
运行
/amebalite_gcc_project/utils/jlink_script/kr4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,如下所示, 确认 KR4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect JTAGConf> Device "RV32" selected. Connecting to target via cJTAG ConfigTargetSettings() start ConfigTargetSettings() end - Took 11us TotalIRLen = 5, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x161818F3, IRLen: 05, Unknown device Assuming RISC-V TAP with DTM setup Debug architecture: RISC-V debug: 0.13 AddrBits: 8 DataBits: 32 IdleClks: 7 Memory access: Via system bus: No Via ProgBuf: Yes (2 ProgBuf entries) Via abstract command (AAM): May be tried as last resort DataBuf: 2 entries autoexec[0] implemented: Yes Detected: RV32 core Temp. halting CPU for for feature detection... HW instruction/data BPs: 8 Support set/clr BPs while running: No HW data BPs trigger after execution of inst CSR access via abs. commands: Yes Compressed instruction support: Yes Feature detection done. Restarting core... BG memory access Description: Default access mode RISC-V identified.support: No Memory zones: Zone: "Default"
连接 JLink
运行
/amebalite_gcc_project/utils/jlink_script/km4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,如下所示, 确认 KM4 与 JLink 成功连接:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end - Took 354us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[3]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Cache: L1 I/D-cache present Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E00FE000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [1][0]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [2][0]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way D-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M33 identified.
KR4 连接 JLink
运行
/amebalite_gcc_project/utils/jlink_script/kr4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,如下所示, 确认 KR4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect JTAGConf> Device "RV32" selected. Connecting to target via cJTAG ConfigTargetSettings() start ConfigTargetSettings() end - Took 11us TotalIRLen = 5, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x161818F3, IRLen: 05, Unknown device Assuming RISC-V TAP with DTM setup Debug architecture: RISC-V debug: 0.13 AddrBits: 8 DataBits: 32 IdleClks: 7 Memory access: Via system bus: No Via ProgBuf: Yes (2 ProgBuf entries) Via abstract command (AAM): May be tried as last resort DataBuf: 2 entries autoexec[0] implemented: Yes Detected: RV32 core Temp. halting CPU for for feature detection... HW instruction/data BPs: 8 Support set/clr BPs while running: No HW data BPs trigger after execution of inst CSR access via abs. commands: Yes Compressed instruction support: Yes Feature detection done. Restarting core... BG memory access Description: Default access mode RISC-V identified.support: No Memory zones: Zone: "Default"
连接 JLink
运行
/amebalite_gcc_project/utils/jlink_script/km4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,如下所示, 确认 KM4 与 JLink 成功连接:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end - Took 354us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[3]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Cache: L1 I/D-cache present Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E00FE000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [1][0]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [2][0]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way D-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M33 identified.
KR4 连接 JLink
运行
/amebalite_gcc_project/utils/jlink_script/kr4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,如下所示, 确认 KR4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect JTAGConf> Device "RV32" selected. Connecting to target via cJTAG ConfigTargetSettings() start ConfigTargetSettings() end - Took 11us TotalIRLen = 5, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x161818F3, IRLen: 05, Unknown device Assuming RISC-V TAP with DTM setup Debug architecture: RISC-V debug: 0.13 AddrBits: 8 DataBits: 32 IdleClks: 7 Memory access: Via system bus: No Via ProgBuf: Yes (2 ProgBuf entries) Via abstract command (AAM): May be tried as last resort DataBuf: 2 entries autoexec[0] implemented: Yes Detected: RV32 core Temp. halting CPU for for feature detection... HW instruction/data BPs: 8 Support set/clr BPs while running: No HW data BPs trigger after execution of inst CSR access via abs. commands: Yes Compressed instruction support: Yes Feature detection done. Restarting core... BG memory access Description: Default access mode RISC-V identified.support: No Memory zones: Zone: "Default"
运行
/amebasmart_gcc_project/utils/jlink_script/ca32_jlink_core0.sh
按照提示输入 connect 和 回车键(默认值)后,确认 CA32 core0 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-A32" selected. Connecting to target via SWD InitTarget() start ****************************************************** J-Link script: AmebaSmart (Cortex-A32 CPU0) J-Link script ****************************************************** ****************************************************** J-Link script: ResetTarget() ****************************************************** EDPRSR: 0x00000801 InitTarget() end - Took 16.3ms Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[3]: APB-AP (IDR: Not set, ADDR: 0x00000000) Using preconfigured AP[3] as APB-AP AP[3]: APB-AP found DebugRegs + CTI manually specified. ROM table scan skipped. Cortex-A32 @ 0x80030000 (configured) CoreCTI @ 0x80038000 (configured) Debug architecture: ARMv8.0 6 code breakpoints, 4 data breakpoints Processor features: EL0 support: AArch32 EL1 support: AArch32 EL2 support: AArch32 EL3 support: AArch32 FPU support: Single + Double + Conversion Add. info (CPU temp. halted) Current exception level: EL1 Exception level AArch usage: EL0: AArch32 EL1: AArch32 EL2: AArch32 EL3: AArch32 Non-secure status: Non-secure Cache info: Inner cache boundary: none LoU Uniprocessor: 1 LoC: 2 LoU Inner Shareable: 1 I-Cache L1: 32 KB, 256 Sets, 64 Bytes/Line, 2-Way D-Cache L1: 32 KB, 128 Sets, 64 Bytes/Line, 4-Way Unified-Cache L2: 256 KB, 512 Sets, 64 Bytes/Line, 8-Way Memory zones: Zone: "Default" Description: Default access mode Zone: "AP0" Description: MEM-AP (AHB-AP) Zone: "AP1" Description: MEM-AP (AHB-AP) Zone: "AP2" Description: MEM-AP (AHB-AP) Zone: "AP3" Description: MEM-AP (APB-AP) Cortex-A32 identified.
运行
/amebasmart_gcc_project/utils/jlink_script/ca32_jlink_core1.sh
按照提示输入 connect 和 回车键(默认值)后,确认 CA32 core1 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-A32" selected. Connecting to target via SWD InitTarget() start ****************************************************** J-Link script: AmebaSmart (Cortex-A32 CPU0) J-Link script ****************************************************** ****************************************************** J-Link script: ResetTarget() ****************************************************** EDPRSR: 0x0000000B InitTarget() end - Took 16.8ms Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[3]: APB-AP (IDR: Not set, ADDR: 0x00000000) Using preconfigured AP[3] as APB-AP AP[3]: APB-AP found DebugRegs + CTI manually specified. ROM table scan skipped. Cortex-A32 @ 0x80032000 (configured) CoreCTI @ 0x80039000 (configured) Debug architecture: ARMv8.0 6 code breakpoints, 4 data breakpoints Processor features: EL0 support: AArch32 EL1 support: AArch32 EL2 support: AArch32 EL3 support: AArch32 FPU support: Single + Double + Conversion Add. info (CPU temp. halted) Current exception level: EL1 Exception level AArch usage: EL0: AArch32 EL1: AArch32 EL2: AArch32 EL3: AArch32 Non-secure status: Non-secure Cache info: Inner cache boundary: none LoU Uniprocessor: 1 LoC: 2 LoU Inner Shareable: 1 I-Cache L1: 32 KB, 256 Sets, 64 Bytes/Line, 2-Way D-Cache L1: 32 KB, 128 Sets, 64 Bytes/Line, 4-Way Unified-Cache L2: 256 KB, 512 Sets, 64 Bytes/Line, 8-Way Memory zones: Zone: "Default" Description: Default access mode Zone: "AP0" Description: MEM-AP (AHB-AP) Zone: "AP1" Description: MEM-AP (AHB-AP) Zone: "AP2" Description: MEM-AP (AHB-AP) Zone: "AP3" Description: MEM-AP (APB-AP) Cortex-A32 identified.
运行
/amebasmart_gcc_project/utils/jlink_script/km4_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,确认 KM4 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start InitTarget() end - Took 225us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[3]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: Core found AP[1]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD228. Implementer code: 0x72 (Realtek) Feature set: Mainline Cache: No cache Found Cortex-M33 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: implemented Secure debug: enabled CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9133 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9035 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9034 DEVARCH 47701A03 DEVTYPE 00 FPB Memory zones: Zone: "Default" Description: Default access mode Cortex-M33 identified.
运行
/amebasmart_gcc_project/utils/jlink_script/km0_jlink.sh
按照提示输入 connect 和 回车键(默认值)后, 确认 KM0 与 JLink 成功连接, 如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M23" selected. Connecting to target via SWD InitTarget() start ****************************************************** J-Link script: AmebaSmart KM0 J-Link script ****************************************************** InitTarget() end - Took 306us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[3]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[0]: Core found AP[0]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721CD208. Implementer code: 0x72 (Realtek) Feature set: Baseline Cache: L1 I/D-cache present Found Cortex-M23 r1p8, Little endian. FPUnit: 8 code (BP) slots and 0 literal slots Security extension: not implemented CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9013 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9015 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9014 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 256 Sets, 32 Bytes/Line, 2-Way D-Cache L1: 8 KB, 128 Sets, 32 Bytes/Line, 2-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M23 identified.
连接 JLink
运行
/amebagreen2_gcc_project/utils/jlink_script/ap_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,确认 KM4TZ 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start ****************************************** J-Link script: AP1 J-Link script ****************************************** InitTarget() end - Took 221us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: Core found AP[1]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD22A. Implementer code: 0x72 (Realtek) Feature set: Mainline Cache: L1 I/D-cache present Found Cortex-M33 r1p0, Little endian. FPUnit: 4 code (BP) slots and 0 literal slots Security extension: not implemented CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9023 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9025 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9024 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way D-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M33 identified.
小心
保持此窗口开启以进行后续操作
连接 JLink
运行
/amebagreen2_gcc_project/utils/jlink_script/np_jlink.sh
按照提示输入 connect 和 回车键(默认值)后,确认 KM4NS 与 JLink 成功连接,如下图所示:
Type "connect" to establish a target connection, '?' for help J-Link>connect Specify target interface speed [kHz]. <Default>: 4000 kHz Speed> Device "CORTEX-M33" selected. Connecting to target via SWD InitTarget() start ****************************************** J-Link script: AP1 J-Link script ****************************************** InitTarget() end - Took 278us Found SW-DP with ID 0x6BA02477 DPIDR: 0x6BA02477 CoreSight SoC-400 or earlier AP map detection skipped. Manually configured AP map found. AP[0]: APB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[2]: AHB-AP (IDR: Not set, ADDR: 0x00000000) AP[1]: Core found AP[1]: AHB-AP ROM base: 0xE00FF000 CPUID register: 0x721FD22A. Implementer code: 0x72 (Realtek) Feature set: Mainline Cache: L1 I/D-cache present Found Cortex-M33 r1p0, Little endian. FPUnit: 4 code (BP) slots and 0 literal slots Security extension: not implemented CoreSight components: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105900D PID 000F9023 DEVARCH 47702A04 DEVTYPE 00 SCS [0][1]: E0001000 CID B105900D PID 000F9025 DEVARCH 47701A02 DEVTYPE 00 DWT [0][2]: E0002000 CID B105900D PID 000F9024 DEVARCH 47701A03 DEVTYPE 00 FPB I-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way D-Cache L1: 16 KB, 128 Sets, 32 Bytes/Line, 4-Way Memory zones: Zone: "Default" Description: Default access mode Cortex-M33 identified.
JLink 核心指令集
编译并下载固件,JLink 连接成功后(参考 JLink 连接和配置 )支持在程序运行时进行调试
长命令 |
短命令 |
语法 |
功能说明 |
---|---|---|---|
Halt |
H |
暂停 CPU 执行 |
|
Go |
G |
恢复 CPU 执行 |
|
Mem |
/ |
Mem <地址> <字节数> |
读取内存(ASCII 格式) |
SaveBin |
/ |
SaveBin <文件> <地址> <字节数> |
内存转储为二进制文件 |
Exit |
/ |
断开 J-Link 连接 |
官方文档参考:https://wiki.segger.com/J-Link_Commander
备注
通过多次执行
H
/G
记录 PC 值,定位问题函数。使用
mem <sp 地址>
查看调用栈信息。
Ozone 调试
Ozone 软件安装
从 SEGGER 官网下载并安装最新版 JLink 及 Ozone
按以下步骤部署 JLink 和 Ozone
下载最新版 JLink 和 Ozone 软件包
执行安装命令:
$ dpkg -i JLink_Linux_V840_x86_64.deb $ dpkg -i Ozone_Linux_V338g_x86_64.deb
Ozone 工程配置
创建,保存及运行工程。
连接 JLink 后启动 Ozone 创建新工程,按照以下步骤执行
进入主界面,选择创建新工程,如下图所示
选择目标设备及 svd 文件, 如下图所示:
连接设置:选择接口并确认 JLink 设备, 如下图所示:
选择 debug 文件, 如下图所示:
初始化设置:Initial PC 和 Stack Pointer 选择
Do not set
, 在amebaxxxx_gcc_project/utils/jlink_script
目录中选择相应的 JLinkScript 文件,如下图所示:插件安装警告
安装: 点击
后将自动安装,在Console
窗口可查看安装结果不安装:点击
T 跳过安装
工程创建成功
保存工程配置:点击
保存工程, 下次使用时可直接导入使用。更改工程配置:点击
编辑工程, 红色框中显示配置可进行修改,如下图所示:
确认开发板已烧录固件且和 JLink 正确连接后, Reset 开发板进入工作模式。Ozone 运行工程有三种模式:
Download & Reset Program: 不支持该模式
Attach to Running Program: 运行 project 后,CPU 进入运行态, 如下图所示, 点击 stop 可以暂停 CPU
Attach & Halt Program: 运行 project 后,CPU 进入暂停态, 如下图所示,点击 start 可开始运行 CPU
小心
Ozone 运行工程后不要再 Reset 开发板,会导致 JLink 断开连接。
Ozone 调试功能
点击
, 在下拉菜单中可查看 Ozone 支持的调试功能,点击功能项即可将其添加至主界面窗口。该章节介绍一些常用的调试功能。断点添加
代码断点:在 File Scope 区打开的 c 文件中,点击代码行左侧的灰色圆点即可添加
数据断点:在
Break & TracePoints
窗口右击空白处使用下拉菜单中以变量名或者地址的方式添加。可在全局、局部变量窗口右键变量名选择添加至断点。
断点清除
代码断点:点击代码行左侧的红色圆点,当变为灰色圆点即取消断点
在
Break & TracePoints
窗口右击空白处使用下拉菜单中清除断点功能在
Break & TracePoints
窗口点击断点左侧方框中 √ 可选择禁用或启用断点
断点查看
程序运行到断点位置后暂停且对应行代码绿色高亮,如下图所示:
小心
断点可设置数量有限,若超过可添加数量限制, 则会出现如下错误提示
SetBreakpoint: JLINK API call failed
使开发板从已知初始状态重新启动,方便排查上电初始化、外设配置等相关问题。复位的三种状态:
Reset & Break at Symbol: 复位并在指定符号(通常是 main 函数入口)处自动暂停。
Reset & Halt: 复位并跳转到复位向量入口处
Reset & Run: 刷新初始化流程,直到遇到断点或到程序正常结束
单步调试操作有如下三种:
单步进入(Step Into): 逐语句执行程序,若当前语句为函数调用,会进入函数内部,从入口第一条语句开始执行。
单步跳过(Step Over): 逐语句执行程序,遇到函数调用时,不进入函数体,而是直接执行完该函数,停在当前函数的下一条语句。
单步跳出(Step Out): 快速执行直到当前函数返回,程序跳出当前函数,停到函数调用者下一条语句上。
显示当前程序运行到的位置, 以及嵌套调用了哪些函数, 每一个栈帧对应一个函数的调用现场。反映了从程序入口到当前断点所有函数的调用顺序,是定位程序流程和追溯异常的重要工具。

在具有两个独立 CPU core 的芯片上, 同时或切换性地对两个核心的代码进行断点、变量观察、单步执行、调用栈分析等调试操作。 调试方法:分别创建两个 CPU core 的工程,连接成功后进行调试。
CPU 运行过程中,全局变量窗口显示为灰色不可编辑状态,当 CPU 暂停后,窗口数据显示当前值,其中红色显示的表示运行过程中该值发生了变化
双击某项参数的 Value 值可进行修改,修改后该值标记为红色

局部变量窗口仅显示 CPU 暂停时当前所在函数接口中的参数变量。
CPU 运行过程中,局部变量窗口显示为灰色不可编辑状态,当 CPU 暂停后,窗口数据显示当前值,其中红色显示的表示运行过程中该值发生了变化
双击某项参数的 Value 值可进行修改,修改后该值标记为红色

全局变量和局部变量窗口的变量,右键选择 Watch 即可添加至 Watched Data 窗口。 在 Refresh 列双击可编辑刷新速度

查看内存地址的数据,双击值可进行编辑,修改后该值标记为红色

寄存器窗口分为 CPU 寄存器 和 外设寄存器 两部分
CPU 运行过程中,局部变量窗口显示为灰色不可编辑状态,当 CPU 暂停后,窗口数据显示当前值,其中红色显示的表示运行过程中该值发生了变化
双击某项参数的 Value 值可进行修改,修改后该值标记为红色

Ozone 指令集
Ozone 调试器支持在程序运行时进行状态检查与错误追踪, 在 Console
窗口输入 help 可查看所有可用指令
官方文档参考:Ozone 用户手册