RK平台 支持io命令

一,io命令简介

“io” 命令通常用于显示 Linux 系统中的 I/O 统计信息。它提供了有关磁盘读写操作的详细信息,包括每个块设备的读写次数、读写扇区数、读写延迟等。io命令可以直接操作某个寄存器,用于查看设置某个GPIO 引脚配置了什么iomux。

二,移植io命令驱动

RK 的 Android 平台,默认有包含 io 工具(源码位置:external\io)。

1. 在 Makefile 中添加mem

kernel/drivers/char/Makefile增加
+obj-$(CONFIG_DEVMEM)           += mem.o

2. 在 Kconfig 中添加DEVMEM

kernel/drivers/char/Kconfig改文件已经包含下面信息config DEVMEMbool "/dev/mem virtual device support"default yhelpSay Y here if you want to support the /dev/mem device.The /dev/mem device is used to access areas of physicalmemory.When in doubt, say "Y".

3. 修改驱动文件

源码路径:
kernel/arch/arm/configs/rockchip_defconfig
kernel/drivers/char/mem.c

diff --git a/kernel/arch/arm/configs/rockchip_defconfig b/kernel/arch/arm/configs/rockchip_defconfig
index 0c930a731b..7116d1eafc 100644
--- a/kernel/arch/arm/configs/rockchip_defconfig
+++ b/kernel/arch/arm/configs/rockchip_defconfig
@@ -417,7 +417,7 @@ CONFIG_INPUT_RK805_PWRKEY=y# CONFIG_SERIO is not set# CONFIG_VT is not set# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVMEM is not set
+CONFIG_DEVMEM=yCONFIG_SERIAL_8250=y# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not setCONFIG_SERIAL_8250_CONSOLE=y
diff --git a/kernel/drivers/char/mem.c b/kernel/drivers/char/mem.c
index 54b86490d9..836b130049 100644
--- a/kernel/drivers/char/mem.c
+++ b/kernel/drivers/char/mem.c
@@ -881,9 +881,7 @@ static const struct memdev {const struct file_operations *fops;fmode_t fmode;} devlist[] = {
-#ifdef CONFIG_DEVMEM[1] = { "mem", 0, &mem_fops, FMODE_UNSIGNED_OFFSET },
-#endif#ifdef CONFIG_DEVKMEM[2] = { "kmem", 0, &kmem_fops, FMODE_UNSIGNED_OFFSET },#endif

三,调试命令

1. 查看mem字符设备

io命令正是通过以下字符设备来实现寄存器的读写:

rk3568_r:/ # ls -l /dev/mem
crw------- 1 media media 1,   1 2017-08-04 09:00 /dev/mem

2. 命令说明

rk3568_r:/dev # io
io
Raw memory i/o utility - $Revision: 1.5 $io -v -1|2|4 -r|w [-l <len>] [-f <file>] <addr> [<value>]-v         Verbose, asks for confirmation-1|2|4     Sets memory access size in bytes (default byte)-l <len>   Length in bytes of area to access (defaults toone access, or whole file length)-r|w       Read from or Write to memory (default read)-f <file>  File to write on memory read, orto read on memory write<addr>     The memory address to access<val>      The value to write (implies -w)Examples:io 0x1000                  Reads one byte from 0x1000io 0x1000 0x12             Writes 0x12 to location 0x1000io -2 -l 8 0x1000          Reads 8 words from 0x1000io -r -f dmp -l 100 200    Reads 100 bytes from addr 200 to fileio -w -f img 0x10000       Writes the whole of file to memoryNote access size (-1|2|4) does not apply to file based accesses.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/3904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不同技术实现鼠标滚动图片的放大缩小

摘要&#xff1a; 最近弄PC端的需求时&#xff0c;要求在layui技术下实现鼠标滚动图片的放大缩小的功能&#xff01;下面来总结一下不同框架剩下这功能&#xff01; layui: 看了一下layui文档&#xff0c;其实这有自带的组件的&#xff01;但是又版本要求的!并且layui的官方文档…

STM32学习和实践笔记(22):PWM的介绍以及在STM32中的实现原理

PWM是 Pulse Width Modulation 的缩写&#xff0c;中文意思就是脉冲宽度调制&#xff0c;简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术&#xff0c;其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式&#xff…

Ubuntu16.04搭建webrtc服务器

本人查阅无数资料,历时3周搭建成功 一、服务器组成 AppRTC 房间+Web服务器 https://github.com/webrtc/apprtcCollider 信令服务器,在AppRTC源码里CoTurn coturn打洞+中继服务器 Nginx 服务器,用于Web访问代理和Websocket代理。AppRTC 房间+Web服务器使用python+js语言 App…

RFID技术引领3C手机镜头模组产线智能化转型

RFID技术引领3C手机镜头模组产线智能化转型 应用背景 随着智能手机市场的快速发展与技术创新&#xff0c;手机镜头模组作为影像功能的核心组件&#xff0c;其生产精度、效率及供应链管理的重要性日益凸显。面对复杂多变的市场需求、严格的品质要求以及激烈的市场竞争&#xf…

面试集中营—ElasticSearch架构篇

一、为什么用ElasticSearch&#xff1f; 1、支持多种数据类型。它可以处理非结构化、数值和地理信息等多种类型的数据&#xff1b; 2、简单的RESTful API。ES提供了一个简单易用的RESTful API&#xff0c;使得它可以从任何编程语言中调用&#xff0c;降低了学习的曲线。 3、近实…

12G-SDI视频分配器JR104D-4K-SDI

JR104D-4K-SDI 12G-SDI分配器1分4,12G-SDI分配器1分2,12G-SDI分配器1分8,机架式12G-SDI分配器1分4&#xff0c;12G-SDI分配器4组1分4&#xff0c;12G-SDI分配器16组1分4&#xff0c; 广播级指标生产厂家。 一、产品介绍&#xff1a; JR104D-4K-SDI视频分配器&#xff0c;是按…

Pytest用例自定义 - 重复、并行、串行

简介&#xff1a;面对快速迭代和持续交付的需求&#xff0c;提高测试效率变得至关重要。并行测试因其显著的时间节省优势而备受青睐。然而&#xff0c;并非所有测试都适合并行执行。在某些情况下&#xff0c;串行执行是必要的&#xff0c;以确保测试的正确性和稳定性。本文将探…

【AI-GitHub】SceneScript 3D场景主体识别分割!让AR和人工智能设备了解物理空间的几何形状!

SceneScript是由Meta Reality Labs Research开发的一种新型3D场景重建技术。SceneScript采用语言模型来生成和表达物理空间的布局&#xff0c;能够通过机器学习直接推断出房间的几何形状&#xff0c;从而提供一种全新的环境重建和表现方式。想象一下&#xff0c;有这样一副时尚…

spring boot中一般如何使用线程池

在Spring Boot中&#xff0c;线程池作为并发编程的核心工具&#xff0c;对于提升应用程序性能、优化资源利用和保证系统稳定性具有重要作用。本文将详细阐述如何在Spring Boot中正确使用线程池&#xff0c;包括配置参数、实例化、任务提交、监控及常见问题处理等环节&#xff0…

HarmonyOS 鸿蒙下载三方依赖 ohpm环境搭建

前言 ohpm&#xff08;One Hundred Percent Mermaid &#xff09;是一个集成了Mermaid的命令工具&#xff0c;可以用于生成关系图、序列图、等各种图表。我们可以使用ohpm来生成漂亮且可读性强的图表。 本期教大家如何搭建ophm环境&#xff1a; 一、在DevEco Studio中&#…

比特币中用到的密码学功能【区块链学习笔记1】

想要转到web3&#xff0c;这次学习区块链看的课是北大肖臻老师的公开课。 比特币又称是加密货币crypto-currency&#xff0c;但其实是不加密的&#xff0c;全是公开的。比特币中用到的密码学中HASH和签名。 1. HASH 密码学中的哈希&#xff1a;cryptographic hash function …

【NLP练习】seq2seq

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、总结&#xff1a;seq2seq详解 1. seq2seq是什么 seq2seq&#xff08;sequence to sequence&#xff09;是一种常见的NLP模型架构&#xff0c;即&#xf…

c++图论基础(2)

目录 图的存储方式&#xff1a; 邻接矩阵&#xff1a; 代码实现&#xff1a; 邻接表&#xff1a; 代码实现&#xff1a; 邻接矩阵邻接表对比&#xff1a; 带权图&#xff1a; 邻接矩阵存储&#xff1a; 邻接表存储(代码实现)&#xff1a; 图的存储方式&#xff1a; 邻…

【数据结构】合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct Lis…

小米消金强化普惠金融举措,构建消费者反诈安全屏障

近年来&#xff0c;随着通信技术的飞速发展&#xff0c;电信网络诈骗作为一种非接触性犯罪形式&#xff0c;给广大消费者带来了严重的经济损失&#xff0c;并对金融秩序造成了极大的破坏。为了应对这一严峻挑战&#xff0c;重庆小米消费金融有限公司&#xff08;以下简称“小米…

【网络安全】对称加密、非对称加密以及密钥分配

目录 1、对称加密 2、非对称加密 3、如何分配对称密钥&#xff1f; 4、如何分配非对称密钥&#xff1f; 1、对称加密 所谓对称加密&#xff0c;就是指加密密钥与解密密钥都使用相同的密钥。如下图所示&#xff0c;通信双方使用的就是对称加密密钥。//代表&#xff1a;DES和…

代码随想录算法训练营第三十七天| LeetCode738.单调递增的数字

LeetCode 738 单调递增的数字 题目链接&#xff1a;738. 单调递增的数字 - 力扣&#xff08;LeetCode&#xff09; 【解题思路】 需要采用从后往前的遍历 如果发现该数字的前一位比后一位大&#xff0c;那么前一位就做-1处理&#xff0c;后一位变为9 注意&#xff1a;千万不…

《DiffusionNER: Boundary Diffusion for Named Entity Recognition》

Submitted 22 May, 2023; originally announced May 2023. Comments: Accepted to ACL 2023, submission version https://github.com/tricktreat/DiffusionNER 在这里插入图片描述 问题&#xff1a; 命名实体识别任务中存在的噪声跨度&#xff08;边界不清晰&#xff09…

人工智能如何提高公司效率的 5 种方法

人工智能是当今最热门的话题之一&#xff0c;但并不是每个人都了解其对商业的价值规模。由此可见&#xff0c;现有的AI技术可以将企业的生产力提升40%。 在机器学习的帮助下&#xff0c;Netflix 利用自动化个性化推荐每年赚取 10 亿美元。当公司使用人工智能时&#xff0c;34%…

【QA】Git的底层原理

前言 本文通过一个简单的示例&#xff0c;来理解Git的底层原理。 示例 1、新建本地仓库并上传第一个文件 相关步骤&#xff1a; 新建仓库及创建文件查看文件状态将文件添加到暂存区将文件提交到本地仓库 HMTeenLAPTOP-46U4TV6K MINGW64 /d/GSF_Data/Github/Java/Git/git-…