NFS
在rockchip的sdk中,一般默认情况下是不打开NFS功能的,这给习惯使用NFS挂载的人带来了一定的麻烦,不过稍微修改一下内核,就能支持NFS
- 进入kernel目录
- sudo make menuconfig
进行如下的修改
保存退出,保存默认配置文件
修改设备树
编译烧录
ADB
ADB一般用于安卓的调试,在linux版本的sdk下,主要使用文件的传输功能
ADB连接方式有两种:USB和 络。USB连接比较方便,而 络需要设置IP和端口,比较麻烦
ADB工具个人感觉不是很好用,而且有乱码情况,因此不是很推荐使用
使用USB ADB时,首先添加Windows环境变量

将adb.exe的所在目录添加进PATH,并且要重启cmd的窗口
这时输入adb shell,即可进入板子的shell界面
- 文件复制到板子
在Windows端执行即可
下面是示例,传了一个ok.log 到/userdata目录下
- 文件传回电脑
在Windows端执行即可
下面是示例,传了一个ok.log 到电脑下
Lrzsz
lrzsz 是一款 Linux 下面的文件传输工具。实现原理是通过 Xmodem / Ymodem / Zmodem 协议传输文件。lrzsz 可以在支持这三种协议的 Shell 界面的工具下工作,比如SecureCRT,puTTY 等
根据SDK编译好的rootfs中已经集成了lrz和lsz这两款工具,因此通过SecureCRT或puTTY 连接到板子上后,直接使用该工具即可
-
sz 命令发送文件到本地:sz filename
-
rz 命令本地上传文件到服务器:rz
执行该命令后,在弹出框中选择要上传的文件即可。
说明:打开 SecureCRT 软件 -> Options -> session options -> X/Y/Zmodem 下可以设置上传和下载的目录
TFTP
arm端的tftp,相比于pc端,精简了不少,只留下了几个重要选项
- 从tftp服务器下载文件:tftp -r 服务器端文件名 -g 服务器IP
- 从本地上传文件到服务器:tftp -l 本地文件名 -p 服务器IP
注意,一定要先在服务器端创建一个同名空文件,并给777权限,否则上传会失败
Procrank
Procrank 用来输出进程的内存快照,便于有效的观察进程的内存占用情况。
包括如下内存信息:
-
VSS:Virtual Set Size 虚拟耗用内存大小(包含共享库占用的内存)
-
RSS:Resident Set Size 实际使用物理内存大小(包含共享库占用的内存)
-
PSS:Proportional Set Size 实际使用的物理内存大小(比例分配共享库占用的内存)
-
USS:Unique Set Size 进程独自占用的物理内存大小(不包含共享库占用的内存)
注意:
-
USS 大小代表只属于本进程正在使用的内存大小,进程被杀死后会被完整回收;
-
VSS/RSS 包含了共享库使用的内存,对查看单一进程内存状态没有参考价值;
-
PSS 是按照比例将共享内存分割后,某单一进程对共享内存区的占用情况。
命令格式:
常用指令说明 :
-
-v:按照 VSS 排序
-
-r:按照 RSS 排序
-
-p:按照 PSS 排序
-
-u:按照 USS 排序
-
-R:转换为递增[递减]方式排序
-
-w:只显示 working set 的统计计数
-
-W:重置 working set 的统计计数
-
-h:帮助
示例:
- 输出内存快照:procrank
默认 procrank 输出是通过 PSS 排序。
- 按照 VSS 降序排列输出内存快照:procrank –v
一般情况下,可以写一个脚本,每1s钟打印一次某进程的procrank输出,并保存到某个文件,将单个进程的信息筛选出来很简单,利用grep按照cmdline筛选即可,这样根据生成的信息判断是否发生内存泄露
FIQ
FIQ debugger 是集成到内核中的一种系统调试手段
一般情况下串口是普通的 console 模式,SecureCRT 或 puTTY 下输入切换命令”fiq”,串口会切换到 FIQ debugger 模式
因为 FIQ 是不可屏蔽中断,所以这种调试手段适合调试 cpu 被 hang 住的情况,可以在 hang住的时候用 FIQ debugger 打印出 cpu 的故障现场,常用命令是 sysrq
Fiq debugger 相关使用命令:
Last_log
打印出上次系统复位前的设备信息。若出现拷机异常或者异常掉电的情况,可通过该命令打印出上一次系统运行状态的日志
i2c-tools
Buildroot 配置 i2c-tools 后,rootfs 会集成以下四个工具:
-
i2cdetect
-
i2cdump
-
i2cget
-
i2cset
i2cdetect 列举 I2C bus
列举 I2C bus i2c-1 上面连接的所有设备
发现 I2C 设备的位置显示为 UU 或者表示设备地址的数值,UU 表示该设备在 driver 中被使用。
i2cdumpdump I2C 设备大批量 register 的值
i2cget 读取 I2C 设备某个 register 的值
i2cset 设置 I2C 设备某个 register 的值
IO
Buildroot 配置 io 后,rootfs 会集成 io 工具。io 命令可以动态的读取或是配置寄存器的值,使用说明如下:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!