Ameba IoT Docs
  • FreeRTOS SDK 及开发指南
  • FreeRTOS SDK 使用指南
    • F00: SDK 下载
    • F01: SDK 简介
    • F02: GCC 编译环境
    • F03: 调试与故障排查
      • J-Link 调试
        • 概述
        • 硬件连接
        • 直接 J-Link 调试
        • 基于 GDB 的 J-Link 调试
        • 基于 Ozone 的 J-Link 调试
      • Heap 内存调试
      • 崩溃转储和回溯
    • F04: CMake 架构和用法
    • F05: SDK 示例
    • F06: Flash 和 RAM 布局
    • F07: 开发者配置
    • F08: 虚拟文件系统
    • F09: Flash 转换层
    • F20: 内存管理和缓存
    • F21: 启动过程
    • F22: 芯片使能
    • F23: 核间通信
    • F24: 欠压保护
    • F25: 复位
    • F26: 芯片信息
  • FreeRTOS 外设开发指南
  • FreeRTOS 系统安全开发指南
  • FreeRTOS OTA 固件升级开发指南
  • FreeRTOS 低功耗开发指南
  • FreeRTOS USB 编程指南
  • FreeRTOS 多媒体开发指南
  • FreeRTOS 智能语音开发指南
  • FreeRTOS 量产指南
  • FreeRTOS AT 命令使用指南
  • Linux SDK 及开发指南
  • Linux SDK 使用指南
  • Linux 外设开发指南
  • Linux 系统安全开发指南
  • Linux OTA 固件升级开发指南
  • Linux 低功耗开发指南
  • Linux USB 编程指南
  • Linux 多媒体开发指南
  • Linux 智能语音开发指南
  • Linux 量产指南
  • HiFi DSP SDK 及开发指南
  • HiFi DSP SDK 下载
  • HiFi DSP SDK 使用指南
  • Zephyr SDK 及开发指南
  • Zephyr SDK 使用指南
  • Zephyr Wi-Fi 编程指南
  • FreeRTOS Wi-Fi 编程指南
  • FreeRTOS Wi-Fi 无线网卡模式编程指南
  • FreeRTOS Wi-Fi R-MESH 编程指南
  • Linux Wi-Fi 编程指南
  • VS Code 插件
  • 工具及使用指南
  • Log 工具
  • Flash 烧写工具
  • Flash 批量烧写工具
  • 录音工具
  • FreeRTOS 蓝牙开发指南
  • Linux 蓝牙开发指南
Ameba IoT Docs
FreeRTOS
Linux
DSP
Zephyr
Tools
Realtek Logo
Ameba-IoT-Documents
  • FreeRTOS SDK 及开发指南
  • FreeRTOS SDK 使用指南
    • F00: SDK 下载
    • F01: SDK 简介
    • F02: GCC 编译环境
    • F03: 调试与故障排查
      • J-Link 调试
        • 概述
        • 硬件连接
        • 直接 J-Link 调试
        • 基于 GDB 的 J-Link 调试
        • 基于 Ozone 的 J-Link 调试
      • Heap 内存调试
      • 崩溃转储和回溯
    • F04: CMake 架构和用法
    • F05: SDK 示例
    • F06: Flash 和 RAM 布局
    • F07: 开发者配置
    • F08: 虚拟文件系统
    • F09: Flash 转换层
    • F20: 内存管理和缓存
    • F21: 启动过程
    • F22: 芯片使能
    • F23: 核间通信
    • F24: 欠压保护
    • F25: 复位
    • F26: 芯片信息
  • FreeRTOS 外设开发指南
  • FreeRTOS 系统安全开发指南
  • FreeRTOS OTA 固件升级开发指南
  • FreeRTOS 低功耗开发指南
  • FreeRTOS USB 编程指南
  • FreeRTOS 多媒体开发指南
  • FreeRTOS 智能语音开发指南
  • FreeRTOS 量产指南
  • FreeRTOS AT 命令使用指南
  • Linux SDK 及开发指南
  • Linux SDK 使用指南
  • Linux 外设开发指南
  • Linux 系统安全开发指南
  • Linux OTA 固件升级开发指南
  • Linux 低功耗开发指南
  • Linux USB 编程指南
  • Linux 多媒体开发指南
  • Linux 智能语音开发指南
  • Linux 量产指南
  • HiFi DSP SDK 及开发指南
  • HiFi DSP SDK 下载
  • HiFi DSP SDK 使用指南
  • Zephyr SDK 及开发指南
  • Zephyr SDK 使用指南
  • Zephyr Wi-Fi 编程指南
  • FreeRTOS Wi-Fi 编程指南
  • FreeRTOS Wi-Fi 无线网卡模式编程指南
  • FreeRTOS Wi-Fi R-MESH 编程指南
  • Linux Wi-Fi 编程指南
  • VS Code 插件
  • 工具及使用指南
  • Log 工具
  • Flash 烧写工具
  • Flash 批量烧写工具
  • 录音工具
  • FreeRTOS 蓝牙开发指南
  • Linux 蓝牙开发指南
