搜索
bottom↓
回复: 38

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

[复制链接]

出0入0汤圆

发表于 2014-9-3 15:24:03 | 显示全部楼层 |阅读模式
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.安装GNUARM
sudo add-apt-repository ppa:terry.guo/gcc-arm-embeddedsudo apt-get updatesudo apt-get install gcc-arm-none-eabi
3.安装JLink GDBServer:
前往segger官网下载 J-Link software & documentation pack for Linux,包括JLink GDB Server和J-Link Commander。下载完毕双击deb安装(有deb安装工具的话)或者执行:
dpkg --install your_deb_file
4.安装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 Editor
2.去掉勾选 Display compatible toolchains only,然后下面的下拉框选择 Cross GCC,然后Apply
3.单击左侧的Settings -> Manage Configurations,给当前的配置起一个名字(随意改,例如:K60_Debug)
4.在Settings下面有许多需要修改的设置,首先是Cross Settings:
Prefix填入:
arm-none-eabi-
Path填入:
/usr/bin
5.在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 -mthumb
7.使用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-gdb
4.去掉Use remote target(我们在后面的启动命令中手动指定远程端口) 5.打开startup标签栏,在Initialization Command下添加
12345678910
target remote localhost:2331monitor flash device = STM32F103VEmonitor flash download = 1monitor flash breakpoints = 1monitor clrbpmonitor endian littlemonitor speed 1000monitor resetmonitor sleep 100monitor speed auto
如果是Kinetis则是:
123
...monitor flash device = MK60DN512xxx10...
6.每次debug之前需要启动JLinkGDBServer,为了方便调试,可以在External Tools Configuration下添加一个启动项。

出0入0汤圆

发表于 2014-9-3 15:27:30 | 显示全部楼层
K60只能跑ucLINUX吧

出0入0汤圆

 楼主| 发表于 2014-9-3 15:29:20 | 显示全部楼层

搞不清楚,这个是说在操作系统下配置开发环境啊
并不是嵌入式Linux配置
估计有不少人不是用的windows
这个估计有用

出0入0汤圆

发表于 2014-9-3 15:30:27 | 显示全部楼层
cn_x 发表于 2014-9-3 15:29
搞不清楚,这个是说在操作系统下配置开发环境啊
并不是嵌入式Linux配置
估计有不少人不是用的windows

对哈,我看错啦

出100入101汤圆

发表于 2014-9-3 15:30:48 | 显示全部楼层
windows下的开发工具用好就可以了。

出0入0汤圆

 楼主| 发表于 2014-9-3 15:32:23 | 显示全部楼层
fengyunyu 发表于 2014-9-3 15:30
windows下的开发工具用好就可以了。

并不是所有人都用windows的
现在国产操作系统都是基于Linux

出0入0汤圆

发表于 2014-9-3 16:11:49 | 显示全部楼层
LZ我顶你啊~~
你要上万啊~~~

出0入0汤圆

发表于 2014-9-3 16:14:45 | 显示全部楼层
Linux系统暂时还用不习惯,以前装过几次,后来又没有项目,仅仅是玩了一下!

出0入0汤圆

发表于 2014-9-3 16:18:01 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 16:14
Linux系统暂时还用不习惯,以前装过几次,后来又没有项目,仅仅是玩了一下! ...

我也是,装了一次,但一直没用
倒是看有个搞LINUX的同事,一直用LINUX用得很爽。

出0入0汤圆

 楼主| 发表于 2014-9-3 16:19:20 | 显示全部楼层
songjie 发表于 2014-9-3 16:11
LZ我顶你啊~~
你要上万啊~~~

刚刚破万················

出0入0汤圆

发表于 2014-9-3 16:19:53 | 显示全部楼层
cn_x 发表于 2014-9-3 16:19
刚刚破万················

哈,上万了吧,恭喜露珠变身万元户。

出0入0汤圆

发表于 2014-9-3 16:20:05 | 显示全部楼层
cn_x 发表于 2014-9-3 16:19
刚刚破万················

出0入0汤圆

 楼主| 发表于 2014-9-3 16:20:16 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 16:14
Linux系统暂时还用不习惯,以前装过几次,后来又没有项目,仅仅是玩了一下! ...

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

出0入0汤圆

发表于 2014-9-3 16:22:15 | 显示全部楼层
cn_x 发表于 2014-9-3 16:20
很多工具都是WINDOWS下的,纯软件工程师才好用LINUX

也不一定,Linux下也有许多工具的,只是发展方式不一样罢了!

出0入0汤圆

 楼主| 发表于 2014-9-3 16:23:17 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 16:22
也不一定,Linux下也有许多工具的,只是发展方式不一样罢了!

也是··········不习惯而已

出0入0汤圆

发表于 2014-9-3 16:25:39 | 显示全部楼层
cn_x 发表于 2014-9-3 16:20
很多工具都是WINDOWS下的,纯软件工程师才好用LINUX

