linux 系统移植 (一,uboot启动过程)

linux系统移植分为两部分内容:

1,引导程序:u-boot的移植

2,linux内核的移植

3,根文件系统的移植

这些就是U-boot的代码,官方的,看看就能整理出如下信息。

做好移植,先需要关心和了解以下文件夹。

u-boot要改的信息:

board文件夹(重点改处理器外接的那些部份,处理器里面的芯片公司官方多数已经做好了。)

cpu文件夹:start.S启动过程。

lib_arm文件夹:arm相关库文件。

移植过程:start.S——board.c——main.c

有时就改一下配置就OK了:include/configs

grep -R "字符串" ./*            查找字符串。

下面分析一下start.S:

首先校验信息,芯片手册上已经说明了:

.word 0x2000
.word 0x0
.word 0x0
.word 0x0

正式开始:

各种异常:
.globl _start
_start: breset
ldrpc, _undefined_instruction
ldrpc, _software_interrupt
ldrpc, _prefetch_abort
ldrpc, _data_abort
ldrpc, _not_used
ldrpc, _irq
ldrpc, _fiq
_TEXT_BASE:    //虚拟起始地址,开启MMU之后。
.wordTEXT_BASE
_TEXT_PHY_BASE:
.wordCFG_PHY_UBOOT_BASE       //物理起始地址
之后:

reset:切换到管理模式。

cpu初始化——cpu_init_crit:cache,关掉MMU,电源管理。

然后重点关注:lowlevel_init(board文件中)主要改这个函数,根据不同的板子。

判断从哪里启动,就是扳那就按钮。

从nand flash还是从哪里开始启动。启动后拷贝代码。将nand flash的代码拷贝到dram中。

清bss段

ldrpc, _start_armboot绝对跳转,跳到boot.c中。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值