移植U-Boot之BootLoader简介
来源:互联网 发布:微信公众号淘宝客制作 编辑:程序博客网 时间:2024/06/10 01:39
注:以韦东山的书籍和视频,以MINI2440开发板开始学习嵌入式LINUX的知识,边学边记录,先尝试着写博客,慢慢改进和提高!加油!欢迎交流。
一:BootLoader的认识:
BootLoader的作用是初始化硬件设备,准备好软件环境,将操作系统内核复制到内存中,然后启动内核。
为了开发方便,工程师们增强了BootLoader的功能,实际上,在生产的产品中并不需要这些功能,为了提高我们的开发效率而增加功能而已。
BootLoader跟硬件关系紧密,像U-BOOT这种比较凶猛的BootLoader也还是有些CPU架构不支持的,像U-BOOT这种BootLoader如果想拿来用在自己的板子上,也是需要进行一些一直的。
U-BOOT是一个功能强大,支持很多CPU架构,开源的BootLoader。
二:BootLoader启动方式
启动加载模式:BootLoader运行起来后,直接把内核拷贝到RAM中运行。
下载模式:用来下载文件或其他一些开发中所需要的动作。
三:CPU上电后,从哪个地址执行。
MINI2440一上电,如果从NAND FLASH启动,从片内的RAM的0地址开始执行。嵌入式开发板中,需要把存储器ROM或FLASH等映射到这个地址。MINI2440从NAND FLASH启动的话,已经默认是从0地址开始执行的。
四:板子和主机间传输文件时,使用到的协议包括如下:
串口:xmodem/ymodem/zmodem 简单,速度慢
网络:tftp,nfs 要求:主机上要开启tftp、nfs服务
其他:USB
五:嵌入式LINUX系统的4个层次(软件角度):
1.引导加载程序:固件中的boot的代码(可选)和BootLoader(主要目的为加载内核到内存中,然后启动内核。上电后执行的第一个程序)
2.Linux内核:为自己的板子定制的内核以及内核的启动参数(启动参数是为了告诉内核的,包含内存的大小,以及命令行参数等等)。
启动参数:可以是BootLoader传递给内核(BootLoader把启动参数放在某个地址,然后再启动内核时,把地址传给内核,内核启动前获取完参数,解析后,启动内核),
也可以是内核默认的。
3.文件系统:包括根文件系统和建立与Flash内存设备之上的文件系统。
文件系统包含了系统启动所必须的文件,包括:内核启动后运行的第一个程序(init),给用户提供操作LINUX的控制界面的shell程序,应用程序所依赖的库等。 这些必须、基本的文件合称为根文件系统。它们存放在一个分区中,Linux启动后首先挂接在这个分区。其他分区上的所有目录、文件的集合也称为文件系统。
4.用户应用程序:存储在文件系统中。在用户应用程序与内核层之间may be 有一个嵌入式图形用户界面(嵌入式GUI)。eg:Qtopia ,MiniGui,QT.
关于4个程序的表述如下图所示:截图来自(韦东山的嵌入式LINUX应用开发)
- 移植U-Boot之BootLoader简介
- bootloader之U-boot
- bootloader之u-boot
- bootloader---24.u-boot-2010.06-rc1移植之4saveenv
- Bootloader及u-boot简介
- U-Boot 移植简介
- 嵌入式Minis3c2440开发板详解之Bootloader下的U-boot移植,内核移植,文件系统移植
- BootLoader 之U-Boot学习.
- bootloader---23.u-boot-2010.06-rc1移植之3nand flash移植
- Bootloader及u-boot简介/u-boot系统启动流程
- 【Bootloader】U-BOOT全线移植分析系列之四--U-boot如何引导Linux内核启动?
- 【Bootloader】U-BOOT全线移植分析系列之四--U-boot如何引导Linux内核启动?
- 【Bootloader】U-BOOT全线移植分析系列之四--U-boot如何引导Linux内核启动?
- Bootloader 原理篇之二 源码阅读 与 U-Boot 移植
- U-boot移植之自己写一个简单的bootloader(一)
- bootloader---21.u-boot-2010.06-rc1移植之调试的思路
- bootloader---22.u-boot-2010.06-rc1移植之2搭建框架
- bootloader---25.u-boot-2010.06-rc1移植之5usb下载
- Android ListView选项(View)清除背景色
- 三种开辟工作线程的方法
- TestFlight使用
- ewgwg
- BZOJ 3208 花神的秒题计划Ⅰ 记忆化搜索
- 移植U-Boot之BootLoader简介
- MYSQL
- 贪心初步-A - Doing Homework again
- servlet实现MVC
- jquery获取select中的值
- 关于Junit不能运行问题
- 数据结构(C++) Data Structure learning——第一章 线性表(SEC01)
- iOS block的用法
- 【BZOJ】【P1307&P1318】【题解】【max_element】