通过pmon启动内核相关命令

网络加载:

load tftp://server‐ip/vmlinux

initrd tftp://server‐ip/initrd.gz

g console=tty console=ttyS0,115200

u 盘启动:

load (usb0,0)/vmlinux

initrd (usb0,0)/initrd.gz

g console=tty console=ttyS0,115200

命令解释:

命令: load

格式: load <elf‐file>

解释: load  命令是  PMON  中一个很重要命令。作用是加载一个  elf  文件到内存中(这里只是存放到内存中,而没有烧写到flash中),加载过程是一个自动根据elf文件的信息处理elf文件重定向的等等操作的总体过程,所以这里不需要指定加载的内存地址,load命令会自动完成。

如:load tftp://server‐ip/vmlinux

如上命令,是从网络  tftp  服务器中加载内核到内存中。

如:load /dev/mtd0b

如上命令,  是从  nandflash  的第一个分区开始处中加载一个elf文件到内存中,这里一般存放着内核,这也是加载内核的另一种方法。

注:这里的  vmlinux  是一个  elf  文件,如果指定加载的文件不是  elf  文件,将提示错误。

命令: initrd

格式: initrd <img file>

解释: 加载initrd image

命令: g

格式: g [‐s][‐b bpaddr][‐e addr][‐‐args]

解释: g  命令是  PMON  中一个很重要的命令,直接从指定内存地址处开始执行程序

如:g  –e addr

如上命令,直接从内存地址  addr  处开始执行程序,正常操作前提是在  addr  开始处的内存中已经存放了一个可执行的程序,addr  是这个程序的入口地址,如我们知道内存地址0x80010000  是  pmon  代码段存放开始地址,  执行  g  –e 0x80010000  将会从新执行pmon  代码,  相当于了重启  PMON (这时不会从  flash  中拷贝执行  pmon)

load tftp://server‐ip/vmlinux

g console=ttyS0,115200 rdinit=/sbin/init

如上命令和 load 命令配合使用,在 load 完成后,使用 g 命令自动从加载后的内核入口地址开始执行内核,这是 g 后面在参数  “console=ttyS0,115200 rdinit=/sbin/init”是内核启动的参数。

跟启动相关的环境变量

跟启动相关的环境变量有 al1, rd, append,分别对应内核,initrd 路径及启动参数,例如

可以设置为:

set al1 /dev/mtd0

set rd /dev/fs/yaffs2@mtd1/initrd.gz

set append console=tty console=ttyS0,115200

命令解释:

命令: set

格式: set [name] [value]

解释:  查看  pmon  中的环境变量,设置环境变量  name  为  value

如: set (查看显示  pmon 中所有的环境变量) ;

set wk kkk (添加或者修改环境  wk  的值为  kkk)

pmon 烧写内核及文件系统到 nand 方法

烧写之前需要擦除,命令如下:

mtd_erase /dev/mtd0r  //0 代表分区,r 后缀代表擦除不跳过坏快

mtd_erase /dev/mtd1r

devcp tftp://server‐ip/vmlinux /dev/mtd0

devcp tftp://server‐ip/roofs‐yaffs2.img /dev/mtd1y

set al1 /dev/mtd0

set append console=ttyS0,115200 rdinit=/sbin/init root=/dev/mtdblock1 rw

rootfs=yaffs2

命令解释:

命令: devcp

格式: devcp <src‐device> <desc‐device>

解释: devcp  命令应该是  PMON  中比较重要的命令。

其实现是:打开  src‐device  和  desc‐device 两个设备,从  src‐device  读取一定数量的字节数据,写到 desc‐device  设备中去,完成后关闭这两个设备。

如:devcp tftp://server‐ip/vmlinux /dev/mtd0

如上命令,从  tftp  服务器中接收读取内核  vmlinux,写到  nandflash  的第一个分区中,这是常用的烧写内核到 flash 中一个常用命令

如:devcp tftp://server‐ip/roofs‐yaffs2.img /dev/mtd1y

如上命令,从  tftp  服务器中接收读取根文件系统的  yaffs2  镜像文件  rootfs‐yaffs2.img

烧写到  nandflash  的第二个分区中。这是常用的烧写 yaffs2 文件系统到 nandflash 中的一个常用命令。

命令: mtdparts

格式: mtdparts

解释: 显示 nandflash 的现在分区信息。

命令: mtd_erase

格式: mtd_erase <mtd‐device>

解释:  擦除  nandflash  的一个分区

