Uboot
来源:互联网 发布:网络机顶盒会被禁止吗 编辑:程序博客网 时间:2024/04/26 07:07
Uboot极度依赖于硬件。系统上电后执行,初始化硬件设备,准备好软件环境(如c环境),最后调用操作系统内核。
关闭看门狗,关闭外部中断,设置系统的时钟,初始化存储器的内存,将更多的代码的复制到内存,尤其是将内核的代码复制到内存。
同时其还具备串口,网口,网络功能,解压缩功能。最终的产品中并不需要这些功能(这些功能将会由内核提供),只是为了开发方便。
Bootloader的启动方式:
芯片上电后,ARM结构cpu默认从0x0地址开始执行(其他芯片可能不是),在开发板中,需要将Flash(ROM)的地址映射到这个地址。BootLoader正好放在这个地方,
这样一上电,bootloader就会被执行。然后将内核复制到内存(有些是直接在norflash上运行),然后在固定的地方(环境变量区)将参数传递给内核,运行内核,内核启动以后,就会挂接(mount)根文件系统(root filesystem),再启动应用程序。
关于uboot与内核的交互参数(环境参数): 比如ip地址,串口的波特率,要传递给内核的启动命令。
Bootloader 两段:
第一段: 汇编语言,cpu体系架构的初始化
1,硬件设备的初始化: 刚开始可能是使用慢时钟,关闭看门狗中断,关闭所有外部中断,设置好cpu时钟,进入管理模式,初始化好RAM(sdram);
2,为第二阶段准备ram空间,尤其是定好堆栈空间(C运行环境)
3,复制第二阶段的代码到ram空间
4,跳到第二阶段代码的c入口。
第二阶段:
5, 继续初始化好一切其他的需要的硬件设备(C语言下使用函数指针初始化)
6,检测处理好内存映射(确定板上有几块flash,容量多大,全局地址设定在那里,多大ram ,地址在那里,全局地址可以根据板子的情况直接设置)
7,将内核和根文件系统映像从flash读到ram (内核映像如果经过压缩,需要进一步解压缩,Uboot添加了gzip解压函数,有些内核具备自解压功能),文件系统是否需要复制到ram需要看文件系统的类型(ramdisk /jffs2)
8,为内核设置好启动参数
9,调用内核 ( 程序直接跳到内核入口)
Uboot 常用命令:
flinfo
loadb
cp
md
mw
erase // flash 擦除
boot // 启动内核命令
tftp命令
关闭看门狗,关闭外部中断,设置系统的时钟,初始化存储器的内存,将更多的代码的复制到内存,尤其是将内核的代码复制到内存。
同时其还具备串口,网口,网络功能,解压缩功能。最终的产品中并不需要这些功能(这些功能将会由内核提供),只是为了开发方便。
Bootloader的启动方式:
芯片上电后,ARM结构cpu默认从0x0地址开始执行(其他芯片可能不是),在开发板中,需要将Flash(ROM)的地址映射到这个地址。BootLoader正好放在这个地方,
这样一上电,bootloader就会被执行。然后将内核复制到内存(有些是直接在norflash上运行),然后在固定的地方(环境变量区)将参数传递给内核,运行内核,内核启动以后,就会挂接(mount)根文件系统(root filesystem),再启动应用程序。
关于uboot与内核的交互参数(环境参数): 比如ip地址,串口的波特率,要传递给内核的启动命令。
Bootloader 两段:
第一段: 汇编语言,cpu体系架构的初始化
1,硬件设备的初始化: 刚开始可能是使用慢时钟,关闭看门狗中断,关闭所有外部中断,设置好cpu时钟,进入管理模式,初始化好RAM(sdram);
2,为第二阶段准备ram空间,尤其是定好堆栈空间(C运行环境)
3,复制第二阶段的代码到ram空间
4,跳到第二阶段代码的c入口。
第二阶段:
5, 继续初始化好一切其他的需要的硬件设备(C语言下使用函数指针初始化)
6,检测处理好内存映射(确定板上有几块flash,容量多大,全局地址设定在那里,多大ram ,地址在那里,全局地址可以根据板子的情况直接设置)
7,将内核和根文件系统映像从flash读到ram (内核映像如果经过压缩,需要进一步解压缩,Uboot添加了gzip解压函数,有些内核具备自解压功能),文件系统是否需要复制到ram需要看文件系统的类型(ramdisk /jffs2)
8,为内核设置好启动参数
9,调用内核 ( 程序直接跳到内核入口)
Uboot 常用命令:
flinfo
loadb
cp
md
mw
erase // flash 擦除
boot // 启动内核命令
tftp命令
- uboot
- uboot
- UBOOT
- uboot
- uboot
- uboot
- uboot
- UBOOT
- uboot
- uboot
- uboot
- uboot
- uboot
- Uboot
- Uboot
- uboot
- uboot
- uboot
- 去掉txt文本文件中的空行和重复的行
- linux系统移植和Uboot 移植
- c语言头文件跳转
- Ubuntu Linux 下 Ffmpeg 及 Mencoder 安装使用小结
- 编程之美--分层次遍历二叉树
- Uboot
- Core JavaScript Guide 下载地址
- beagelboard-xm上dvsdk移植2:Bug出现的原因和解决。
- 希儿的非主流伤感qq日志:别问我为什么想你
- 数据库深入
- 关于位运算中不太显眼的一个问题
- 【Android】状态栏通知Notification、NotificationManager详解
- 最小生成树(Minimum Spanning Trees)
- 【动态规划】Tom的烦恼