bootloader

     兰州拉面的蛋炒饭与沙县小吃的蛋炒饭是两种不同的蛋炒饭。虽然都有饭与蛋,但是沙县小吃了里面有酱油,而兰州拉面里面有胡萝卜。

同理可证,ARM的bootloader与X86的bootloader都有引导内核的作用,都有stage1与stage2,但是arm的stage1的大小限制是4K,而x86的是512字节,ARM更多的是硬件初始化,而X86更多的是硬盘的检查。

     ARM的stage1的第一个我猜想是00~1C这是8个中断向量表,主要是PC遇到问题时会变成00,04,08,0C,10,14,18,1C,其次是设置系统为管理模式,再者在管理模式下,屏蔽所有中断,关掉看门狗,然后是设置好CPU的频率,毕竟没有初始化之前,是用外部10M的频率进行干活,速度不快,然后是设置串口用来打印消息,和LED用来显示程序运行到哪一步。

    接下来主要是对SDRAM进行初始化,然后把整个BOOTLOADER拷贝到SDRAM里面,然后是设置好相应模式下的堆栈,最后是跳转到stage2的入口。

   然后512字节的主引导扇区没那么复杂,前面的硬件初始化已经由BIOS给完成了,只需要查看硬盘分区,然后引导到次分区引导程序。

下面这张图是凌晨做的,有些地方还是对不上说明书。

grub的512的stage1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值