这是我的嵌入式笔记第三篇,原文写于 2015 年。
在真实世界中,一个操作系统是如何被加载的?对于单片机、SoC 以及我们常见的计算机,由于硬件设备和软件系统的不同,启动流程肯定会有差异。不过对于大型操作系统,启动流程有不少共通之处,本文将简单解析一个消费类电子产品常用的系统(基于 TI 的 AM335x 处理器)是如何被加载启动的。
这篇笔记其实是在组队项目时,由一位队友 Adrian Huang 所写。相比我们这些 “愣头青”,Adrian 已经有八九年的 Linux 底层工作经验,先后在 HP、联想、MTK 工作过,是十足的大佬。
正文开始
圖一為 AM335x 開機流程,其包含 ROM Code、MLO、U-Boot 與 OS Image,底下將說明 ROM Code、MLO 與 U-Boot。
![da526116a8e74c4128c5abf6048e8892.png](https://i-blog.csdnimg.cn/blog_migrate/a503297eebcf5c7a33aeca1af61f16b2.jpeg)
Figure 1: High-level Overview to AM335x Boot SequenceROM Code
ROM Code 主要有幾項任務:
- Stack Setup
- Watchdog timer 1 configuration (set to three minutes)
- System clock configuration
- Search bootable devices (must be the FAT 12/