(擦除  nandflash  的第一个分区,跳过已经是坏块的地方,不会尝试擦除已经是坏块的地方);

mtd_erase /dev/mtd0r

(擦除  nandflash  的第一个分区,这时会尝试擦除所有的块,即使是坏块也会尝试执行擦

除操作)。

pmon 下查看及修改 dtb

Pmon 命令行支持,查看、删除、重新烧写 dtb。

Pmon 下查看 dtb 命令:

Print_dtb /  打印出 dtb 所有内容

Print_dtb /soc/dc@0x400c0000  打印出 dc 的所有内容

Pmon  下删除 dtb

rm_dtb_node /    删除整个 dtb

rm_dtb_node /soc/hda@0x400d00000  删除 had 内容

pmon 下重新烧写 dtb

dtb 会把内存大小信息传递给内核,如果这部分内容传递错误会造成不可预知错误。如果重新烧写内部部分内容,需要通过 print_dtb 命令把内存部分内容读出,更新到新的 dts 文件中(3号处理器不传递内存信息)。

在 pmon 编译目录下执行  make dtb 会生成 Bonito3a3000_7a.dtb 文件。此文件可单独烧写。

烧写命令和 烧写pmon一致

其他命令简介

命令: d1

格式: d1 <addr> <num>

解释: display  简写

按无符号字符型(unsigned char)访问显示  num  个从地址  addr  开始的内容值。

如:d1 0x85000000 0x10

显示从内存地址  0x85000000  地址处的  0x10  个字节(8  位),0x85000000‐0x8500000f

命令: d2

格式: d2 <addr> <num>

解释: display  简写

按  (unsigned short)  访问显示  num  个从地址  addr  开始的内容值。

如: d2 0x85000000 0x10

显示从内存地址  0x85000000  地址处的  0x10  个  unsigned short  类型(16  位)的数值,0x85000000‐0x8500001e

命令: d4

格式: d4 <addr> <num>

解释: display  简写

按(unsigned long)访问显示  num  个从地址  addr  开始的内容值。

如: d4 0x85000000 0x10

显示从内存地址  0x85000000  地址处的  0x10  个  unsigned long  类型(32  位)的数值,0x85000000‐0x8500003c

命令:d8

格式: d8 <addr> <num>

解释: display  简写

按  (unsigned long long)  访问显示  num  个从地址  addr  开始的内容值。

如: d8 0x85000000 0x10

显示从内存地址  0x85000000  地址处的  0x10  个  unsigned longlong(64  位)类型的数值, 0x85000000‐0x85000078

命令: m1

格式: m1 <addr> <value>

解释: modify  简写

按无符号字符型(unsigned char)访问修改地址  addr  的内容值。

如: m1 0x85000000 0x10

修改内存地址  0x85000000  地址处的一个  unsigned char  型值相当于:*(unsigned char*)addr = value;

命令: m2

格式: m2 <addr> <value>

解释: modify  简写

按无符号字符型(unsigned short)访问修改地址  addr  的内容值。

如: m2 0x85000000 0x10

修改内存地址  0x85000000  地址处的一个  unsigned short  型值相当于:*(unsigned short*)addr = value;

命令: m4

格式: m4 <addr> <value>

解释: modify  简写

按无符号字符型(unsigned long)访问修改地址  addr  的内容值。

如: m4 0x85000000 0x10

修改内存地址  0x85000000  地址处的一个  unsigned long  型值相当于:*(unsigned long*)addr = value;

命令: m8

格式: m8 <addr> <value>

解释: modify  简写

按无符号字符型(unsigned long long)访问修改地址  addr  的内容值。

如: m8 0x85000000 0x10

修改内存地址  0x85000000  地址处的一个  unsigned long  型值相当于:*(unsigned long long*)addr = value;

命令: devls

格式: devls

解释:  查看  pmon  的部分设备,  这里显示出来的设备不是全部的设备。

一般会有网卡, USB,CF  卡,sd  卡,硬盘等等,主要用查看设备的名字,以供其他操作的使用。

命令: ifaddr

格式: ifaddr <interface> <ipaddr>

解释:  设置网卡的  IP  地址,如:ifaddr syn0 192.168.0.1 (syn0  是网卡的名字,可以使用  devls  命令查看获得,这里不用设置子网掩码,pmon  会自动设置子网掩码为255.255.255.0)

命令:ping

格式: ping <ipaddr>

解释: 简单检测,如:ifconfig syn0 (syn0  是网卡的名字,可以使用  devls  命令查看获得)

命令: unset