Not Logged In
Login Register Change Password Logout
  • FreeRTOS SDK 使用指南
  • 调试与故障排查
  • J-Link 调试

[English]

J-Link 调试

概述

本章主要介绍开发板支持的三种调试方式:

  • 直接 J-Link 调试

    • 支持直接暂停 CPU 并获取 CPU 的当前状态

    • 可直接访问和操作目标设备内存

  • 基于 GDB 的 J-Link 调试

    • 可在主机上直接运行,通过 GDB Server 与目标设备通信

    • 支持使用 .axf 文件,在相应源码位置设置断点,实现源码级调试

  • 基于 Ozone 的 J-Link 调试

    • 提供图形化界面调试, 便于调试和可视化操作

硬件连接

参考下图将 JLink 的 SWCLK 和 SWDIO 连接到 SoC 的 SWD CLK 和 SWD DATA,然后将 JLink 连接到 PC。

../../../../_images/connecting_jlink_to_swd.svg

JLink 连接到 SWD 的接线图

备注

JLink 的版本必须高于或等于 v9。

直接 J-Link 调试

JLink 连接和配置

  1. 从 SEGGER 官网下载并安装最新版 JLink

  2. 连接时可编辑对应的 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 :

  1. 下载最新版 JLink 软件包

  2. 执行安装命令:

    $ dpkg -i JLink_Linux_V840_x86_64.deb
    
  3. 连接时可编辑对应的 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 地址> 查看调用栈信息。

基于 GDB 的 J-Link 调试

GDB 软件连接和配置

  1. 从 SEGGER 官网下载并安装最新版 JLink

  2. 连接时可编辑对应的 xxx_jlinkGDBSever.bat 调整 JLinkGDBServer.exe 的路径

连接 JLinkGDBSever

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

../../../../_images/dplus_windows_km4_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行后续操作

连接 JLinkGDBSever

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

../../../../_images/dplus_windows_km0_jlink_gdb_server_connection.png

连接 JLinkGDBSever

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

../../../../_images/lite_windows_km4_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行 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 成功连接:

../../../../_images/lite_windows_kr4_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行 KR4 后续操作

连接 JLinkGDBSever

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

../../../../_images/lite_windows_km4_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行 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 成功连接:

../../../../_images/lite_windows_kr4_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行 KR4 后续操作

连接 JLinkGDBSever

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

../../../../_images/lite_windows_km4_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行 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 成功连接:

../../../../_images/lite_windows_kr4_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行 KR4 后续操作

连接 JLinkGDBSever

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

../../../../_images/smart_ca32_core0_jlink_gdb_server_connection_under_windows.png

连接 JLinkGDBSever

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

