A. 如何利用Eclipse C/C++搭建嵌入式ARM开发环境
由于觉得在linux下不方便编写代码,所以准备在windows上搭建开发环境,其实在Linux上也搭建好了,但是使用起来不是很人性化,尤其是文件比较多的时候就很麻烦。下面就选择在windows上用Eclipse做开发。【后来发现还是需要在Linux下编程,因为Windows下没法包含Linux下的一些头文件,所以下面也介绍Linux环境下的Eclipse搭建】。
Windows下的Eclipse环境搭建:
1. 下载并安装Eclipse C/C++
2. 下载交叉编译器,之前在Linux都用的arm-linux-gcc,后来使用TI的ti-sdk-am335x-evm-08开发包,里面安装的编译器是arm-none-linux-gnueabi-gcc,都是能用的,所以我也选择了arm-none-linux-gnueabi-gcc作为交叉编译器,下载windows平台的编译器,然后安装。
下载地址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc
3. 开启Eclipse的ssh远程登录功能,我分别开启了Beaglebone Black和Linux的ssh terminal,操作起来很是方便。
4. 新建C项目工程“hello”,编写简单的hello代码,注意选择交叉编译选项,交叉编译器前缀“arm-none-linux-gnueabi-”交叉编译器路径选择arm-none-linux-gnueabi-gcc安装的路径“…Linuxin”,在此文件夹下有arm-none-linux-gnueabi-gcc.exe、arm-none-linux-gnueabi-gdb.exe等,还有cs-make.exe,这里需要把“cs-make.exe”改成“make.exe”,因为Eclipse不认cs-make.exe编译的时候会报错的。
图文安装参考:http://www.linuxidc.com/Linux/2016-03/129577.htm
5. 调试(构建Ctrl+B)的时候会自动生成makefile,生成编译结果,放到ARM嵌入式平台运行就可以了,成功执行并输出“hello”。
Linux下的Eclipse环境搭建:
官网下载http://www.eclipse.org/downloads/
发下是收费的
sudo apt-get install eclipse直接就安装了
然后sudo eclipse –s启动后发现“窗口->打开视图”里面没有ssh远程登录的选项,网络一下发现它是Eclipse的插件,查询下这个软件:sudo apt-cache search Remote System Explorer,发现一个eclipse-rse,就是它了,然后直接安装:sudo apt-get install eclipse-rse
重启eclipse
新建工程时发现没有C/C++工程,只有Java工程,再次搜索sudo apt-cache search eclipse C/C++
发现其中一条:
eclipse-cdt - C/C++ Development Tools for Eclipse
继续安装:
sudo apt-get install eclipse-cdt
再次重启eclipse,就有了C/C++项目,高兴ing。
新建C工程,添加编译器:
arm-none-linux-gnueabi-
/opt/toolschain/4.4.3/bin
编写hello程序,编译OK,在BBB上执行,成功!
B. 嵌入式ARM linux操作系统中如何构建交叉开发环境
这个问题相当专业了,之前我去周立功那边了解过的。
按照以下步骤进行安装:
1) 安装32位的兼容库和libncurses5-dev库
在安装交叉编译工具之前需要先安装32位的兼容库和libncurses5-dev库,安装32兼容库需要从ubuntu的源库中下载,所以需要在Linux主机系统联网的条件下,通过终端使用如下命令安装:
vmuser@Linux-host ~$sudo apt-get install ia32-libs
若Linux主机系统没有安装32位兼容库,在使用交叉编译工具的时候可能会出现错误:
-bash: ./arm-fsl-linux-gnueabi-gcc: 没有那个文件或目录
在终端中使用如下命令则可以安装libncurses5-dev库。
vmuser@Linux-host ~$sudo apt-get install libncurses5-dev
如果没有安装此库,在使用make menucofig时出现如下所示的错误:
*** Unableto find the ncurses libraries or the
*** required headerfiles.
*** 'makemenuconfig' requires the ncurses libraries.
***
Installncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1
make: *** [menuconfig] 错误 2
2) 安装交叉编译工具链
将交叉编译工具“gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2”文件通过U盘的方式拷贝到Linux主机的“/tmp”目录下,然后执行如下命令进行解压安装交叉编译工具链:
vmuser@Linux-host ~$ cd /tmp
vmuser@Linux-host ~$ sudo tar -jxvfgcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2 -C /opt/
vmuser@Linux-host /tmp$ # 输入vmuser用户的密码“vmuser”
执行完解压命令后,交叉编译工具链将被安装到“/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0”目录下。交叉编译器的具体目录是“/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin”,为了方便使用,还需将该路径添加到PATH环境变量中,其方法为:修改“/etc/profile”文件,具体操作方法如下:
在终端中输入如下指令
vmuser@Linux-host ~$ sudo vi /etc/profile # 若提示输入密码,则输入“vmuser”
用vi编辑器打开“/etc/profile”文件后,在文件末尾增加如下一行内容:
export PATH=$PATH:/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin
文件修改并保存后,再在终端中输入如下指令,更新环境变量,使设置生效。
vmuser@Linux-host ~$source /etc/profile
在终端输入arm-fsl-linux-gnueabi-并按TAB键,如果能够看到很多arm-fsl-linux-gnueabi-前缀的命令,则基本可以确定交叉编译器安装正确,如下图所示。