嵌入式学习笔记_uboot

1_Linux启动方式比较

一上电

Pc

Linux/嵌入式系统

Bios硬盘读入内核

Boot loader(最终目的是启动内核,有很多种,我用的是uboot)从flash读出内核,放到sdram中

引导操作系统Windows

引导内核

识别c,d盘

挂接根文件系统

运行应用程序QQ等

应用程序

2_uboot,打补丁 编译 烧写

先看uboot源码包: u-boot-1.1.6.tar.bz2, 在看补丁u-boot-1.1.6_jz2440.patch (将我们在源码包上做的修改独列出来作为一个补丁,小一点).将这俩个文件放到服务器上面,分为四步:

a)_解压

b)_打补丁

进入到解压后的uboot-1.1.6目录下打补丁,配置选项 –p1的意思是忽略当前目录的意思.补丁文件中 “--”意思是原来的源文件, “++”是修改后的文件,由于已经进入源码文件,于是忽略第一个 “/”前面的东西

c)_配置

uboot的实现是很依赖具体硬件的,不同的嵌入式系统中的硬件也是千差万别,于是需要进行一定的配置,先配置成我们需要的类型,对于我使用的这块单板,只需要输入

make 100ask24x0_config

d)_编译

make

编译的时间有点长,需要等待一段时间,然后拿到pc上用oflash烧写到nandflash 即可

3_uboot操作

CPU上电后会从某一个地址开始执行,arm架构的CPU会从地址0x0000 0000 开始执行,需要将存储器件rom或者flash映射到这个地址,uboot就存放在这个地址处,一上电就可以执行.

       于是板子上电,在倒计时结束前(启动加载模式)按下空格,进入菜单界面(下载模式)

      

       这些选项可以烧写文件系统,内核到开发板上,q 退出菜单,输入 ? 或者 help就可以看到常用的选项了,如果需要查看该选项的详细用法,可以在该选项之前加入 “? xx”即可:

       Print可以输出环境变量,比如ip地址,倒计时时间,等待, 也可以 “set xxx”进行设置,比如开始倒计时的时间可以设置,

3_uboot结构

如果可以将操作系统内核复制到内存中运行,无论从本地比如flash还是从远端比如通过网络,就称这段程序为boot loader.Uboot的最终目的是启动内核,需要从flash中读出内核,放到SDRAM中,然后启动内核,于是uboot需要实现以下几个基本功能:

       1_读flash:需要读出内核

              1.1_写flash,为了开发方便,通过网卡, USB, 串口等等可以写入命令等

       2_初始化sdram

              2.1_初始化时钟,刚开始上电2440的时钟的晶振12M,但是最大可以支持400M,关看门狗

              2.2_初始化串口

       3_启动内核

4_uboot启动方式

       具体详细的功能分析需要参考makefile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值