吴亚杰, 刘卫东 ,, 曾小光
(1.中国海洋大学 信息科学与工程学院,山东 青岛 266100;2.海信电器股份有限公司 山东 青岛 200071)
龙芯是中国科学院计算所研制的通用CPU,已获得MIPS科技公司的MIPS指令集的专利授权。龙芯1号的CPU主频是266 MHz,最早在2002年开始产业化应用。龙芯2号主频最高为1 GHz。龙芯3号于2010年推出成品,其设计的目标则在多核心的设计[1]。随着龙芯的发展,龙芯CPU已不仅仅局限于个人桌面计算机领域,在嵌入式开发领域,龙芯CPU也同样发展迅速,从2000年以来,越来越多的产品开始采用龙芯CPU。在计算机的体系结构中,无论是个人计算机、服务器还是嵌入式领域,基本输入输出系统BIOS是必不可少的,因为BIOS负责计算机系统的开机自检、板级硬件初始化、加载操作系统内核以及基本I/O功能。
PMON是一款ROM-Monitor型的开源软件,最初是为了LSI Logic MIPS R3000评估板的功能需求而开发的。经过多年发展,目前已经能够支持MIPS、ARM、PPC和X86等CPU体系[2]。PMON具有强大而丰富的功能,除基本的I/O功能外,还包括CPU初始化、板级外设初始化与检测、操作系统引导和调试等功能,并且 PMON支持从Flash、IDE、TFTP以及USB来启动操作系统。
PMON源代码的目录结构如图1所示,对于图示中关键模块说明如下:

图1 PMON目录结构Fig.1 PMON composition
1)Targets目录 Targets目录下存放的是与板级相关的代码,该目录下的每个子目录都对应着某一个具体的开发板,当要将PMON移植到一个新的开发板时,就需要在该目录新建一个子目录,并向新建的子目录中添加开发板相关的代码,其中主要有以下几个重要文件:start.S文件位于Targets/mips_board/mips_board目录下,是整个PMON运行的起点;……