PMON-v1.1(lemote版本)目录结构

pmon的目录结构大致如下(由linux工具tree生成)

.
|-- Targets            目标结构相关代码,每个新结构在该目录下有一个子目录
|   `-- Bonito            Bonito是我们的北桥代号,里面是一些关于北桥的代码
|       |-- Bonito
|       |-- compile
|       |   `-- zboot
|       |       |-- images
|       |       |-- pmon
|       |       `-- utils
|       |-- conf
|       |-- dev
|       |-- include
|       `-- pci
|-- conf                    源代码编译所依赖的配置文件所在目录
|-- doc                        说明文档
|-- examples                一看就知道是样例,但我还不知道只面究竟写的是什么
|-- fb                            在frambuffer上做文字和图形显示的代码    
|-- include                    系统头文件
|-- lib
|   |-- libc                C库
|   `-- libz                zip压缩库
|-- pic                    开机启动图片(压缩后的)存放目录
|-- pmon                pmon主体代码
|   |-- arch                    平台相关代码
|   |   `-- mips                处理器相关的代码,比如Flush_Cache等
|   |-- cmds                    pmon shell 命令代码
|   |-- common                    各模块共同依赖的代码
|   |-- custom                        ??这个目录不知道干什么用的
|   |-- dev                        一些基本设备的驱动,比如Flash
|   |-- fs                        文件系统支持代码
|   |-- loaders                        二进制文件加载器代码
|   `-- netio                        网络命令以及tftp的实现
|-- sys                            pmon的较低层的代码
|   |-- arch                        处理器相关代码一些定义
|   |   `-- mips                    
|   |       `-- include
|   |-- dev                        各种设备的驱动程序
|   |   |-- ata
|   |   |-- fd
|   |   |-- ic
|   |   |-- microcode
|   |   |   `-- siop
|   |   |-- mii
|   |   |-- pci
|   |   `-- usb
|   |-- kern                        主要是一些系统调用的实现,比如malloc,time, signal, socket
|   |-- linux
|   |-- net                        实现网络协议
|   |-- netinet                        实现网络协议
|   |-- scsi                            Scsi协议的实现
|   |-- sys                        这个大目录的头文件存放区
|   `-- vm                        ??虚拟内存相关实现
|-- tools                        一些工具
|   |-- bmp_logo                    把bmp图转换成C数据的工具
|   |-- bootelf
|   |-- mk
|   |-- pmoncfg                        源代码配置工具
|   |-- scripts
|   `-- srecord
|-- x86emu                        x86显卡模拟器,主要是运行显卡的BIOS,初始化显卡
|   `-- int10
|       `-- x86emu
|           |-- include
|           |   `-- x86emu
|           `-- src
|               `-- x86emu
|                   `-- x86emu
`-- zloader                        zip格式加载启动代码

Targets目录的组成

每个结构一个目录,我们拿Bonito来为例子,主要有下列文件:

  • start.S 位于Targets/Bonito/Bonito 目录下,是C环境建立之前的汇编代码,使整个BIOS运行的起点。
  • tgt_machdep.c位于Targets/Bonito/Bonito 目录下,一些板子相关的函数。
  • pci_machdep.c进行Targets/Bonito/pci 空间分配的一些函数
  • Targets/Bonito/dev 目录下一些板子特殊的设备的驱动。
  • Targets/Bonito/conf 目录下是一些编译环境建立需要的一些文件

参考说明
本文的撰写过程中,参考了诸多中科龙梦科技有限公司的内部资料(都是可以公开的),另外还有一些未署名的文档,无法一一列举,在此表示感谢。龙芯事业一定会在前仆后继的勇士所铺设的道路上日益壮大!

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License