连ISE都有LINUX下的,而且纯命令操作,很爽。

出0入0汤圆

发表于 2014-9-3 16:26:37 | 显示全部楼层
cn_x 发表于 2014-9-3 16:20
很多工具都是WINDOWS下的,纯软件工程师才好用LINUX

而且很多工具,最先都是先基于LINUX开发的,而后才移植到WINDOW下。

出0入0汤圆

发表于 2014-9-3 16:28:40 | 显示全部楼层
LINUX多了去了,你这个是在什么LINUX下建环境啊 ?

出0入0汤圆

 楼主| 发表于 2014-9-3 16:28:55 | 显示全部楼层
浪里白条 发表于 2014-9-3 16:26
而且很多工具,最先都是先基于LINUX开发的,而后才移植到WINDOW下。

操作习惯问题吧
装过linux
折腾了一会还是回到windows

出0入0汤圆

发表于 2014-9-3 16:31:26 | 显示全部楼层
浪里白条 发表于 2014-9-3 16:26
而且很多工具,最先都是先基于LINUX开发的,而后才移植到WINDOW下。

linux适合搞编程的人使用,在我看来,大学专业是计算机专业的,操作系统就应该用linux。这样学生就不会去打游戏了。

出0入0汤圆

 楼主| 发表于 2014-9-3 16:31:58 | 显示全部楼层
holts2 发表于 2014-9-3 16:28
LINUX多了去了,你这个是在什么LINUX下建环境啊 ?

应该通用···········

出0入0汤圆

发表于 2014-9-3 16:32:38 | 显示全部楼层
bruce_helen 发表于 2014-9-3 16:31
linux适合搞编程的人使用,在我看来,大学专业是计算机专业的,操作系统就应该用linux。这样学生就不会去 ...

哈哈,这个想法好
我们这有个搞LINUX的专家就是从大学时代开始一直用LINUX,用了接近20年

出0入0汤圆

发表于 2014-9-3 18:04:21 | 显示全部楼层
感谢楼主分享~~

出0入0汤圆

发表于 2014-9-3 18:08:48 | 显示全部楼层
浪里白条 发表于 2014-9-3 16:32
哈哈,这个想法好
我们这有个搞LINUX的专家就是从大学时代开始一直用LINUX,用了接近20年 ...

你不加油我可去换TOWER了!

出0入0汤圆

发表于 2014-9-3 18:19:11 | 显示全部楼层
cn_x 发表于 2014-9-3 16:31
应该通用···········

apt-get 命令是Ubuntu的啊,其他Linux不是用这个做包管理器的。

出0入0汤圆

 楼主| 发表于 2014-9-3 18:38:49 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 18:08
你不加油我可去换TOWER了!

话说你这个都11973了,临门一脚了啊
速度换了,做了工程来分享一下

出0入0汤圆

 楼主| 发表于 2014-9-3 18:39:39 | 显示全部楼层
笑笑我笑了 发表于 2014-9-3 18:19
apt-get 命令是Ubuntu的啊,其他Linux不是用这个做包管理器的。

呃,,,,这个我不清楚啊
看着顺眼就转过来了
我不用Linux 不懂这些

出0入0汤圆

发表于 2014-9-3 18:41:27 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 18:08
你不加油我可去换TOWER了!

换吧。。祝贺你达成目标,哈哈

出0入0汤圆

发表于 2014-9-3 18:42:29 | 显示全部楼层
浪里白条 发表于 2014-9-3 18:41
换吧。。祝贺你达成目标,哈哈

兑过了,到时候发图片给你看

出0入0汤圆

发表于 2014-9-3 20:39:41 | 显示全部楼层
呵呵,楼上的几位都是金主啊,直接TOWER!

出0入0汤圆

发表于 2014-9-3 21:29:02 | 显示全部楼层
还没用过linux的系统呢,以前本想给电脑装个的,但发现装起来很麻烦,又怕不小心吧电脑的数据毁了,就只好放弃了

出0入0汤圆

发表于 2014-9-3 21:52:43 | 显示全部楼层
再顶一个                    

出0入0汤圆

发表于 2014-9-4 13:39:19 | 显示全部楼层

原来是是这样的。不能跑linux。。。。

出0入0汤圆

发表于 2014-9-4 13:53:39 | 显示全部楼层
这得顶起

出0入0汤圆

发表于 2014-9-4 13:55:32 | 显示全部楼层
很不错 蛮详细地

出0入0汤圆

发表于 2014-9-4 13:58:04 | 显示全部楼层
楼上几位大财主啊,
我没接触过linux只能先收藏了

出0入0汤圆

发表于 2014-9-4 13:59:48 | 显示全部楼层
这个要支持,linux

出0入0汤圆

发表于 2014-9-4 14:00:12 | 显示全部楼层
赞一个           

出0入0汤圆

发表于 2016-2-22 15:37:29 | 显示全部楼层

赞一个
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-12-5 21:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表