cn_x 发表于 2014-9-3 15:24:03

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

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
如果是Kinetis则是:
123...monitor flash device = MK60DN512xxx10...
6.每次debug之前需要启动JLinkGDBServer,为了方便调试,可以在External Tools Configuration下添加一个启动项。

浪里白条 发表于 2014-9-3 15:27:30

K60只能跑ucLINUX吧

cn_x 发表于 2014-9-3 15:29:20

浪里白条 发表于 2014-9-3 15:27
K60只能跑ucLINUX吧

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

浪里白条 发表于 2014-9-3 15:30:27

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


对哈,我看错啦{:titter:}

fengyunyu 发表于 2014-9-3 15:30:48

windows下的开发工具用好就可以了。

cn_x 发表于 2014-9-3 15:32:23

fengyunyu 发表于 2014-9-3 15:30
windows下的开发工具用好就可以了。

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

songjie 发表于 2014-9-3 16:11:49

LZ我顶你啊~~
你要上万啊~~~

wangpengcheng 发表于 2014-9-3 16:14:45

Linux系统暂时还用不习惯,以前装过几次,后来又没有项目,仅仅是玩了一下!

浪里白条 发表于 2014-9-3 16:18:01

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

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

cn_x 发表于 2014-9-3 16:19:20

songjie 发表于 2014-9-3 16:11
LZ我顶你啊~~
你要上万啊~~~

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

浪里白条 发表于 2014-9-3 16:19:53

cn_x 发表于 2014-9-3 16:19
刚刚破万················

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

wangpengcheng 发表于 2014-9-3 16:20:05

cn_x 发表于 2014-9-3 16:19
刚刚破万················

{:handshake:} {:handshake:} {:handshake:}

cn_x 发表于 2014-9-3 16:20:16

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

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

wangpengcheng 发表于 2014-9-3 16:22:15

cn_x 发表于 2014-9-3 16:20
很多工具都是WINDOWS下的,纯软件工程师才好用LINUX

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

cn_x 发表于 2014-9-3 16:23:17

wangpengcheng 发表于 2014-9-3 16:22
也不一定,Linux下也有许多工具的,只是发展方式不一样罢了!

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

浪里白条 发表于 2014-9-3 16:25:39

cn_x 发表于 2014-9-3 16:20
很多工具都是WINDOWS下的,纯软件工程师才好用LINUX

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

浪里白条 发表于 2014-9-3 16:26:37

cn_x 发表于 2014-9-3 16:20
很多工具都是WINDOWS下的,纯软件工程师才好用LINUX

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

holts2 发表于 2014-9-3 16:28:40

LINUX多了去了,你这个是在什么LINUX下建环境啊 ?

cn_x 发表于 2014-9-3 16:28:55

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

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

bruce_helen 发表于 2014-9-3 16:31:26

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

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

cn_x 发表于 2014-9-3 16:31:58

holts2 发表于 2014-9-3 16:28
LINUX多了去了,你这个是在什么LINUX下建环境啊 ?

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

浪里白条 发表于 2014-9-3 16:32:38

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

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

FSL_TICS_Rita 发表于 2014-9-3 18:04:21

感谢楼主分享~~

wangpengcheng 发表于 2014-9-3 18:08:48

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

你不加油我可去换TOWER了!{:titter:}

笑笑我笑了 发表于 2014-9-3 18:19:11

cn_x 发表于 2014-9-3 16:31
应该通用···········

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

cn_x 发表于 2014-9-3 18:38:49

wangpengcheng 发表于 2014-9-3 18:08
你不加油我可去换TOWER了!

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

cn_x 发表于 2014-9-3 18:39:39

笑笑我笑了 发表于 2014-9-3 18:19
apt-get 命令是Ubuntu的啊,其他Linux不是用这个做包管理器的。

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

浪里白条 发表于 2014-9-3 18:41:27

wangpengcheng 发表于 2014-9-3 18:08
你不加油我可去换TOWER了!

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

wangpengcheng 发表于 2014-9-3 18:42:29

浪里白条 发表于 2014-9-3 18:41
换吧。。祝贺你达成目标,哈哈

兑过了,到时候发图片给你看{:titter:}

bruce_helen 发表于 2014-9-3 20:39:41

呵呵,楼上的几位都是金主啊,直接TOWER!

wxfje 发表于 2014-9-3 21:29:02

还没用过linux的系统呢,以前本想给电脑装个的,但发现装起来很麻烦,又怕不小心吧电脑的数据毁了,就只好放弃了

rockyyangyang 发表于 2014-9-3 21:52:43

再顶一个                  

ghostfire 发表于 2014-9-4 13:39:19

浪里白条 发表于 2014-9-3 15:27
K60只能跑ucLINUX吧

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

wbxjtu 发表于 2014-9-4 13:53:39

这得顶起

abszy 发表于 2014-9-4 13:55:32

很不错 蛮详细地

qwert1213131 发表于 2014-9-4 13:58:04

楼上几位大财主啊,
我没接触过linux只能先收藏了

pcbddd 发表于 2014-9-4 13:59:48

这个要支持,linux

rockyyangyang 发表于 2014-9-4 14:00:12

赞一个         

john_8 发表于 2016-2-22 15:37:29


赞一个
页: [1]
查看完整版本: 【分享】linux下配置ARM开发环境笔记——转帖