安信可 BW16 模组(RTL8720DN 芯片) J-Link 读取内存和 Flash 及调试方法

连线方法

下表为引脚对应关系,盗版 J-Link 不需要接 VTref 脚,此外盗版 J-Link 若有 3.3V 输出可直接给模组供电,否则需要外接电源供电,外接供电时注意共地。

J-Link 引脚BW16 引脚
VTref3.3V
SWDIOPA27
SWCLKPB3
RESETEN
GNDGND

J-Link 接口定义
连线实物图

测试连接

打开 J-Link Commander,输入connect连接设备,根据提示选择设备型号为CORTEX-M23,连接方式为SWD,频率我这里输入了40000
在这里插入图片描述
在这里插入图片描述

由于我使用的是教育版,需要同意许可协议后才能使用,盗版无此项。
在这里插入图片描述
出现图示信息即为连接成功。
在这里插入图片描述

读取内存和 Flash

打开 J-Mem,按截图内容设置。
在这里插入图片描述
在这里插入图片描述
连接成功的图示:

在这里插入图片描述
根据 Memory Layout,跳转到对应 Flash 起始地址进行查看:
在这里插入图片描述
跳转到 0x08000000,与 Image_All.bin 起始字节一样,证明读取成功:
在这里插入图片描述

调试

  1. 使用 ImageTool 烧录 km0_boot_all.binkm4_boot_all.binkm0_km4_image2.bin 到模组
  2. 若固件把 SWD 脚用作 GPIO,屏蔽 sys_jtag_off()
  3. RTL8720DN 有两个核心,KM0(Cortex-M23)和 KM4(Cortex-M33),调试时需要选择对应核心。
  • 附加到 KM4 调试:
. "C:\Program Files\SEGGER\JLink\JLinkGDBServer.exe" -JLinkScriptFile X:\sdk-amebad_v6.2C-RC\project\realtek_amebaD_va0_example\GCC-RELEASE\project_hp\jlink_script\AP2_KM4.JLinkScript
  • 附加到 KM0 调试:
. "C:\Program Files\SEGGER\JLink\JLinkGDBServer.exe" -JLinkScriptFile X:\sdk-amebad_v6.2C-RC\project\realtek_amebaD_va0_example\GCC-RELEASE\project_hp\jlink_script\AP1_KM0.JLinkScript
  1. 使用 GDB 连接到 J-Link GDB Server

连接需要使用 SDK 目录下的 project/realtek_amebaD_va0_example/GCC-RELEASE/project_hp/asdk/gnu_utility/gnu_script/rtl_gdb_debug_jlink.txt GDB 脚本,需要根据实际端口号和 axf 文件路径进行修改。

# GDB script for loading ram.bin process

#===============================================================================
#set GDB connection 
set remotetimeout 100000
target remote :2335

#===============================================================================
#Message display setting
#disable all messages

set verbose off
set complaints 0
set confirm off
set exec-done-display off
show exec-done-display
set trace-commands off
#set debug aix-thread off
#set debug dwarf2-die 0
set debug displaced off 
set debug expression 0
set debug frame 0
set debug infrun 0
set debug observer 0
set debug overload 0
#set debugvarobj 0  #Ameba_todo
set pagination off
set print address off
set print symbol-filename off
set print symbol off
set print pretty off
set print object off
#set debug notification off
set debug parser off
set debug remote 0

#===============================================================================
#monitor reset 1
#monitor sleep 20
#monitor clrbp #Ameba_todo
#===============================================================================
#Load flash download file
file ./image/target_img2.axf
set $FLASHDATBUFSIZE = 0x800

set $PERI_ON_BASE = 0x48000000
set $$REG_BOOT_CFG = 0x03F8
set $CUT_VERSION = 1
#b main
#continue
#clear main
#Load the file
#lo

Linux 在 SDK 路径执行下面指令进行连接。Windows 根据实际工具路径替换即可,Windows版本对应 GDB 工具可在瑞昱 AmebaD 的 Arduino SDK 中取得,Arduino SDK 点击此处获取。

toolchain/linux/asdk-6.4.1/linux/newlib/bin/
arm-none-eabi-gdb asdk/image/target_img2.axf -x asdk/gnu_utility/gnu_script/rtl_gdb_debug_jlink.txt
  1. 下断点调试步骤

连上 GDB 后,直接执行 reset 是无法复位模组并成功下断点的,需要使用下面语句进行复位并暂停运行:

monitor reset
x/iwx 0x480003f8
set {unsigned}0x480003f8=0x02000201

查看当前栈帧

bt

下断点到 main 函数

b main

恢复运行

c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值