uboot分析-s3c2440,rk3188

1. 刚开始涉及的文件

/arch/arm/arm920t/Start.S

/arch/arm/uboot.lds

uboot.lds标识文件是从start.s文件开始,链接地址是0x00000000.程序一开始是从0x00000000处运行(此处不理解),暂且从0x00000000处分析,假设板子启动后PC=0x00000000,此处会运行start.s里的代码,之后关中断,关看门狗,设置时钟,初始化内存控制器设置栈指针,然后运行到C语言处。关于以上汇编部分的调试,得用反汇编去调试。

C语言部分(Nand_boot.c, Spl.c, Spl_boot.c, board.c这几种启动方式不了解)

board_init_f函数:r8寄存器里存放gd结构体,此函数初始化以及设置gd结构体和bd结构体

然后进入board_init_r函数:初始化各种外围设备,如nand,nor,网卡,串口等等,之后进入main_loop()函数

 

2. main_loop()函数分析

此处分两种,rk3188启动使用do_booti,而s3c2440使用的是do_bootm,显然rk3188的启动方式是厂商加的。区别是rk3188省去了进入uboot的等待时间,即用户无法对uboot进行打断。而且do_booti是rk3188特地加的。

rk3188实现了启动区与recovery区的功能,方便开发人员实现升级功能。

 

uboot方面的工作:

涉及uboot启动到内核的调试,升级固件功能(A/B分区,以及留块空闲的flash存放标志信息),uboot下命令行的添加,其余基本不涉及!了解了uboot的启动原理即可!

uboot下的网络通信,一般以tftp,ftp为主

flash的分区,预留一块作为上一次启动的完整信息。

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值