嵌入式系统:
一上电->uboot->找到内核、启动内核->挂机文件系统->运行应用程序
PC:
一上电->BIOS-》引导操作系统linux->C/D/E盘
uboot的目的----启动内核
问1)内核一开始放在哪里?是怎么存放进去的?
一开始是存放在硬盘flash上去的,是通过网络(支持网卡)来的?还是通过USB?
uboot的功能:
1、从硬盘flash上读取内核
2、把内核加载(写入)到SDRAM上
3、跳转到内核执行
uboot 可以看作是较为复杂的单片机程序
start.S
板机开发-----------主要执行硬件初始化,把内核从flash上加载到SDRAM,由于内核代码一般较大,因此基本需要使用代码重定位,然后再跳到内核执行 由於要使用C語言,所以必須設置栈
1)硬件初始化
1.1、初始化flash(Nand flash)
1.2、关看门狗
3.3、初始化SDRAM()
4.4、设置时钟,系统上电时钟为10M。
设置栈 ---->也就是让栈指针指向某一块内存,然后调用c函数,读出内核,启动内核
2)把NAND flash上的内核程序加载到SDRAM
3)设置要传给内核的参数
4)跳转执行内核
为了开发方便
1)烧写flash
2)根据命令来烧写----增加串口 一般会增加串口调试
uboot打補丁、編譯
1)先解壓壓縮包
2)進入uboot 目錄 ,patch 打補丁 -p1 忽略斜杠前的第一個
3)配置
make
4)編譯