最近开始学习uboot,学习uboot的目的是为了进一步的熟悉系统级的硬件,以及系统的启动流程。虽然现在的工作是做驱动也涉及硬件的,但是总是感觉对系统的这个启动流程以及其中的一些细节很模糊,所以准备亲自动手一步一步的来学习,完善自身的知识。
首先个人认为uboot其实对于产品来说最终的目的就是让系统运作起来以及为调试后续程序搭建环境,那么我们的系统究竟在什么条件下才能更好的运行。现在列出在UBOOT中需要做的工作内容:
1.系统上电怎么启动。(包括连接脚本的编写,时钟的配置,内存控制器,以及一些杂七杂八的看门狗,中断等等外设的配置)
2.代码存储的地方,怎样将代码从外存中读取到内存中(nand/nor flash 的操作)
3.熟悉UBOOT的内存分布以及初始化
4.UBOOT最基本的调试方法我们需要看打印信息,(UART在uboot中是怎么使用的)
5.经常使用的外围总线(重点I2C SPI )
6.输入功能(按键)
7.输出功能(LCD)
8.网络设备,由于在后续的开发中我们可能会通过网口来load程序
9.uboot基本命令的使用方法