Chinaunix首页 | 论坛 | 博客
  • 博客访问: 194936
  • 博文数量: 46
  • 博客积分: 1355
  • 博客等级: 中尉
  • 技术积分: 336
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-02 16:20
文章分类

全部博文(46)

文章存档

2017年(2)

2014年(12)

2012年(1)

2011年(5)

2010年(26)

我的朋友

分类: 嵌入式

2010-05-02 16:48:49

U-boot是一种比较通用的bootloader

通常启动过程分为两个阶段:

一、              汇编代码。完成寄存器和内部ram的初始化,可以在u-boot/cpu/arm920tstart.S 文件中查看其初始化过程。

二、              C语言代码。完成的是设备的初始化工作。可以在lib-arm/boardC文件中查看其初始化过程。

具休的过程如下:

1、  u-boot的软件包解压。(一般建到/home下)建立自己的开发板类型(mini2440)如果不建立自己的开发板也可以用uboot自带的smdk2440来建立适合自己的bootloader

2、  进入u-boot顶层目录,查看顶层的makefile

             #cd u-boot

 #vi makefile    

//下面是makefile中的存在的,是三星公司的smdk2410开发板的配置。

smdk2410_config :unconfig

      @$(MKCONFIG)$(@:_config=)arm arm920t smdk2410 UNLL s3c24x0

上面的各项意思如下:

arm cpu的架构(ARCH

arm920tcpu的类型,对应于cpu/arm920t子目录

smdk2410开发板的型号(自己建立的)对应于board/huangu/mimi2440目录下

NULL 开发商

s3c24x0  :片上系统。

Unconfig依赖文件所做的工作有那些呢?可以找到这一项

unconfig @rm –f include/config.h  include/config.mk

board/*/config.tmp 删除了以上文件。

 @$(MKCONFIG)$(@:_config=)arm arm920t smdk2410 UNLL s3c24x0

           Mkconfig是脚本文件,传入的参数有$1$6共六个,这个六个参数用于下一级的的makefile参数。

3、  配置开发板

#make smdk2410_config

#make CROSS_COMPILE=arm-linux-

//在上面的一步中,arm-linux-是自己建立的交叉编译工具,在里使用的时候要//带上绝对路径,或都是修改环境变量。

//编程完成后,会生成一个u-boot.bin 文件,在u-boot目录下。这就是可以烧//写到nor flash内的bootloader了。一般使用的工具是H-JtagDNW.

u-boot下载到了开发板后,上电开发板在串口工具里会显示少量的u-boot的信息

help命令可以查看u-boot支持的命令,以及功能.

tftp命令可以下载内核镜像 和文件系统(在xp 上要开启tftp服务)

例如:

   Tftp  30008000  zImage

   Tftp  30800000  ramdisk.image.gz

Printenv 查看环境变量。

Setenv ipaddr 192.168.1.11  设置开发板的ip地址,这样设置后并没有写进flash中,而只存于ram 中,下次掉电以后,仍然恢复以前的设置。使用saveenv命令可以把新的设置写入flash .

阅读(1473) | 评论(1) | 转发(0) |
0

上一篇:没有了

下一篇:source insight 使用指南

给主人留下些什么吧!~~

chinaunix网友2010-05-02 17:01:04

第一次开通,把自己对uboot的理解写上面了,分析启动的两个过程是没有这个能力了。哈哈。