全志科技
直播中

楼斌

8年用户 863经验值
私信 关注
[问答]

请问XR806在线调试的方法步骤是什么?

请问XR806在线调试的方法步骤是什么?

回帖(1)

孙榕

2021-12-29 09:50:16
1、XR806的在线调试SWD接口是PB2和PB3,分别对应DATA和CLK。很遗憾,官方版子并没有接出来,只能手动焊线。
  2、使能在线调试。在文件device/xradio/xr806/xr_skylark/project/demo/audio_demo/prj_config.h中添加#define PRJCONF_SWD_EN 1
  
  2、由于PB2和PB3是在__wrap_main()中初始化成调试接口的,所以上电并不是调试口,意味着不要使用jlink控制XR806进入复位,不然大概率会跑飞。
  3、由于没办法控制芯片复位,而我们调试程序一般都是从程序开始的,所以需要利用程序,使上电自动停止在代码main_task中,我使用的是开发板上的按键,代码如下所示,按下按键程序才能继续跑,使Jlink连接开发板,halt住芯片时,程序的位置是确定的,不然Jlink接入时,代码位置是随机的。

static void main_task(void *arg)
{
        /* 初始化按键 */
  gpio_input_init();
       /* 确定Jlink接入时的代码的位置 */
  while(1) {
    uint8_t i = 0;
    if (HAL_GPIO_ReadPin(GPIO_INPUT_PORT, GPIO_INPUT_PIN) == 1) {
      printf ("no pressn");
      i = 0;
    } else {
      printf ("pressn");
      i ++;
    }
    if (i >= 5) {
      printf("test beginn");
      break;
    }
    LOS_Msleep(100);
  }

  platform_init();
  OHOS_SystemInit();
  OS_ThreadDelete(&g_main_thread);
}



4、接入GDB
  
  
  5、确保虚拟机开启了SSH。不同虚拟机的开启方式,这里就不介绍了。
  6、使用putty(或者其他带隧道功能的SSH)连接虚拟机
  
  
  7、连接成功后,打开指定可执行文件的文件夹
  cd device/xradio/xr806/xr_skylark/demo/audio_demo/gcc
  gdb audio_demo.elf
  注意linux默认使用linux64位的gdb,需要在环境变量中设置为arm的gdb。
  8、进入gdb后,输入:target remote:3331即可连接开发板。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分