Pmon学习笔记:MIPS启动代码解析与功能概述

4星 · 超过85%的资源 需积分: 46 19 下载量 19 浏览量 更新于2024-07-26 收藏 1.17MB PDF 举报
Pmon学习笔记是关于MIPS架构处理器在上电启动时执行的基础代码,它在CPU启动过程中扮演着类似x86系统BIOS的角色,同时也具备引导加载器的功能。Pmon起源于早期的BSD内核,但随着时间的发展,已经经历了显著的修改和优化。 该笔记主要关注以下几个关键部分: 1. **start.S**:这是Pmon的核心启动脚本,负责初始化CPU和内存。它首先执行的是`superio_init`,这部分可能包含了对系统超级I/O控制器的初始化。接下来,它会处理内存的配置,包括`start.S之内存`和`start.S之cache`,确保正确的数据存储和访问路径。 2. **从汇编到C**:这部分介绍的是如何将底层的汇编语言代码转换为C语言实现,这对于理解Pmon的高级模块构建至关重要。 3. **initmips`、`dbginit`、`_pci_businit`、`cs5536_pci_fixup`**:这些函数涉及到设备初始化,包括PCI bus初始化和针对特定硬件(如CS5536)的修复,以确保系统的稳定性和兼容性。 4. **Init_net**:网络初始化部分,涉及`tgt_devconfig`函数,该函数用于配置和检测系统中的网络设备,如显卡和配置初始化。 5. **USB**:Pmon处理USB设备的初始化,确保USB功能能够正常工作。 6. **环境变量和Flash**:这部分讨论了环境变量的设置以及如何与Flash存储器交互,这对于系统的持久化配置和数据存储很重要。 7. **GPIO**:通用输入/输出管理,用于控制外部设备的信号和状态。 8. **图片显示和设备驱动**:涉及到显示功能的初始化,如通过GPIO控制显示设备或处理图片数据。 9. **开放函数**(open)和**Ioctl**:阐述了操作系统级别的接口,如文件操作和设备控制命令。 10. **键盘处理**:包括键盘事件的检测和响应,这对用户交互至关重要。 11. **Kernel load**:加载内核的过程,确保正确加载并切换到核心操作系统。 12. **Termio**:可能是终端初始化,负责处理字符输出和输入。 13. **printf和write**:标准的输出函数,用于向终端或其他设备输出信息。 Pmon学习笔记深入剖析了MIPS架构的启动过程,从硬件配置到系统服务的初始化,涵盖了核心代码执行、设备驱动和用户交互等多个层面,是理解MIPS平台低级编程和系统启动流程的重要参考资源。