版本说明
1. 自驾仪:Holybro的Pixhawk 4。
2. PX4版本:1.13
3. 宿主机:Thinkpad笔记本+Ubuntu 20.04.2 LTS
4. Eclipse:2021-06
5. Eclipse Embeded CDT:6.1.2
6. J-Link软件:V760
7. J-Link硬件:J-Link EDU mini。
可在淘宝上购买,170元左右,买到的东西如下图:
一. 硬件接口连接部分 1.1 J-Link EDU mini接口和Pixhawk 4 Debug口的定义参考px4官网:
SWD (JTAG) Hardware Debugging Interface | PX4 User Guide
1.1.1 J-Link EDU mini的10针接口定义 1.1.2 J-Link EDU mini与SWD连接示意SWD是ARM定义的一种调试接口,Serial Wire Debug (SWD)
1.1.3 Pixhawk 4对FMU Debug接口和IO Debug接口的定义PIXHAWK 4有两个Debug Port,一个是FMU Debug Port,另一个是IO Debug Port。
两个口都提供了Pixhawk 标准6-Pin SH Debug Port。 (
连线顺序描述:
参考官网:
SWD (JTAG) Hardware Debugging Interface | PX4 User Guide
对照上述1,J-Link EDU mini 10针口定义和PIXHAWK 4 FMU Debug口6针的连接如下:
FMU Debug Port | J-Link EDU mini |
---|---|
1 Vtref | 1 |
2 TX | - |
3 NC | - |
4 SWDIO | 2 |
5 SWDCLK | 4 |
6 GND | 3 或者 5 |
电缆描述:
J-Link到Pixhawk
Pixhawk 4的Debug port具有6针插座如下图:
需要采用6针电缆与之相连,Pixhawk 4线材包中有这根线,可以做两个,一个用在FMU debug口,另一个用在IO Debug口。
另外也可以从得捷购买,网址:得捷电子
https://www.digikey.cn/en/products/detail/jst-sales-america-inc/A06SR06SR30K152A/6009379?s=N4IgTCBcDaIIIAYBsBlASs9BmBBpAjAKxhwgC6AvkA
一头接Pixhawk,另一头需要接J-Link
J-Link端的10针插座如下:
接出的排线由J-Link厂家提供。
需要将J-Link EDU mini接出的10 Pin排线按上述线序与Pixhawk 4提供的6针电缆焊接起来(只需要连接4根线),由于间距很小,所以焊接是个细活。
焊接完的样子如图,焊点用绿色电工胶布包起来了。
这里仅仅是利用Eclipse对PX4的源码进行调试,不做Eclipse环境下的编译工作,编译工作手动在命令行完成。
打开如下网页
SEGGER - The Embedded Experts - Downloads - J-Link / J-Trace
在Linux选项中选择下载64-bit DEB Installer软件包,软件包将下载到Downloads目录中,
下载的文件名如下为Link_Linux_V760h_x86_64.deb,安装这个.deb软件包:
sudo dpkg -i ~/Downloads/Jlink_Linux_V760h_x86_64.deb
执行此命令后,软件包中的内容将存放在/usr/bin目录中。
旧的嵌入式Eclipse叫MCU Eclipse,有时也叫GNU MCU/ARM Eclipse,现在已经彻底把Eclipse Embeded CDT(CDT = C/C++ Development Tool )做好了,作为插件可以安装到任何Eclipse版本中。
按地址:How to install Eclipse IDE for Embedded C/C++ Developers | Eclipse Embedded CDT (C/C++ Development Tools)™
下载最新的Eclipse IDE,然后用install new software安装Embeded CDT。
我安装的Eclipse版本是2021-06,Embeded CDT版本是6.1.2,见下图:
2.3在Eclipse中为PX4-Autopilot建立一个项目File->Import->Existing Code with Makefile Project,为这个项目起个名字,并将代码路径(Existing Code Location)指向PX4-Autopilot目录。
然后点击Finish。
在Toolchain for Indexer Settings对话框中选择:Arm Cross GCC。
Eclipse就建立一个源码指向PX4-Autopilot的项目。
CMSIS PACKs是一组压缩文件,每一个CMSIS Pack压缩文件中包含有很多文件,这些文件被用来支持各种工具使用某种CPU。
Eclipse具备安装CMSIS PACK的方法,一旦安装好,你就可以将一个项目与一种CPU关联起来。
首次安装CMSIS PACKS的方法,如下:
参见:The CMSIS Packs manager | Eclipse Embedded CDT (C/C++ Development Tools)™
点击CMSIS Pack棕色按钮或者菜单Window(窗口)下选择Perspective(视图),在选择CMSIS Packs视图,然后点击黄色的update按钮。
点击update按钮后,Eclipse会出现更新进度对话框,你会遇到异常,在异常提示对话框中你应该选择ignore all选项,这样更新进度对话框会一直执行下去,直至所有芯片的CMSIS pack安装完毕。
这个过程,网上说需要10-20分钟,我的经验是2个小时以上,需要耐心等待。
当然一旦首次更新完成后,下次再点击update按钮,更新的速度就会快了,因为update是一种增量更新。
可以在Keil文件夹中找到 STM32Fxx设备,然后鼠标右键选择Install,安装F7设备。
参考官网:How to install the SEGGER J-Link?
可以参见软件部分的1.1节,安装SEGGER JLink软件。
下载了jlink_5.2.7_x86_64.deb
以后
,用下述命令安装
jlink
的软件:
$ sudo dpkg -i ~/Downloads/jlink_5.2.7_x86_64.deb
jlink软件被安装在
/usr/bin
目录中
。
SEGGER J-Link软件工具主要提供了GDB Server,GDB Server分两种,一种是基于图形界面的GDB Server:JLinkGDBServer,这个软件在1.1节描述过。
另一种是基于命令行的GDB Server:JLinkGDBServerCLExe,这个软件用于Eclipse调试。
这里说的Debug配置主要就是让Eclipse知道:
2.6.1. 配置GDB Server的路径配置PX4-Autopilot项目使用的SEGGER J-Link的GDB Server存放路径,也就是JLinkGDBServerCLExe的存放路径。
方法:鼠标右键点击PX4-Autopilot项目,在对话框中选择Properties, 然后选择SEGGER J-Link Path,在Executable中填写:JLinkGDBServerCLExe,在Path中填写:/usr/bin,然后Apply and Close这个对话框。
2.6.2 配置项目使用的CPU
鼠标右键点击PX4-Autopilot项目,在对话框中选择Properties, 在C/C++ Build/Settings对话框中,选择“Devices”,然后在“Device Selection”中选择你的Pixhawk FMU采用的CPU型号。
Debug Configuration对话框的配置内容出现在Main和Debugger页中,其他可不用管。
-
在Main页中,需要指定项目在宿主机上的elf文件的名字以及路径,调试时使用的源程序符号表存放在宿主机的elf文件中。
因为已经命令行build好了,所以这里选择Disable Auto Build。
-
在Debugger页,我们关心J-Link GDB Server Setup,这些数据是Eclipse启动GDB Server时用到的数据。
这里主要是在Actual Executable中填上/usr/bin/JLinkGDBServerCLExe。
另外需要检查设备名称是不是你使用的CPU型号,其他数据不用管。
-
在Debugger页,我们还关心GDB Client Setup,这些数据用于Eclipse启动GDB client,需要在Excutable name和Actual Executable中填上arm-none-eabi-gdb的路径和名字。
所有配置就完成了,连接好硬件,可以按下Debug按钮进行源码调试,如下图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)