【分享】linux下配置ARM开发环境笔记——转帖

2020-02-11 09:13发布

linux下配置ARM开发环境主要包括以下几个方面:
  • IDE: Eclipse + CDT
  • ARM-toolchain: GNUARM
  • Debug server:JLink GDBServer
如果Eclipse你很熟悉,正巧JLink又在手上,而且使用的是debian体系的distro(mint/ubuntu…)的话,请继续看下去吧,对于freescale的Kinetis系列,配置完毕还有免费不限代码大小的Processor Expert可以用。1.安装Eclipse CDT前往eclipse官网下载Eclipse IDE for C/C++ Developers,包括Eclipse IDE和CDT插件。下载后解压到你需要的文件夹,执行根目录下eclipse即可。如果之前安装过Eclipse,请检查版本,不是Kepler的话,去上面的官网链接下载吧,可以省去很多版本不兼容的麻烦,是Kepler的话打开Help->Install New Software…,然后Add…如下地址:http://download.eclipse.org/tools/cdt/releases/kepler.全部勾选安装。2.安装GNUARMsudo add-apt-repository ppa:terry.guo/gcc-arm-embeddedsudo apt-get updatesudo apt-get install gcc-arm-none-eabi3.安装JLink GDBServer:前往segger官网下载 J-Link software & documentation pack for Linux,包括JLink GDB Server和J-Link Commander。下载完毕双击deb安装(有deb安装工具的话)或者执行:dpkg --install your_deb_file4.安装GNU ARM Eclipse插件 打开Eclipse,执行Help->Install New Software…,然后Add…如下地址:http://gnuarmeclipse.sourceforge.net/updates全部勾选安装。5.安装Processor Expert(Kinetis系列)如果是freescale的MCU的话,freescale以eclipse插件的形式提供了Processor Expert工具,相比官方的codewarrior工具,一来代码量没有限制,二来提供了linux兼容。前往freescale官网下载,‘Download’栏下选择Microcontrollers Driver Suite v10.2 plug-in for existing Eclipse 3.7 (Indigo) installations(貌似需要注册帐号)。
解压缩后得到两个文件,打开Eclipse,执行Help->Install New Software…,然后Add…->Archive…全部安装。上面几步都顺利完成之后,之后下面基本是一些配置的步骤了:
  • 对于STM32系列来说最新版的GNU ARM Eclipse插件集成了一个专门的工程向导,可以建立基于ST标准库的STM32工程,Eclipse和相应的插件会帮你处理好头文件以及toolchain的路径设置。
  • 对于Kinetis系列,freescale提供的Processor Expert插件也集成了一个专门的工程向导,但是向导产生的工程并没有配置编译工具和路径,还需要做一些额外的工作:
1.右键工程名称 -> Properties -> C/C++ Build > Tool Chain Editor2.去掉勾选 Display compatible toolchains only,然后下面的下拉框选择 Cross GCC,然后Apply3.单击左侧的Settings -> Manage Configurations,给当前的配置起一个名字(随意改,例如:K60_Debug)4.在Settings下面有许多需要修改的设置,首先是Cross Settings:Prefix填入:arm-none-eabi-Path填入:/usr/bin5.在Cross GCC Compiler -> Includes添加如下包含:“${ProjDirPath}/Sources”“${ProjDirPath}/Generated_Code”“${ProcessorExpertPath}/lib/Kinetis/iofiles”“${ProcessorExpertPath}/lib/Kinetis/pdd/inc”6.在Cross GCC Compiler -> Compiler Miscellaneous Options -> flag中添加:-c -fmessage-length=0 -mcpu=cortex-m4 -mabi=aapcs -mthumb7.使用C++的话,Cross G++ Compiler设置同上8.在Cross G++ Linker -> Miscellaneous-> flag中添加:-mthumb -T”${ProjDirPath}/Project_Settings/Linker_Files/ProcessorExpert.ld”9.在Build Artifact标签页下面指定extension为elf写完地一个led_blink的程序之后,就要debug试试看了。根据debug server不同,主要有以下两种方式:
  • Eclipse -> CDT debugger -> OpenOCD -> JLink -> ARM MCU
  • Eclipse -> CDT debugger -> JLink GDB Server -> JLink -> ARM MCU
OpenOCD不支持最新的JLink V8固件,我也懒的降级回到V6,故选择了后一种,不过Segger的JLink GDB Server有bug,主要是以下两点:
  • 每次断开连接后提示segmentation fault,下次debug前需要重启JLink GDB Server
  • 无法实现RAM debug(这一点不是很确定,我按照Segger官方文档试验了几次,没有成功,有成功的同学请分享下经验)
除去以上两点,Eclipse提供的CDT debugger还是很好用的,设置过程如下:1.工程名称上右键 -> Debug As -> Debug Configurations 2.在GDB Hardware Debuging上右键 -> New 3.在debugger标签栏下把GDB Command改为:/usr/bin/arm-none-eabi-gdb4.去掉Use remote target(我们在后面的启动命令中手动指定远程端口) 5.打开startup标签栏,在Initialization Command下添加12345678910target remote localhost:2331monitor flash device = STM32F103VEmonitor flash download = 1monitor flash breakpoints = 1monitor clrbpmonitor endian littlemonitor speed 1000monitor resetmonitor sleep 100monitor speed auto
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
38条回答
wangpengcheng
1楼-- · 2020-02-12 03:19
Linux系统暂时还用不习惯,以前装过几次,后来又没有项目,仅仅是玩了一下!
浪里白条
2楼-- · 2020-02-12 08:33
wangpengcheng 发表于 2014-9-3 16:14
Linux系统暂时还用不习惯,以前装过几次,后来又没有项目,仅仅是玩了一下! ...

我也是,装了一次,但一直没用
倒是看有个搞LINUX的同事,一直用LINUX用得很爽。
cn_x
3楼-- · 2020-02-12 11:31
songjie 发表于 2014-9-3 16:11
LZ我顶你啊~~
你要上万啊~~~

刚刚破万················
浪里白条
4楼-- · 2020-02-12 14:00
cn_x 发表于 2014-9-3 16:19
刚刚破万················

哈,上万了吧,恭喜露珠变身万元户。
wangpengcheng
5楼-- · 2020-02-12 19:21
 精彩回答 2  元偷偷看……
cn_x
6楼-- · 2020-02-12 21:29
wangpengcheng 发表于 2014-9-3 16:14
Linux系统暂时还用不习惯,以前装过几次,后来又没有项目,仅仅是玩了一下! ...

很多工具都是WINDOWS下的,纯软件工程师才好用LINUX

一周热门 更多>