../../../../_images/smart_ca32_core1_jlink_gdb_server_connection_under_windows.png

连接 JLinkGDBSever

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

../../../../_images/smart_km4_jlink_gdb_server_connection_under_windows.png

小心

  • 保持此窗口开启以进行后续操作

连接 JLinkGDBSever

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

../../../../_images/smart_km0_jlink_gdb_server_connection_under_windows.png

连接 JLinkGDBSever

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

../../../../_images/green2_windows_ap_jlink_gdb_server_connection.png

小心

  • 保持此窗口开启以进行后续操作

连接 JLinkGDBSever

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

../../../../_images/green2_windows_np_jlink_gdb_server_connection.png

按以下步骤部署 JLinkGDBServer

  1. 下载最新版 JLink 软件包

  2. 执行安装命令:

    $ dpkg -i JLink_Linux_V840_x86_64.deb
    
  3. 连接时可编辑对应的 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 调试模式流程

  1. 编译固件并连接 JLinkGDBSever

  2. 执行命令:

    1. 进入 SDK 根目录

    2. 运行 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 字节。

基于 Ozone 的 J-Link 调试

Ozone 软件安装

从 SEGGER 官网下载并安装最新版 JLink 及 Ozone

按以下步骤部署 JLink 和 Ozone

  1. 下载最新版 JLink 和 Ozone 软件包

  2. 执行安装命令:

    $ dpkg -i JLink_Linux_V840_x86_64.deb
    $ dpkg -i Ozone_Linux_V338g_x86_64.deb
    

Ozone 工程配置

创建,保存及运行工程。

连接 JLink 后启动 Ozone 创建新工程,按照以下步骤执行

  1. 进入主界面,选择创建新工程,如下图所示

    ../../../../_images/ozone_creat_project.png
  2. 选择目标设备及 svd 文件, 如下图所示:

    ../../../../_images/ozone_choice_device.png
  3. 连接设置:选择接口并确认 JLink 设备, 如下图所示:

    ../../../../_images/ozone_conection_setting.png
  4. 选择 debug 文件, 如下图所示:

    ../../../../_images/ozone_choose_debugged_program.png
  5. 初始化设置:Initial PC 和 Stack Pointer 选择 Do not set, 在 amebaxxxx_gcc_project/utils/jlink_script 目录中选择相应的 JLinkScript 文件,如下图所示:

    ../../../../_images/ozone_inital_setting.png
  6. 插件安装警告

    • 安装: 点击 Apply 后将自动安装,在 Console 窗口可查看安装结果

    • 不安装:点击 Continue T 跳过安装

    ../../../../_images/ozone_plugin_diagnostics.png
  7. 工程创建成功

  1. 保存工程配置:点击 File > Save Project as 保存工程, 下次使用时可直接导入使用。

  2. 更改工程配置:点击 File > Edit Project File 编辑工程, 红色框中显示配置可进行修改,如下图所示:

    ../../../../_images/ozone_edit_setting.png

确认开发板已烧录固件且和 JLink 正确连接后, Reset 开发板进入工作模式。Ozone 运行工程有三种模式:

  1. Download & Reset Program: 不支持该模式

  2. Attach to Running Program: 运行 project 后,CPU 进入运行态, 如下图所示, 点击 stop 可以暂停 CPU

    ../../../../_images/ozone_attach_and_running_progrom.png
  3. Attach & Halt Program: 运行 project 后,CPU 进入暂停态, 如下图所示,点击 start 可开始运行 CPU

    ../../../../_images/ozone_attach_and_halt_progrom.png

小心

  • Ozone 运行工程后不要再 Reset 开发板,会导致 JLink 断开连接。

Ozone 调试功能

