为PX4建立J-Link Eclipse调试环境

为PX4建立J-Link Eclipse调试环境,第1张

版本说明

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

6针)

 1.2 Pixhawk 4的FMU Debug Port与J-Link EDU mini口连接

连线顺序描述:

参考官网:

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环境下的编译工作,编译工作手动在命令行完成。

2.1安装SEGGER JLink软件

打开如下网页

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目录中。

2.2 安装具有Embeded CDT的Eclipse

旧的嵌入式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的项目。

2.4 安装CMSIS PACKs

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设备。

2.5 安装Segger J-Link软件工具

参考官网: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调试。

2.6 为PX4-Autopilot项目做Debug配置

这里说的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型号。

 2.6.3 配置Debug

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按钮进行源码调试,如下图:

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/674196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存