格式: unset <name>

解释: 去掉名字为  name  的环境变量。关于环境变量的讲解参看附录  PMON  环境变量

LoongSon——PMON常用命令整理相关推荐

  1. python常用命令汇总-python数据分析之pandas常用命令整理

    原标题:python数据分析之pandas常用命令整理 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型 ,提供了高效地 ...

  2. docker常用命令_docker常用命令整理

    docker常用命令整理 代码狂魔 • 5 天前 • 技术积累 • 14 • 0 前面已经把docker是什么和 docker怎么安装已经写了,现在我将常用命令做一个整理,方便日后查阅 常用命令 do ...

  3. android 常用命令,Android开发常用命令整理

    一些命令,不常用就忘记了,特整理在这里,忘了就查查.. ·        alias 用于定义和查询别名,但不保存.修改home目录下.bashrc保存定义别名格式,不加参数即查询别名:alias c ...

  4. CMake常用命令整理

    CMake常用命令整理 转自:https://zhuanlan.zhihu.com/p/315768216 CMake 是什么我就不用再多说什么了,相信大家都有接触才会看一篇文章.对于不太熟悉的开发人 ...

  5. docker 容器 exited_docker常用命令整理

    docker常用命令整理 代码狂魔 • 5 天前 • 技术积累 • 14 • 0 前面已经把docker是什么和 docker怎么安装已经写了,现在我将常用命令做一个整理,方便日后查阅 常用命令 do ...

  6. kubernetes常用命令整理

    一.维护类: master节点: [root@k8s-master01 -]# for I in etcd kube-apiserver kube-controller-manager kube-sc ...

  7. Linux 常用命令整理(Centos7) (时区/正则/sed/htop/screen/ln/awk/……)

    目录 Linux 常用命令整理(Centos7) (附加正则.时区.git等) 一.系统查询常用命令: 1.文件中空格制表符替换sed 2.查看宿主机的用户名密码 3.last .w.lastb 查看 ...

  8. 常用命令整理一(git、adb、vim、cmd、sh)

    常用命令整理一(git.adb.vim.cmd.sh) 1.git篇 (1)安装git (2)配置 (3)使用 (4)基础概念 (5)gerrit相关 (6)git 指令遇到的一些问题 2.adb篇 ...

  9. Linux常用命令,Linux常用命令整理

    Linux常用命令一般可以分为很多种,比如查看硬件信息相关命令就有8个,分别是ifconfig.free.fdisk.ethtool.mii-tool.dmidecode.dmesg.lspci,用于 ...

最新文章

  1. exit()与_exit()的区别(转)
  2. iptables+geoip来过滤阻挡来源IP
  3. ImageMagick之PDF转换成图片(image)
  4. SAX解析XML文件
  5. LeetCode 130. 被围绕的区域(图的BFS/DFS)
  6. 如何使用KingShard构建MySQL集群
  7. 直播丨2020数据技术嘉年华·金融峰会暨数据库大咖讲坛(第4期)
  8. Initial Audio Master Suite for Mac - 母带效果套件
  9. python绘制玫瑰花代码视频_python turtle玫瑰花绘制效果和源代码
  10. 最近好颓废啊,改过自新就从收拾自己的东西开始吧
  11. [透视变换]象棋棋盘矫正Python&OpenCV
  12. 沉舟侧畔千帆过,病树前头万木春
  13. 产品和技术解决方案_成功的产品负责人挑战技术解决方案
  14. 终极事务处理(XTP,Hekaton)——万能大招?
  15. 044_Unicode对照表十
  16. 【Linux】将用户添加到root组中
  17. cmake:foreach、endforeach
  18. axture动画原型制作_小孩子最喜欢的国产“机甲”动画,90后全看过,00后一个也不知道...
  19. 【English】Day 2 大英读写2 U1 A 7.11.12 翻译
  20. 缺陷管理 如何发现更多的缺陷

热门文章

  1. html引入外部css的用法
  2. vs2008整合sp1补丁
  3. css获取时间,改变CSS 样式,获取当前日期
  4. C专家编程 第11章 你懂得C,所以C++不再话下 11.13 多态---运行时绑定
  5. Java面向对象设计模式
  6. 小白也能自己完成APP制作
  7. 调用office web 365接口实现在线预览word文档,PDF,PPT
  8. [Python] OpenCV 摄像头黑边问题 - 彻底解决
  9. 005. 虚拟机的快照与克隆
  10. 《计算机系统与维护》— 计算机硬件的组成