LoongSon——PMON常用命令整理
通过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常用命令整理相关推荐
- python常用命令汇总-python数据分析之pandas常用命令整理
原标题:python数据分析之pandas常用命令整理 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型 ,提供了高效地 ...
- docker常用命令_docker常用命令整理
docker常用命令整理 代码狂魔 • 5 天前 • 技术积累 • 14 • 0 前面已经把docker是什么和 docker怎么安装已经写了,现在我将常用命令做一个整理,方便日后查阅 常用命令 do ...
- android 常用命令,Android开发常用命令整理
一些命令,不常用就忘记了,特整理在这里,忘了就查查.. · alias 用于定义和查询别名,但不保存.修改home目录下.bashrc保存定义别名格式,不加参数即查询别名:alias c ...
- CMake常用命令整理
CMake常用命令整理 转自:https://zhuanlan.zhihu.com/p/315768216 CMake 是什么我就不用再多说什么了,相信大家都有接触才会看一篇文章.对于不太熟悉的开发人 ...
- docker 容器 exited_docker常用命令整理
docker常用命令整理 代码狂魔 • 5 天前 • 技术积累 • 14 • 0 前面已经把docker是什么和 docker怎么安装已经写了,现在我将常用命令做一个整理,方便日后查阅 常用命令 do ...
- kubernetes常用命令整理
一.维护类: master节点: [root@k8s-master01 -]# for I in etcd kube-apiserver kube-controller-manager kube-sc ...
- Linux 常用命令整理(Centos7) (时区/正则/sed/htop/screen/ln/awk/……)
目录 Linux 常用命令整理(Centos7) (附加正则.时区.git等) 一.系统查询常用命令: 1.文件中空格制表符替换sed 2.查看宿主机的用户名密码 3.last .w.lastb 查看 ...
- 常用命令整理一(git、adb、vim、cmd、sh)
常用命令整理一(git.adb.vim.cmd.sh) 1.git篇 (1)安装git (2)配置 (3)使用 (4)基础概念 (5)gerrit相关 (6)git 指令遇到的一些问题 2.adb篇 ...
- Linux常用命令,Linux常用命令整理
Linux常用命令一般可以分为很多种,比如查看硬件信息相关命令就有8个,分别是ifconfig.free.fdisk.ethtool.mii-tool.dmidecode.dmesg.lspci,用于 ...
最新文章
- exit()与_exit()的区别(转)
- iptables+geoip来过滤阻挡来源IP
- ImageMagick之PDF转换成图片(image)
- SAX解析XML文件
- LeetCode 130. 被围绕的区域(图的BFS/DFS)
- 如何使用KingShard构建MySQL集群
- 直播丨2020数据技术嘉年华·金融峰会暨数据库大咖讲坛(第4期)
- Initial Audio Master Suite for Mac - 母带效果套件
- python绘制玫瑰花代码视频_python turtle玫瑰花绘制效果和源代码
- 最近好颓废啊,改过自新就从收拾自己的东西开始吧
- [透视变换]象棋棋盘矫正Python&OpenCV
- 沉舟侧畔千帆过,病树前头万木春
- 产品和技术解决方案_成功的产品负责人挑战技术解决方案
- 终极事务处理(XTP,Hekaton)——万能大招?
- 044_Unicode对照表十
- 【Linux】将用户添加到root组中
- cmake:foreach、endforeach
- axture动画原型制作_小孩子最喜欢的国产“机甲”动画,90后全看过,00后一个也不知道...
- 【English】Day 2 大英读写2 U1 A 7.11.12 翻译
- 缺陷管理 如何发现更多的缺陷