嵌入式 uboot引导kernel,kernel引导fs

本文详细介绍了嵌入式系统中u-boot的引导过程,包括Stage1的start.S汇编代码,涉及设置异常向量、初始化内存控制器等步骤,以及Stage2 C语言部分的启动函数start arm boot,该函数负责初始化各种设备并进入命令循环,等待用户输入命令。
摘要由CSDN通过智能技术生成
1、uboot引导kernel:
      u-boot中有个bootm命令,它可以引导内存中的应用程序映像(Kernel),bootm命令对应
common/cmd_bootm.c中的do_bootm()函数,此函数实现下面几个功能:
    1)读flash中的内核映像文件
    2)解压内核
    3)校验内核
    4)跳到内核执行(调用do_bootm_linux()函数)
    {
    

1Stage1 start.S代码结构 u-bootstage1代码通常放在start.S文件中,他用汇编语言写成,其主要代码部分如下

(1) 定义入口。: 

该工作通过修改连接器脚本来完成。

2)设置异常向量(Exception Vector)。 

3)设置CPU的速度、时钟频率及终端控制寄存器。 

4)初始化内存控制器。 

5)将ROM中的程序复制到RAM中。 

6)初始化堆栈。 

7)转到RAM中执行,该工作可使用指令ldr pc来完成。

2Stage2 C语言代码部分 lib_arm/board.c中的start arm bootC语言开始的函数也是整个启动代码中C语言的主函数,同时还是整个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值