BootLoader 详解(1)】的更多相关文章

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boot 源码 : http://download.csdn.net/detail/han1202012/8342761 -- S3C2440 文档 : http://download.csdn.net/detail/han1202012/8342701 -- S5PV210_iROM_Applicati…
1. Boot Loader的概念 BootLoader就是在操作系统内核运行前之前运行的一段小程序.通过这段小程序,可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件带到一个合适的状态,以便为最终 调用操作系统内核准备好正确的环境. 1.BootLoader 的安装媒介 系统加电或者复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址取指令.比如,基于ARM7TDMI core 的CPU在复位时通常从地址0x00000000取它的第一条指令.而基于CPU构建的嵌入式系统通常都在…
BootLoader的stage2 stage2的代码是C语言来实现的,以便于实现更复杂的功能和取得更好的代码可读性和移植性.它与普通C语言程序不同的是,在编译和链接BootLoader这样的程序时,不能使用glibc库中的任何支持函数.这就带来了一个问题,从哪里跳转到main()函数呢?直接把main()函数的起始地址作为stage2执行映像的入口点.但这样做有2个缺点:1)无法通过main()函数传递函数参数: 2)无法处理main()函数返回的情况.一种更为巧妙的方法是利用trampoli…
BootLoader的stage1 1.基本的硬件初始化 这是BootLoader一开始就执行的操作,其目的是为stage2的执行以及随后的kernel的执行准备好一些基本的硬件环境.它通 常包括以下步骤 ①屏蔽所有中断.为中断提供服务通常是OS设备驱动程序的责任,因此在BootLoader的执行全过程中可以不比响应任何中断.中 断屏蔽可以通过写CPU的中断屏蔽寄存器或者状态寄存器(比如ARM的CPSR寄存器)来完成. ②设置CPU的时钟和频率 ③RAM初始化.包括正确地设置系统的内存控制器的功…
CFE命令 CFE引导过程 系统加电后,CFE从boot.S (src/shared/boot.S)开始执行,完成判断芯片类型.设置时钟.初始化缓存.把自身加载进RAM等任务后,跳转到c_main()(src/shared/load.c) void c_main (unsigned long ra) { …… /* Load binary */ load (); /* 加载CFE,并解压 */ …… ((void (*) (void)) LOADADDR) (); /* 跳转到CFE中执行cfe…
硬盘的0柱面.0磁头.1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR).该记录占用512个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区. 1.MBR的读取 硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它.但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取. 用INT13H的读磁盘扇区功能的调…
mkimage使用详解uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件. mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么root@Glym:/tftpboot# ./mkimageUsage: ./mkimage -l ima…
引用 鱼 的 mkimage使用详解  uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件. mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么 root@Glym:/tftpboot# ./mkimageUsage: ./mkim…
Android的init过程详解(一) Android的init过程(二):初始化语言(init.rc)解析 本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10 本文及后续几篇文章将对Android的初始化(init)过程进行详细地.剥丝抽茧式地分析,并且在其中穿插了大量的知识,希望对读者了解Android的启动过程又所帮助.本章主要介绍了与硬件相关初始化文件名的确定以及属性服务的原理和实现. Android本质上就是一个基于Linux内核的操作系统.与Ubuntu L…
黑苹果引导工具 Clover 配置详解及Clover Configurator使用  2017-03-11 14:01:40 by SemiconductorKING 转自:@三个表哥   简介: 可引导mac os 10.4-10.12,win efi,linux efi 可引导传统操作系统 (WindowsXP,Linux,DOS)的启动扇区 (mbr) EFI bootloader 提供 RuntimeServices 与 OS 运行,不可用于传统的引导器 默认侦测并设置硬件的大部份的属性…