由于没有系统的学习shell,所以Makefile大多数看不懂,一个小小的细节,把我难住了几天。现在开始分享我的操作过程
本文所有linux下的操作是root用户,如果你使用普通用户,请在命令前加上 $ sudo xxxx
所有Linux命令都是加粗,需要加入的文本是斜体
/*
* Ubuntu 16.04
* u-boot-2016.05.tar.bz2
* arm-linux-gcc-4.4.3.tar.gz
*/
准备工作
1.下载u-boot,我是用的u-boot-2016.05.tar.bz2,可以自己去官网下载
下载地址, ftp://ftp.denx.de/pub/u-boot/
2.下载arm-linux-gcc,我使用的是友善之臂提供的arm-linux-gcc-4.4.3.tar.gz ,网上很多,注意低版本的arm-linux-gcc可能会出错
3.安装工具链
(1).解压arm-linux-gcc-4.4.3.tar.gz
#tar xjf arm-linux-gcc-4.4.3.tar.gz -C / /* 安装在根目录下面 */
(2).配置环境变量
1.临时 export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
2,永久
#cd 切换到root用户目录
#vi .bashrc
在文件末尾加入:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin
#source .bashrc 使配置生效
测试: #arm-linux-gcc -v 会输出你的GCC 版本号
4.解压u-boot
#tar xjf u-boot-2016.05.tar.bz2 //解压在本目录下
#cd u-boot-2016.05 //进入u-boot目录
5.下载辅助工具(可以忽略)
dd tree bison flex build-essential manpages-dev
前面准备工作做好之后,现在进入我们的正题,开始添加单板
1. 进入uboot目录下
首先我们打开doc目录,里面是u-boot的官方文档
打开READE.kconfig,找到下面这段话
Tips to add/remove boards
-------------------------
When adding a new board, the following steps are generally needed:
[1] Add a header file include/configs/ 这里是官方给的建议 因为u-boot里有2410的板子,所以我们在它的基础上添加单板 2 . 进入 /board/samsung目录,复制smadk2410文件夹 #cp -rf smdk2410/ smdk2440/ #cd smdk2440/ #vi Kconfig //添加单板信息,修改如下,至于vi的使用请自行百度 # vi MAINTAINERS //添加路径 # mv smdk2410.c smdk2440.c //修改名称 # vi Makefile board 目录修改完毕 3.回到u-boot目录下,进入arch/arm/目录下 # cd arch/arm/ # vi Kconfig //添加自己的单板信息 修改完上面后,一定要修改文件末尾,下面的路径,我就是因为这个细节烦恼几天,找不到错误 你去查看 .config, 发现没有单板信息,或者单板信息是错的 4.现在增加头文件 #cd include/configs # cp smdk2410.h smdk2440.h #vi smdk2440.h //修改头文件,如下 5.添加默认的配置文件 # cd configs/ # cp smdk2410_defconfig smdk2440_defconfig # vi smdk2440_defconfig 6.现在开始编译 # make smdk2440_config # make 出现错误,如下,这是没有指定交叉工具链的原因,如有其他错误,请检查是否操作失误,或者工具链版本与u-boot不匹配 #vi Makefile 现在,在执行make命令,就会一直编译生成u-boot。 总结: 本文修改部分 1. board/samsung/smdk2440/ 添加单板目录,并修改相关文件 2. arch/arm/Kconfig 添加与单板相关的配置 3. include/configs/smdk2440.h 添加头文件 4. configs/smdk2440_defconfig 添加默认的配置文件 5. Makefile(顶层目录下的) 指定交叉工具链
[2] Make sure to define necessary CONFIG_SYS_* in Kconfig:
Define CONFIG_SYS_CPU='cpu' to compile arch/
Define CONFIG_SYS_SOC='soc' to compile arch/
Define CONFIG_SYS_VENDOR='vendor' to compile board/
Define CONFIG_SYS_BOARD='board' to compile board/
Define CONFIG_SYS_CONFIG_NAME='target' to include include/configs/
[3] Add a new entry to the board select menu in Kconfig.
The board select menu is located in arch/
[4] Add a MAINTAINERS file
It is generally placed at board/
[5] Add configs/









上一篇:s3c2440下vxworks的tffs文件系统调试
下一篇:S3C2440 启动和点亮第一盏LED
推荐阅读最新更新时间:2026-03-25 10:31
- 热门资源推荐
- 热门放大器推荐
- 用于 7VIN 至 16VIN、1.5V 和 1.2V 输出的 LTM4628EV DC/DC 模块稳压器的典型应用电路
- 使用 Analog Devices 的 LTC3728LIGN 的参考设计
- DER-406 - 适用于 A19 灯的 5.76 W 高 PF 非隔离降压-升压型 TRIAC 调光 LED 驱动器
- ADR5045B 5V 输出精密微功率并联模式电压基准的典型应用
- LT3970EDDB-3.42 2.5V 降压转换器的典型应用
- MC78M08BDTG 8V 电流调节器的典型应用
- LT1021DCN8-5 精密电压基准的典型应用
- DER-282 - 100W, 扁平(11 mm), LLC DC-DC转换器
- REF193 低压差开尔文连接电压基准的典型应用电路
- LT3088EM 线性稳压器用于添加软启动的典型应用

CAN设计源码
CANopen移植工程(源代码)
uCOS-II移植到STM32的详细步骤
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号