如何写一个boot loader?
lilo和grub的代码太多太多,看起来没有头绪。
又很多问题没有解决,。
1、对loader的位置有些模糊
loader的代码位置应该在0磁道,0磁头,1扇区,但在安装loader之前,这里存放的是内核的代码,对于Linux系统是bootsect.S。安装loader之后,这里是loader的代码,那么loader把bootsect.S的代码转移到哪里去了呢?
在loader中选中linux系统后,是否还是按照linux正常的启动顺序呢?(bootsect.S-->setup.S-->head.S)
2、loader需要加载并识别内核的能力。
这是否意味着loader需要从FAT32和ext2文件系统中读取内核代码。个人觉得一个简单的loader是不需要的,只要把指令从磁盘上读到内存的指定位置就可以了,而不用关心文件系统,这种想法正确吗?
谢谢大家,欢迎讨论
相关推荐
STM32F103_IAP Boot-Loader引导程序
通过借鉴网络上各路大神的例子,最终写出适合自己项目的程序,最核心的PC指针跳转没有动,千篇一律而已,再此向大神致敬!!代码大小只有7K,编译优化后可能有2K吧,KEIL IDE 优化慎重,分享给大家
嵌入式系统/ARM技术中的Boot-loader程序烧写
得到的目标代码loader.bin通过串口调试程序下载到硬件板的SDRAM中。具体的方法是:将串口线连接到硬件板和PC的串口上,打开串口调试程序,将速率调整到9600bps,把硬件板的启动方式改成内启动;然后上电,此时串口上会打出一个‘<’符号,表示目前硬件板正在等待PC发送2KB的数据,此时用串口调试程序把loader.bin发送到硬件板。 如图所示,Boot-loader首先打开bin映像文件,然后检查设备D。如果ID错误则程序会停止运行,这意味着硬件系统有问题,或者JTAG接线有错误等。接着开始擦除∏ash里面的数据,根据Flash的大小擦除时间有长有短;擦除完毕就开始对Flash
Boot Loader的启动流程和开发经验总结
1.什么是BootLoader 2.BootLo ader在PC机与嵌入式的区别比较33.Boot Loader的启动流程 44.Boot Loader的开发经验总结
Keil C51 Boot Loader 与固件制作教程
此文档所述方法仅对有ISP功能的51核MCU适用,针对没有硬件映射的MCU,开发工具为MDK。分为两个工程,固件工程和BOOT_LOADER工程。以中颖的SH79F1612A为例,BOOT_LOADER工程生成的.hex文件烧录至BOOT_LOADER区(用户自行划分,但必须从0x0000开始,本例取0x0000到0x0fff);那么固件工程生成的.hex文件就仅允许烧录到0x1000到0x3fff部分,本例中固件程序必须包含C51启动文件。
Boot Loader分析
Luminary Micro 公司设计并生产的Stellaris 系列单片机, 基于先进的ARM Cortex-M3 内核,芯片提供的高效的性能、广泛的集成功能,适用于各种关注成本并明确要 求具有过程控制以及连接能力的应用方案。不可多得的是, Luminary 官方提供了 BootLoader 的全部源代码,大大减小了开发难度。本章将分析Stellaris BootLoader 的组成、 结构及设计思路,试图掌握其关键技术,以更好地应用BootLoader。


