最简单的bootloader的编写步骤:

最简单的bootloader的编写步骤:
1. 初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化NAND FLASH
2. 如果bootloader比较大,要把它重定位到SDRAM

根据ARM的启动方式,如果是从NOR FLASH启动的话,首地址就是0,直接启动就行,把代码复制到SDRAM中即可,如果是NAND FLASH启动的话,一上电自动把前4K代码复制到steppingstone中,然后重新把代码复制到它的链接地址中。这样的话,在复制之前,就需要先初始化SDRAM。如果是NAND启动,同时需要先把NAND FLASH初始化了
3. 把内核从NAND FLASH读到SDRAM
4. 设置"要传给内核的参数"

a)告诉内核,使用的内存有多大
b)去哪里找根文件系统
5. 跳转执行内核

theKernal = (void(*)(int, int, unsigned int))0x30000800;//0x30000800跳转到内核所在地址是0x30000800
theKernel(0, 362, 0x30000100);//362:代表机器id,0x30000100:代表设置要传给内核的参数在内存所处的位置

/*
*    mov r0, #0
*    ldr r1, =362
*    ldr r2, =0x30000100
*    mov pc, #0x30000800 //内核回去0x30000100位置找的我们所设置的参数
*/

改进:
1. 提高CPU频率, 200MHZ ==> 400MHZ
2. 启动ICACHE

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值