本文档介绍了龙芯PMON,一款专为龙芯处理器设计的基础引导程序。文档详细阐述了PMON的功能、特点以及使用方法,帮助用户更好地理解和应用该工具。
龙芯 PMON 是一种基于 MIPS 体系结构的监控程序,用于管理和控制计算机系统的运行。PMON 提供了一个基本的系统监控环境,允许用户编写自己的监控程序来实现对系统的控制和管理。
MIPS 架构概述:
-------------------
MIPS 是最早的、最成功的 RISC(精简指令集计算机)处理器之一。每条 MIPS 指令都是 32 位长,在使用64 位的 CPU 上也同样适用。MIPS架构提供了32个通用寄存器(GPR),这些寄存器的大致用途如下:
* $0-$1:常量0和函数调用返回值
* $2-$3:函数调用参数
* $4-$7:暂存或任意使用的寄存器
* $8-$15:保存的寄存器
* $16-$23:暂时使用或随意分配给程序的寄存器
* $24-$25:临时或者随便用的寄存器
* $28:全局指针
* $29:堆栈指针
* $30:帧指针
* $31:返回地址
MIPS 存储体系结构:
---------------------
在 MIPS 中,存储空间被划分为四个部分:kuseg, kseg0, kseg1 和kseg2。
*Kuseg: 从 0x0000 0000 到 0x7FFF FFFF(低端的2GB),这些地址是用户模式下可用的,需要通过 MMU 的转换。
*Kseg0:范围为 从 8GB到1342MB (512MB),地址需将最高位清零后映射成物理内存中的连续512M大小低字段位置
*Kseg1: 范围是 从1.6GB 到2.1GB(也是512 MB),这些地址通过清除其最高的3个比特来转换为相应的物理地址,然后像 kseg0 那样映射到连续的512MB低字段中。
*Kseg2: 范围是从 3GB 至4GB (共1GB),仅在核心态下使用,并且要通过 MMU 的翻译。
MIPS 中断异常向量表:
-------------------------
中断和异常事件处理是 MIPS 架构中的重要概念。PMON 需要有正确的机制来应对这些情况,以确保系统的稳定运行。
pmon 概述
--------------
pmon 是一个基于 MIPS 体系结构的监控程序,用于管理和控制计算机系统的运行。它提供了一个基本的系统监控环境,并允许用户编写自己的监控程序以实现对系统的控制和管理。主要功能包括:
* 系统初始化
* 任务管理
* 存储管理
* 中断处理
* 异常处理
pmon 的代码结构:
---------------------
pmon 的核心部分由以下几块组成:
* 主程序
* 任务管理模块
* 存储管理模块
* 中断处理模块
* 异常处理模块
pmon 编译和启动流程:
-----------------------------
编译 pmon 源码,生成可执行文件,并将其加载到目标机器上后开始运行。具体步骤包括:
1. 编译源代码
2. 产生可执行程序
3. 将该文件传输至目标设备
4. 启动pmon
pmon 修改点:
-----------------
可以修改 pmon 的以下模块来实现特定需求或功能改进:
* 任务管理模块
* 存储管理模块
* 中断处理模块
* 异常处理模块