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 是建立编译环境需要的一些 文件。

迅为2K1000龙芯开发板PMON 开发相关推荐

  1. 迅为龙芯2K1000开发板PMON开发之配置nand flash之配置pmon

    pmon 支持俩种接口类型的 nand flash,一个是 nand 控制器接口,一个是 spi 接口.龙芯核心板上板载了一个 nand 控制器接口的 flash. 1 配置 pmon 首先我们需要在 ...

  2. 迅为2K1000龙芯开发板pmon 下操作 GPIO

    我们可以来学习如何在 pmon 下操作 gpio 了, 为什么要把这个需求单独拿出来讲呢? 因为有的时候我们做了一款产品, 在特定的环境下需要让 GPIO 在上电时就是就保证是一个确定的电平, 如高电 ...

  3. 迅为LS2k1000龙芯国产双核开发板烧写系统到 U 盘

    龙芯的系统可以存放在 Nand Flash,SD 卡,U 盘,固态或者是网络加载,迅为的龙芯开发板核心板默认没有焊接 Nand Flash,是将文件系统存储在底板的固态硬盘上,这一章节我们将系统烧写到 ...

  4. 【华为云技术分享】【昇腾】【玩转Atlas200DK系列】基于Pycharm专业版构建开发板python开发运行环境

    摘要:基于Pycharm专业版构建开发板python开发运行环境(自动同步爽歪歪) 既然Matrix提供了python接口,那咱们就要将方便的用起来,接下来分享一个利用pycharm直接搞定开发板开发 ...

  5. 6467t 1080php,DM6467T开发板领航——开发环境的文件配置

    DM6467T开发板领航--开发环境的文件配置 继上一篇DM6467T开发领航--开发环境安装 按照我们上一篇DM6467T开发领航--开发环境安装的安装方法,最主要要修改的文件就是/home/dm6 ...

  6. DM6467T开发板领航——开发环境

    DM6467T开发板领航--开发环境 DM6467T是TI推出的一款ARM+DSP双核处理器.一般来说,ARM用来做应用程序,如:读写flash,USB,网络程序,GPIO等应用.DSP用来做自己的算 ...

  7. 以虎贲T710为核心的高性能AI开发板-BU99开发板

    文章目录 虎贲T710 BU99开发板 BU99开发板简介 BU99开发板主要优势 BU99开发板参数介绍 BU99开发板配件 虎贲T710 虎贲T710采用8核CPU架构,由4颗2.0GHz的Arm ...

  8. 第一视角体验搭载全志T507-H的开发板MYD-YT507H开发板

    如今车规级芯片市场潜力巨大,需求旺盛,芯片都在逐渐走向国产化.本文要介绍的主角是MYD-YT507H开发板,该开发板是米尔科技结合全志国产工业级平台CPU--全志T507-H芯片研制的CPU模组,全志 ...

  9. 在基于乐鑫芯片的用户定制开发板上开发 UI

    在上一篇文章中,我们介绍了 SquareLine Studio 可视化 UI 开发工具,以及如何使用它来开发 UI.目前,它只适用于乐鑫官方推出自研的开发板.如果您想使用 SquareLine Stu ...

最新文章

  1. python爬虫招聘-Python爬虫实战之(二)| 寻找你的招聘信息
  2. golang编译工具LiteIDE的调试使用方法(F5)
  3. unity太空射击源码_引擎入门 | 创建双杆射击游戏(入门 2)
  4. 深入研读Cache存储的计算
  5. Hive-3.1.3安装配置运行
  6. python音频处理库_python音频处理
  7. 好消息:GAX/GAT February 2008 Final Release
  8. win7如何显示文件扩展名?
  9. 桌面计算机图标带虚线框,win10系统桌面图标有虚线框的操作方法
  10. 人工智能全局概览:通用智能的当前困境和未来可能
  11. 有两台电脑,一台电脑有线上网,另一台不能上网,如何通过飞秋或者其他软件,使得两台电脑间能互传文件
  12. 十三个提高远程办公效率的工具
  13. java实现windows下amr转换为mp3(可实现微信语音和qq语音转换)
  14. Linux安装postman工具
  15. 猫盘群晖DSM7.0三合一修复脚本
  16. 十年前他在马王堆送快递,如今当上航空主管,拯救客户亿元大单
  17. Promise使用详解2(ES6中的Promise)
  18. 【Mac 教程系列第 3 篇】如何用 Mac 预览图工具修改图片的分辨率
  19. mysql多个on_Mysql join on 多条件匹配
  20. 荣耀发布开发者服务平台,智慧生态合作提速

热门文章

  1. OpenCPN安装与海图下载探索
  2. 基于web的医疗设备销售业务系统的设计与实现
  3. 软件测试题库怎么样 这个刷题小程序很适合临时抱佛脚
  4. 161206 ANFIS 自适应模糊神经网络
  5. 自适应lasso_Logistic模型自适应组Lasso算法
  6. Oracle 特殊符号‘‘的处理
  7. SpringBoot构建电商基础秒杀项目——用户模型管理
  8. 2023北京火力发电技术及设备展览会
  9. 三边封制袋机程序 采用松下PLC和威纶通触摸屏 前后双伺服送料
  10. ubuntu更换阿里云镜像源操作步骤