原创 如何在Fedora下使用Eclipse编译U-Boot源代码

2017-9-16 15:08 1728 25 2 分类: MCU/ 嵌入式


1. 安装Eclipse及它的C/C++开发环境:
# dnf install eclipse
# dnf install eclipse-cdt
这个步骤非常简单。新的Fedora系统使用dnf命令,老的Fedora系统使用yum命令。Ubuntu系统使用apt-get,或者直接从Eclipse网站下载源代码,都是可以的。

2. 从U-Boot官方网站下载源代码:
http://www.denx.de/wiki/U-Boot/SourceCode
这里当然要用最新稳定版。

3. 解压U-Boot源代码并创建Git仓库:
$ tar -xvf u-boot-latest.tar.bz2
$ cd u-boot-2017.01/
$ git init
$ git add *
这一步并不是编译必须,但是应该养成习惯。从官方网站下载的源代码,解压后的第一步就是创建本地GIt仓,以便查看开发历史。

4. 使用Eclipse导入U-Boot的Makefile项目
Files -> Import -> Existing Code as Makefile Project
$ git add .gitignore
选择U-Boot源代码所在的目录,目录名会自动作为工程名字。交叉编译链选择“None”,我们会在Makefile里指定交叉编译器。.gitignore文件是U-Boot工程自带的,我们也把它加入Git仓

5. 在终端里导入config文件:
$ make CROSS_COMPILE=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf- am335x_boneblack_defconfig
$ vim .gitignore
!.config
$ git add .gitignore .config
由于make *_defconfig步骤不能在Eclipse里进行,所以我们还是在终端里执行它,生成的.config文件加入git仓库。Eclipse会默认忽略.config文件,所以我们得将它从ignore列表排除。虽然加入git仓的步骤不是必须的,但还是推荐执行。

6. 安装ncurses库及其头文件,然后进行make menuconfig:
# dnf install ncurses-libs.x86_64 ncurses-devel.x86_64
# dnf install ncurses-libs.i686 ncurses-devel.i686
$ make CROSS_COMPILE=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf- menuconfig
如果进行过Linux内核开发,这里的menuconfig界面看起来会非常熟悉。如果需要添加某个驱动,在这里选中并保存。

7. 最后在Makefile里添加CROSS_COMPILE选项,并在Eclipse工程里编译:
CROSS_COMPILE=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-
这时就能看到工程目录下生成的目标文件了。

虽然Vim使用ctags工具,也能进行函数跳转,但是Eclipse更加方便。如果不是处理远程代码,还是推荐使用Eclipse或者其他IDE进行U-Boot开发!

EM

文章评论1条评论)

登录后参与讨论

curton 2019-5-4 16:46

好资源 学习了
相关推荐阅读
DiracFatCat 2018-09-05 12:14
【博客大赛】卡尔曼滤波学习笔记(11)从位置估计速度
卡尔曼滤波器,不仅仅是一个低通滤波器,否则也不会持续发展50年。 示例:桑先生需要测试高速列车的性能。测试的目的是判断列车在直线上能否保持80m/s的速度。速度和位置每0.1秒测量一次,但是由于...
DiracFatCat 2018-08-31 19:32
【博客大赛】卡尔曼滤波学习笔记(10)一个简单的示例
《Kalman Filtering: Theory and Practice Using MATLAB》第三章,看不懂,暂时略过。《Kalman Filtering: Theory and Pract...
DiracFatCat 2018-07-19 15:09
对sed命令的练习
sed是流编辑器。它每次处理一个输入,因此很有效率。官方手册:https://www.gnu.org/software/sed/manual/sed.html学习Linux命令,当然要阅读官方手册,所...
DiracFatCat 2018-06-19 15:10
【博客大赛】卡尔曼滤波学习笔记(八)可观测性和可控制性 ...
可观测性是指,在给定模型的情况下,动力学系统的状态是否由它的输入输出唯一确定。可观测性是系统模型的特征。如果传感器矩阵H是可逆的,则本系统可观测,因为有:如果传感器矩阵H某些时候是不可逆的,则本系统仍...
DiracFatCat 2018-06-19 10:56
【博客大赛】卡尔曼滤波学习笔记(七)Z变换
如果我们仅仅对离散线性系统感兴趣,那么就使用下面这个表达式:如果u是常量,那么可以写成:为了简化表达式,我们可以将上面写成:离散线性时不变系统的Φ求解,可以使用Z变换。(* 由于本人已经忘记了Z变换的...
DiracFatCat 2018-06-19 10:54
【博客大赛】卡尔曼滤波学习笔记(六)拉普拉斯变换
对于线性时变/时不变系统,求解Φ(t)有多种方式,拉普拉斯变换是其中一种。(* 由于本人已经忘记了拉普拉斯变换的内容,因此本节待续。)...
我要评论
1
25
关闭 站长推荐上一条 /2 下一条