XR806当前还没正式发布如何使用jlink调试,我先占个楼,后面慢慢补充如何使用。
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
3、由于PB2和PB3是在__wrap_main()中初始化成调试接口的,所以上电并不是调试口,意味着不要使用jlink控制XR806进入复位,不然大概率会跑飞。
4、由于没办法控制芯片复位,而我们调试程序一般都是从程序开始的,所以需要利用程序,使上电自动停止在代码main_task中,我使用的是 开发板上的按键,代码如下所示,按下按键程序才能继续跑,使Jlink连接开发板,halt住芯片时,程序的位置是确定的,不然Jlink接入时,代码位置是随机的。
- tion">static void main_task(void *arg)
{
-
- gpio_input_init();
-
- 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);
- }
复制代码
5、接入GDB
6、确保虚拟机开启了SSH。不同虚拟机的开启方式,这里就不介绍了。
7、使用putty(或者其他带隧道功能的SSH)连接虚拟机
8、连接成功后,打开指定可执行文件的文件夹
- cd device/xradio/xr806/xr_skylark/demo/audio_demo/gcc
- gdb audio_demo.elf
复制代码
注意linux默认使用linux64位的gdb,需要在环境变量中设置为 ARM的gdb。
9、进入gdb后,输入:target remote:3331即可连接开发板。至于gdb怎么调试,网上有足够资料,就不水贴了。
以上内容转载自全志在线社区 作者:I_A_student https://bbs.aw-ol.com/topic/677/
|