本帖最后由 maskmoo 于 2024-7-7 20:41 编辑
【正点原子i.MX93开发板】异构核间通讯--1 搭建M33-SDK编译环境
前面在Ubuntu环境下完成了M33 SDK环境的搭建,并成功完成demo程序的编译。这次就以上次编译出的elf文件为基础使用GDB来进行M33的调试。
1 JLink调试软件安装
需要注意的是某宝上的部分Jlink调试器会对驱动版本有限制,这个要跟商家进行确认根据自己的情况进行选择。我这里使用的7.52d的版本。
首先去Segger的官网下载对应版本驱动软件。
然后拷贝到ubuntu中,使用以下指令进行安装
sudo dpkg -i JLink_Linux_V752d_x86_64.deb
2 IMX93设备补丁安装
为了使Jlink能正常识别IMAX93,还需要进行Patch补丁的安装。(使用的补丁在资料盘 【正点原子】DLIMX93开发板资料(A盘)-基础资料\05、开发工具\02、异核通信开发工具\SDK_MX93_3RDPARTY_PATCH.zip)
首先解压补丁文件
unzip SDK_MX93_3RDPARTY_PATCH.zip
cd SDK_MX93_3RDPARTY_PATCH/
unzip JLink.zip
然后进入SDK_MX93_3RDPARTY_PATCH/JLink 文件夹,使用以下指令为 JLink 软件安装补丁。
这块需要注意如果使用的是7.54以上的版本可以按照原子的文档描述进行安装,如果要是像我这样使用的版本在7.54以下的情况则需要手动在原有驱动设备描述文件JLinkDevices.xml的文件上增加IMX93相关的信息,不能直接替换。
这里主要分两步首先是 JLinkDevices.xml的修改,拷贝补丁文件中的这部分信息到驱动文件中
第二件事情是把Jlink链接脚本文件放到上一把的信息中描述的指定路径
3 硬件连接
将 SW2 拨码开关全部往下拨,使用 JTAG 接口, 将 JLink 仿真器接到开发板 JTAG接口,将开发板拨码到 M33 的 EMMC 模式启动。
4 测试Jlink与M33的连接情况
首先我们试一下Jlink的默认连接方式能不能正常连接到内核
默认方式看来是不行的,那么这次测试指定刚刚安装的补丁设备(IMX93)
这块一开始在设备列表里找不到IMX94
后来检查补丁安装过程,最终发现问题出在修改XML文件。一开始写错位了一行,以下是修改后的。
修改后保存,在此启动JlinkExe进行connect测试,这次就可以正常在设备列表里找到IMX93系列设备了。我们选择MIMX9352_M33设备。
最终正常连接并设别到Cortex-M33核心,黄色的Log信息表明有调用我们安装的连接脚本。
5 使用 JLinkGDBServer
在 ubuntu 下打开终端,输入以下指令启动 J-Link GDB Server 应用
JLinkGDBServer -jlinkscriptfile /opt/SEGGER/JLink/Devices/NXP/iMX93/NXP_iMX93_Connect_CortexM33.JLinkScript
回到上篇文章编译生成的 hello_world.elf目录,在终端输入以下指令启动 M33 GDB 调试。
arm-none-eabi-gdb hello_world.elf
接着连接 GDB 服务器,加载程序。
target remote localhost:2331
monitor reset
monitor halt
监测M33 UART可以看到打印信息
关于Ubuntu环境下使用GDB调试M33的记录就到这里了,本篇文章记录了在 Ubuntu 环境下在正点原子 i.MX93 开发板上进行 GDB 调试的过程。包括下载并安装适用于 JLink 7.52d 版本的调试软件。通过修改 JLink 驱动文件添加对 IMX93 的支持。将 JLink 仿真器接到开发板的 JTAG 接口,并设置开发板的启动模式。最后,启动 J-Link GDB 服务器并使用 GDB 加载和调试编译出的 M33 程序,成功连接并调试 Cortex-M33 。
部分步骤的详细信息可以查阅原子资料盘【正点原子】DLIMX93开发板资料(A盘)-基础资料\10、用户手册\15【正点原子】ATK-DLIMX93使用GDB调试M33手册V1.0.pdf 文档