迅为2K1000龙芯开发板PMON 开发

 pmon 简介

PMON 拥有非常悠久的历史,它来自于 FreeBSD,支持 i386,PowerPc,MIPS 三种架构,既相当于 X86 电脑上的 BIOS,又具备 BootLoader 的功能,但是由于 uboot 等轻量的 BootLoader 的流行,PMON 的开发社 区逐渐沉寂,现在主要是龙芯中科在给 PMON 移植更多的设备和维护,所以 PMON 是龙芯设备主要使用的 BootLoader,作者认为使用 PMON 作为 BootLoader 同时也是为了防止别人卡脖子,龙芯上大部分的 PMON 都是在 PMON2000 的基础上更改的版本。

PMON 的二进制代码存放在核心板上的一块 512KB 的 flash 芯片上,选择这个容量是因为够用了,龙芯 2k1000 允许的最大启动空间容量是 1MB。这块 flash 芯片的地址是确定的, 虚拟地址 0xbfc00000, 物 理地址 0x1fc00000。cpu 上电后,会在第一时刻从虚拟地址为 0xbfc00000 的读取指令执行。

1 PMON 目录结构

要了解一个陌生的 BSP,我们首先就要从他的目录结构入手,我们得先知道,里面都包含什么,里面 包含的文件夹都是做什么的。我们进到 PMON 源码里面,可以看到非常多的文件以及文件夹,如果您之前对 uboot 非常熟悉,可以发现,PMON 和 uboot 在目录结构上差别还是非常大的。

 

接下来我就带着大家一起来看下 PMON 的主要目录结构。

── conf

编译源码所依赖的配置文件目录

── doc

说明文档

── examples 例子

── fb 用来在 frambuffer 显示的代码

── include 系统的头文件

── lib 库文件,如 C 库,zip 压缩库

──pmon pmon 的主体代码,需重点关注

│ ├

── arch 平台相关代码

│ │ ├

── mips 处理器相关代码,因为 2K1000 是 MIPS,所以只需要关注这个文件夹即可。

│ ├

── cmds pmon 的 shell 命令

│ ├

── common 有共同依赖的代码

│ ├

── custom 定制的代码

│ ├

── dev 驱动代码

│ ├

── fs 文件系统支持的代码,如 yaffs2, ubifs,mtd

│ ├

──loaders 加载二进制文件代码

│ ├

──netio 网络相关 如 tftp

──sys 处理器更底层的代码

──Targets 目标结构相关代码,需要重点关注里面的 LS2K

│ ├

──LS2K

──tools 工具 如编译 pmon 用到的 pmoncfg 工具

──x86emu X86 显卡模拟器

── zloader zip 格式加载启动代码

其中,位于 Targets/LS2K/ls2k/下的 start.S 是 C 语言环境建立之前的汇编代码,是整个 BIOS 的运行 的起点。Targets/LS2K/dev 存放的为板子一些特殊的驱动。Targets/LS2K/conf 是建立编译环境需要的一些 文件。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值