打补丁式的移植U-Boot
来源:互联网 发布:javascript小游戏源码 编辑:程序博客网 时间:2024/06/08 06:17
通过打补丁移植 U-Boot
通过打补丁来移植U-Boot是非常简单的,仅仅几步就可以,当然中间遇到了几个有价值的障碍。
步骤如下:
一: 下载U-Boot源码(u-boot-1.1.6.tar.bz2 ) 。
二: 根据官网提供的 关于JZ2440开发板的补丁文件(u-boot-1.1.6_jz2440.patch )对u-boot-1.1.6源码打补丁 。
三:安装交叉编译工具链 。
四:配置,编译 。
五: 利用 tftp 下载 & 测试运行 (开发板里已经有一个移植好的uboot,利用uboot的功能方便下载程序到内存中运行) 。
接下来我就把详细的步骤列出来,以备以后查阅(基于S3C2440 SOC 的 JZ2440开发板 )
一: 下载U-Boot源码(u-boot-1.1.6.tar.bz2 )
1. 访问 U-Boot官方网站,u-boot-1.1.6.tar.bz2 下载
2. 解压 tar jxf u-boot-1.1.6.tar.bz2
二: 根据官网提供的 关于JZ2440开发板的补丁文件(u-boot-1.1.6_jz2440.patch )对u-boot-1.1.6源码打补丁
1 . 切换到u-boot-1.1.6目录 : cd u-boot-1.1.6 。
2 . 把补丁文件拷贝到 u-boot-1.1.6目录下,利用patch命令打补丁: patch -p1 < ./u-boot-1.1.6_jz2440.patch 。
3 . 要是打错了补丁,可以使用 patch -R -p1 < ./u-boot-1.1.6_jz2440.patch 来删除补丁文件 。
三:安装交叉编译工具链
因为我准备了两个版本的工具链,安装过程一样。
1. arm-linux-gcc-3.4.5
如果不想自己编译工具链的话,可以从官方网站下载制作好的。我就这这么做的,下载:arm-linux-gcc-3.4.5-glibc-2.3.6.tar 。
1) . 解压 tar xjvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar ,得到 gcc-3.4.5-glibc-2.3.6 ,进入 gcc-3.4.5-glibc-2.3.6目录。
gcc-3.4.5-glibc-2.3.6 目录下的 bin 就包含了编译uboot和内核使用的工具链如图:
2) . 编辑 /etc/environment 文件 添加 bin 目录的路径加入环境变量 PATH中 。
3) . PATH路径全局化: source /etc/environment 。
到此,交叉编译工具链算是安装完成了。
2. arm-linux-gcc-4.2.2
安装过程和 arm-linux-gcc-3.4.5 一样。
利用脚本的方式 切换使用arm-linux-gcc-3.4.5 和 arm-linux-gcc-4.2.2
如图:脚本 use_arm-linux-gcc-3.4.5内容为:
使用 : . /etc/use_arm-linux-gcc-3.4.5 切换到 arm-linux-gcc-3.4.5
同理 : . /etc/use_arm-linux-gcc-4.2.2 切换到 arm-linux-gcc-4.2.2
这样挺方便的。
四:配置,编译
1 . 配置 make 100ask24x0_config
目的是创建一些头文件和配置文件,其实里面都是一些宏定义开关
如图: make smdk2400_config
2 . 编译 make
结果如图: 执行 make
u-boot 是ELF格式的文件,由操作系统加载执行。
u-boot.bin 是二进制格式的文件,加载执行不需要操作系统,在没有操作系统的情况下,把二进制格式文件烧入Nand Flash 中执行。
第一次尝试遇到一个问题: 编译失败 。
原因是: 交叉编译工具链的版本太高了。用了 arm-linux-gcc-4.2.2 。
于是: 执行 . /etc/use_arm-linux-gcc-3.4.5 解决了问题。
五: 利用 tftp 下载 & 测试运行 (开发板里已经有一个移植好的uboot,利用uboot的功能方便下载程序到内存中运行)
tftp方式下载 (工具:tftpd32 ,SecureCRT)
打印 uboot 环境变量表:如图
1 . 为uboot设置 服务器端(PC)的地址(192.168.1.111)
setenv serverip 192.168.1.111
保存 saveenv
ping 主机 : ping 192.168.1.111
2 . tftp下载 uboot.bin 到DRAM中运行
设置 tftpd32 当前目录 ( 包含 uboot.bin ) 如图:
uboot 中 tftp 命令下载 : tftp 0x30000000 u-boot.bin ( 把 u-boot.bin 下载到DRAM 0x30000000 位置处 ) 如图:
在DRAM中执行 : go 0x30000000 如图 :
- 打补丁式的移植U-Boot
- u-boot 打补丁
- U-Boot的移植
- U-Boot 的移植
- u-boot的移植
- U-BOOT的移植-Linux
- u-boot-2010.03的移植
- u-boot-2010.03的移植
- OK6410的u-boot移植
- S5PV210的u-boot移植
- S3C2440的U-Boot移植
- <三> u-boot 的移植
- S3C2440的U-Boot移植
- at91sam9260的u-boot移植
- U-Boot的移植U-Boot Practically Porting Guide
- u-boot移植随笔:u-boot的内存分布图
- 韦东山u-boot、kernel打补丁操作
- [转帖]MPC8xx的U-Boot移植体会
- 删除字符串中的html标签及空格空行
- 剑指offer-从尾到头打印链表
- js事件之event.preventDefault()与event.stopPropagation()用法区别
- [Language]Python中的注释
- SpringTask任务案例源码实现
- 打补丁式的移植U-Boot
- java设计模式----静态代理
- elk安装配置-备忘
- 在vmware上安装centos7以及网络配置
- 安装Sublime Text 3汉化插件
- C++总结
- 惨痛的wordpress调试教训
- hive on spark 执行出错解决
- 子查询+in+exists/not exists+all+any+多列子查询