
BootLoader
Tommy_wxie
Tommy_wxie
展开
-
U-boot分析与移植(1)----bootloader分析
一、Boot Loader 概念就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,他就是所谓的引导加载程序(Boot Loader)。嵌入式软件在Flash存储器中的分布图 二、为什么需要BootLoader?BootLoader的终原创 2012-03-27 19:27:31 · 1835 阅读 · 0 评论 -
Uboot 分析(5)
下面结合移植uboot到 s3c2440来分析如何改写相关的uboot源码(上节已经给出uboot源码,可以参考) 根据cpu/arm920t/u-boot.lds中指定的连接方式: 看一下uboot.lds文件,在board/smdk2410目录下面,uboot.lds是告诉编译器这些段改怎么划分,GUN编译过的段,最基本的三个段是RO,RW,ZI,RO表示只读转载 2013-04-24 22:54:21 · 1160 阅读 · 0 评论 -
Uboot 分析(4)
还记得上节中,u-boot.lds文件连接的内容吗??代码段 数据段 命令段 bss段下面来看第一部分:代码段,对应于uboot的第一阶段 start.S文件附上代码: ?1234567891011121314转载 2013-04-24 22:58:28 · 1091 阅读 · 0 评论 -
Uboot 分析(3)
首先来回顾一下上节,主要介绍了uboot的第一个文件Makefile,注意点有哪两个呢?第一:交叉编译第二:配置下面主要分析第二个文件:u-boot.lds先看源码:?123456789101112131415转载 2013-04-24 22:51:02 · 1068 阅读 · 0 评论 -
Uboot 分析(2)
声明:本人第一次详细写些关于linux源码方面的分析博文,如有错误之处,请大家更正。此外,这里本人主要结合如何移植uboot到tq2440来详细分析uboot源码,在分析中一步一步实现移植uboot到s3c2440中(打破以往博文只注重分析不实践和只教你移植,而不讲解理论)。主要参考博文:http://blog.youkuaiyun.com/hare_lee/article/details/69163转载 2013-04-24 22:51:02 · 1145 阅读 · 0 评论 -
Uboot 分析(1)
一、bootloader的概念 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,他就是所谓的引导加载程序(Boot Loader)二、bootloader的作用BootLoader的终极任务是引导操作系统,所谓引导操作系统,就是启动内核,在启转载 2013-04-24 22:49:09 · 1323 阅读 · 0 评论 -
怎么把kernel-2.6.13用uboot引导?
要解决的问题:1. kernel虚拟地址怎么改?2. bootloader默认把他下载到了那里?3. 参数tag的地址怎么改 ,什么时候使用这个地址的?4. 自解压的地址怎么改?5. 从启动到linux开始运行,整个ram的布局的变换?6. 怎么把kernel-2.6.13用uboot引导?1. 虚拟地址怎么改?(运行时地址,自解压后kernel地址)生成vml转载 2013-04-05 22:43:35 · 2149 阅读 · 0 评论 -
Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7)
研究内核源码和内核运行原理的时候,很总要的一点是要了解内核的初始情况,也就是要了解内核启动过程。我在研究内核的内存管理的时候,想知道内核启动后的页表的放置,页表的初始化等信息,这促使我这次仔细地研究内核的启动代码。 CPU在bootloader的帮助下将内核载入到了内存中,并开始执行。当然,bootloader必须为zImage做好必要的准备: 1. CPU转载 2013-04-06 09:49:54 · 3760 阅读 · 0 评论 -
bootloader 内核启动参数
Bootloader与内核的交互 Bootloader与内核的交互是单向的,Bootloader将各类参数传给内核。由于它们不能同时运行,传递办法只有一个:Bootloader将参数放在某个约定的地方之后,再启动内核,内核启动后从这个地方获得参数。除了约定好参数存放的地址外,还要规定参数的结构。Linux 2.4.x 以后的内核都期望以标记列表(taggedlist)的形式来传递启转载 2013-04-05 11:16:34 · 1634 阅读 · 0 评论 -
Boot Loader启动过程分析
一、 Boot Loader的概念和功能 1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方转载 2013-04-05 11:03:47 · 3238 阅读 · 0 评论 -
U-boot分析与移植(5)----U-boot移植
网上很多很好很详细的手册可以参考如:mini2440之U-boot移植详细手册-20100419.pdf移植u-boot-1.1.6到TQ2440文档.pdf移植u-boot-1.3.4到GT2440(第二版)-guolele出品.pdfARM79出品-u-boot移植手册.pdf 移植一个功能简单的U-boot并不难我的开发板平台:board:gec2440; cpu原创 2012-03-27 19:34:37 · 1248 阅读 · 0 评论 -
U-boot分析与移植(3)----U-boot stage2分析 .
.一来到void start_armboot (void)函数,马上出现两个很重要的数据结构gd_t和bd_t1、gd_t : global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。 1. typedef struct global_data { 2.原创 2012-03-27 19:28:51 · 1609 阅读 · 0 评论 -
U-boot分析与移植(4)----U-boot 添加命令
我们初步了解U-Boot执行流程后,知道U-Boot的每一个命令都是通过U_BOOT_CMD宏定义的。这个宏在include/command.h头文件中定义,每一个命令定义一个cmd_tbl_t结构体。# /*命令宏U_BOOT_CMD*/ # #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ # cmd_tbl_t __原创 2012-03-27 19:34:09 · 1215 阅读 · 0 评论 -
U-boot分析与移植(2)----U-boot stage1分析
我们要生成u-boot.bin文件,它首先依赖于很多.o文件和.lds链接脚本文件我们只要找到对应的.lds链接脚本文件就可以分析u-boot的启动流程。1、打开u-boot-1.1.6\u-boot-1.1.6\board\smdk2410\打开链接脚本boot.lds 看看:OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm",原创 2012-03-27 19:28:04 · 1744 阅读 · 0 评论 -
android 最新bootloader LK加载kernel的问题
MMU 执行boot命令的时候,会执行以下跳入kernel的函数,这和其他bootloader的做法是一样的,唯一的不同是LK使用了MMU和Cache来支持多线程,所以在跳到内核之前要先disable mmu和cache,代码如下uboot使用了MMU吗??体系结构有关,可以打开也可以不打开。一般uboot代码很少,为了简化设计,都是不使用mmu,如原创 2013-04-24 22:02:41 · 2543 阅读 · 1 评论