ARM裸机开发-bootloader-我是bootloader设计师

本文详细介绍了ARM处理器的bootloader设计,包括其在系统启动中的角色,以及如何通过模仿uboot进行设计。文章还探讨了ARM的启动流程,特别是对于2440、6410和210型号的处理器,分析了它们的启动方式、地址布局和流程。同时,对uboot的工作流程进行了分析,从BL1和BL2阶段入手,阐述了bootloader的构建过程和任务执行。最后,提出了Bootloader架构设计的原则和思维导图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、bootloader设计蓝图

1、什么是bootloader

如果说系统内核是航天飞机的话,那么bootloader就是助推器,它带动了内核。在内核启动之前它要做许多硬件的初始化操作,来适合系统的安全启动。

2、bootloader设计方法-模仿

90%的设计从模仿开始,模仿加入自己的想法就是设计。bootloader的模仿我们一般会参照行业老大uboot。

3、uboot简介

uboot可以支持多种嵌入式cpu,例如X86、ARM、MIPS

还可以支持多种嵌入式操作系统,例如wince、linux、vxworks、QNX

uboot分为自主模式和开发模式:自主模式下,uboot的运行不需要人的参与,这往往也是产品模式。

开发模式是供开发人员使用,对uboot进行修改,来适应自己的需要。

4、uboot的查看

我们一般会使用sourceinsight来查看相对比较大的程序,它可以自动定位函数位置。这方便了我们的查找。

二、ARM的启动流程

为什么要关心ARM的启动流程

这是因为软件的设计要遵循硬件的要求。满足硬件的一些要求。

主要从三个方面进行介绍:1、启动方式  2、地址布局  3、启动流程

几点说明:一上电,处理器会从0地址开始读取指令并执行。  Nandflash不参与统一编址。

2440:

1、启动方式:Norflash   Nandflash

2、内存地址从00x30000000开始

3、启动流程(来自手册):s3c2440A boot code can be executed on an external NAND flash memory. In order to support nand flash bootloader, the s3c2440A is equipped with an internal SRAM buffer called "steppingstone". When

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值