点击 View, 在下拉菜单中可查看 Ozone 支持的调试功能,点击功能项即可将其添加至主界面窗口。该章节介绍一些常用的调试功能。

  1. 断点添加

    • 代码断点:在 File Scope 区打开的 c 文件中,点击代码行左侧的灰色圆点即可添加

    • 数据断点:在 Break & TracePoints 窗口右击空白处使用下拉菜单中以变量名或者地址的方式添加。可在全局、局部变量窗口右键变量名选择添加至断点。

  2. 断点清除

    • 代码断点:点击代码行左侧的红色圆点,当变为灰色圆点即取消断点

    • 在 Break & TracePoints 窗口右击空白处使用下拉菜单中清除断点功能

    • 在 Break & TracePoints 窗口点击断点左侧方框中 √ 可选择禁用或启用断点

  3. 断点查看

    • 程序运行到断点位置后暂停且对应行代码绿色高亮,如下图所示:

    ../../../../_images/ozone_breakpoints_setting.png

    小心

    • 断点可设置数量有限,若超过可添加数量限制, 则会出现如下错误提示 SetBreakpoint: JLINK API call failed

使开发板从已知初始状态重新启动,方便排查上电初始化、外设配置等相关问题。复位的三种状态:

  1. Reset & Break at Symbol: 复位并在指定符号(通常是 main 函数入口)处自动暂停。

  2. Reset & Halt: 复位并跳转到复位向量入口处

  3. Reset & Run: 刷新初始化流程,直到遇到断点或到程序正常结束

单步调试操作有如下三种:

  1. 单步进入(Step Into): 逐语句执行程序,若当前语句为函数调用,会进入函数内部,从入口第一条语句开始执行。

  2. 单步跳过(Step Over): 逐语句执行程序,遇到函数调用时,不进入函数体,而是直接执行完该函数,停在当前函数的下一条语句。

  3. 单步跳出(Step Out): 快速执行直到当前函数返回,程序跳出当前函数,停到函数调用者下一条语句上。

显示当前程序运行到的位置, 以及嵌套调用了哪些函数, 每一个栈帧对应一个函数的调用现场。反映了从程序入口到当前断点所有函数的调用顺序,是定位程序流程和追溯异常的重要工具。

../../../../_images/ozone_callstack.png

在具有两个独立 CPU core 的芯片上, 同时或切换性地对两个核心的代码进行断点、变量观察、单步执行、调用栈分析等调试操作。 调试方法:分别创建两个 CPU core 的工程,连接成功后进行调试。

  1. CPU 运行过程中,全局变量窗口显示为灰色不可编辑状态,当 CPU 暂停后,窗口数据显示当前值,其中红色显示的表示运行过程中该值发生了变化

  2. 双击某项参数的 Value 值可进行修改,修改后该值标记为红色

../../../../_images/ozone_global_data.png

局部变量窗口仅显示 CPU 暂停时当前所在函数接口中的参数变量。

  1. CPU 运行过程中,局部变量窗口显示为灰色不可编辑状态,当 CPU 暂停后,窗口数据显示当前值,其中红色显示的表示运行过程中该值发生了变化

  2. 双击某项参数的 Value 值可进行修改,修改后该值标记为红色

../../../../_images/ozone_local_data.png

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

../../../../_images/ozone_watched_data.png

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

../../../../_images/ozone_memory_data.png

寄存器窗口分为 CPU 寄存器 和 外设寄存器 两部分

  1. CPU 运行过程中,局部变量窗口显示为灰色不可编辑状态,当 CPU 暂停后,窗口数据显示当前值,其中红色显示的表示运行过程中该值发生了变化

  2. 双击某项参数的 Value 值可进行修改,修改后该值标记为红色

../../../../_images/ozone_register.png

Ozone 指令集

Ozone 调试器支持在程序运行时进行状态检查与错误追踪, 在 Console 窗口输入 help 可查看所有可用指令

官方文档参考:Ozone 用户手册


Copyright © 瑞晟微电子(苏州)有限公司 2025. All Rights Reserved.
苏ICP备10062199号-13