【XR806开发板试用】试用SWD+Jlink调试

XR806开发板,只能使用编写代码,然后通过UART下载,没法在线debug, 效率会差很多,官方没有提供这一方面的资料。

  1. 先查CPU, 官方介绍是arm-china的MC1,通过armv8 Architecture refenence manual资料,读取CPUID。
    在MainThread()中读取CPUID,增加如下代码:
    static void MainThread(void *arg)
    {
    while (1) {

     printf("hello world!\n");
    

    printf(“0xE000ED00 = 0x%x\n”, (volatile uint32_t )0xE000ED00);

     LOS_Msleep(1000);
    

    }
    }

编译,下载,然后可以看到如下输出:

Wifi Test Start
hiview init success.
console init success
hello world!
0xE000ED00 = 0x630f1321

根据CPUID(base address 0xE000ED00),因此可以看出 是ARMchina的 v8m-arch的star系列核。

根据XR806公开的原理图和XR806_PIN_MUX.pdf,可以看到PB02和PB03是可以配成SWD_TMS, SWD_TCK功能,因此在我们把pinmux配成SWD功能,
但这里存在一定的风险, 因为一旦配成SWD功能,PB02 也是串口功能,串口将不能下载, 我在执行swd——config前增加delay 30s后才配置pinmux功能,防止成板砖,参考代码如下:

static void swd_config(void)
{

GPIO_InitParam param;

param.driving = GPIO_DRIVING_LEVEL_1;
param.mode    = GPIOB_P2_F9_SWD_TMS;
param.pull    = GPIO_PULL_NONE;
HAL_GPIO_Init(GPIO_PORT_B, 2, &param);    //PB2

param.mode    = GPIOB_P3_F9_SWD_TCK;
HAL_GPIO_Init(GPIO_PORT_B, 3, &param);     //PB3

}

static void MainThread(void *arg)
{

while (1) {
    printf("hello world!\n");
    printf("0xE000ED00 = 0x%x\n", *(volatile uint32_t *)0xE000ED00);
    LOS_Msleep(30000);
    swd_config();
}

}

编译下载, 连接Jlink如下图:
在这里插入图片描述
在这里插入图片描述

然后打开Jlink GDB server:如下图
在这里插入图片描述

其中Target device 选择star, Target interface选择SWD,然后OK确认。
进入如下界面: 说明等待连接
在这里插入图片描述

然后开始debug: /OpenHarmony# arm-none-eabi-gdb device/xradio/xr806/xr_skylark/project/demo/wlan_ble_demo/gcc/wlan_ble_demo.elf

(gdb) target remote localhost:2331
Remote debugging using localhost:2331
0xdeadbeee in ?? ()

目前还不能使用Jlinkdebug, 通过串口终端的输出可以看出,还在一直打印log输出,说明SWD的功能还是没有配置正确

Wifi Test Start
hiview init success.
console init success
hello world!
0xE000ED00 = 0x630f1321
hello world!
0xE000ED00 = 0x630f1321
hello world!
0xE000ED00 = 0x630f1321
hello world!
0xE000ED00 = 0x630f1321
hello world!
0xE000ED00 = 0x630f1321
hello world!
0xE000ED00 = 0x630f1321
hello world!
0xE000ED00 = 0x630f1321

如一切正常后,gdb server 如下所示,如果提示 Cannot read register xxx while CPU is running 说明还不正取
在这里插入图片描述

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值