u-boot1.1.6代码分析

一、uboot体验步骤:

1、解压 tar xjf 源码压缩包

2、打补丁 进入解压后的源码目录 patch -p1 < 补丁文件

3、配置 make 100ask24x0_config

4、编译 make

生成文件:

u-boot.bin 二进制可执行文件可以直接烧写到ram中执行

uboot elf格式的可执行文件

u-boot.srec Motorola S-Record格式的可执行文件

 

二、源码分析arm920t启动流程

第一阶段启动过程

start.S
1、设置cpu为管理这个模式
 mrs r0,cpsr
 bic r0,r0,#0x1f
 orr r0,r0,#0xd3
 msr cpsr,r0
2、关闭看门狗
 # define pWTCON  0x53000000
 ldr r0, =pWTCON
 ldr r1, =0
 str r1, [r0]
3、设置时钟分频系数 

     FCLK:HCLK:PCLK = 1:2:4   400 200 100
 # define CLKDIVN 0x4C000014
       /* clock divisor register */

 ldr r0, =CLKDIVN
 mov r1, #3
 str r1, [r0]
4、cpu初始化
 1)初始化缓存
 2)去使能mmu
 3)初始化sdram
5、代码重定位  从U-boot 到 ram(内存)

 设置栈                   //调用c语言时都要先设置栈
 拷贝u-boot代码到内存
6、清除bss段
 设置为0
 ldr r0, _bss_start            /* find start of bss segment */
 ldr r1, _bss_end              /* stop here */
 mov  r2, #0x00000000  /* clear */

 

7、跳转执行
 进行第二部分引导程序 
 ldr pc, _start_armboot


 第二阶段启动过程:

u-boot-1.1.6\lib_arm\board.c

入口函数:start_armboot

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值