Linux读取内核空间,linux,arm_arm如何在内核空间直接读写某个物理地址(或者进程的虚拟地址),linux,arm,c,linux-kernel,memory - phpStudy...
arm如何在内核空间直接读写某个物理地址(或者进程的虚拟地址)
想要修改一个进程的虚拟地址中某个数据的
之前是mmap /dev/mmap来实现的
mapStart = (void volatile *)mmap(0, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, memfd, pa_base);
在x86_64上运行好好的,但是在arm上提示
Failed to mmap /dev/mem [0xffffffc2eef70000], errno : [22, Invalid argument]
问题1 ===发现pa_base超过1M的就会报这个错,不知道为什么?===
然后我决定用驱动来完成修改工作,pa是物理地址,不是很懂,但是写了下面的代码,也不知道对不对
unsigned long data = FAIL;
unsigned long pa_base = pa << PAGE_SHIFT;
unsigned long pa_offset = pa - pa_base;
struct page *pa_page = mem_map + pa_base;
void volatile *mapStart = (void volatile *)kmap(pa_page);
dbginfo("physical address 0x%lx to kernel address 0x%lx\n", pa, va, data);
if(mapStart == NULL)
{
dbginfo("kmap error\n");
}
else
{
memcpy(&data, mapStart + pa_offset, sizeof(unsigned long));
dbginfo("physical address 0x%lx to kernel address 0x%lx, data 0x%lx\n", pa, va, data);
}
问题2==发现驱动内部,kmap映射出的地址是NULL
我该怎么解决,怎么在内核空间直接读写某个地址,怎么映射呢
相关阅读:
rails 中有没有上传音乐文件的gem
IPad旋转后,保持UIView的位置不改变
如何调用一个.c文件里的方法?
svg circle标签可以填充图像吗
SQLite里清空表数据后自增ID如何初始化
开发Electron用神马IDE?
vnc如何连接ubuntu14.04默认的桌面环境?
node在linux下全局安装pm2问题
线上app是如何自动更新的
前端模版渲染和后端模版渲染的优缺点分别是什么?
linux下vmware虚拟机安装win7后报错?不知是不是配置错了?
无法使用docker 命令搜g++?
json_encode解析带中文的数组时会显示Unicode编码。如何解决呀?
webapp开发中,输入框被弹起的虚拟键盘遮挡住了该如何解决呢
有哪些可以用来学习编程的游戏?
为什么setInterval设置为16ms间隔增加1/60px,动画不执行?
iOS fixed 头产生错位
微信公众平台开发中能向用户发送位置信息吗?
vim 的ctags+taglist定位php时,有时深深不准,有解决的方法吗
如何用 Laravel 的 template engine 渲染字符串?
Linux读取内核空间,linux,arm_arm如何在内核空间直接读写某个物理地址(或者进程的虚拟地址),linux,arm,c,linux-kernel,memory - phpStudy...相关推荐
- 【Linux】Linux的内核空间(低端内存、高端内存)
内核也是程序,也应该具有自己的虚存空间,但是作为一种为用户程序服务的程序,内核空间有它自己的特点. 内核空间与用户空间的关系 在一个32位系统中,一个程序的虚拟空间最大可以是4GB,那么最直接的做法就 ...
- linux 调整 内核空间占用cpu,[Linux性能优化]3.CPU使用率100%,怎么办?
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示. CPU时间是Linux通过事先定义的节拍率(内核中表 ...
- 嵌入式学习在linux下使用c语言对文件进行打开、读写操作。_2000字干货!单片机进阶嵌入式Linux要怎么学习……...
文章字数:2000 干货指数:⭐⭐⭐⭐⭐ 导读:这篇文章我们来一起简单梳理嵌入式Linux的一些知识,方便一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习. 现在随着嵌入式Linu ...
- 操作系统中的用户空间和内核空间
在操作系统中,程序分为两类:用户程序和内核程序. 用户程序:Java.Python.C等编写的应用程序. 内核程序:文件读写.网络传输.进程和线程管理.调用系统资源等. 用户程序运行的空间就是用户空间 ...
- linux 物理内存用完了_Linux用户空间与内核空间(理解高端内存)
Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型.进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存. 段页式机制如下图. Linux内核地址空间划分 通常32位L ...
- linux 各用户内存_Linux用户空间与内核空间(理解高端内存)
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...
- Linux内核空间和用户空间
在Linux系统中存在进程的概念: 进程的分类: 用户进程:运行在用户空间的进程被称为用户进程 内核进程:运行在内核空间的进程被称为内核进程 进程的空间: 系统会为每一个进程分0-4G的虚拟寻址空间, ...
- linux减小根目录空间_Linux目录结构及文件基本操作详解
Linux 目录结构及文件 在 windows 平台下,打开"计算机",我们看到的是一个个的盘符: 在 Linux 下,我们是看不到这些盘符,我们看到的是文件夹(目录): 在早期的 ...
- 查看linux可用磁盘空间_如何在Linux中检查可用磁盘空间
查看linux可用磁盘空间 跟踪磁盘利用率信息在系统管理员(和其他人员)的日常任务清单上. Linux有一些内置的实用程序可以帮助提供这些信息. df df命令代表"无磁盘",并显 ...
- arm linux 内核崩溃,用sysrq-trigger实现ARM Linux一键内核崩溃、一键关机、一键dump信息等...
原创 宋宝华 Linux阅码场 2018-01-12 sysrq有多种功能,对于ARM Linux这种嵌入式没键盘的系统来说,也可以通过/proc/sysrq-trigger来进行操作. 实验平台:Q ...
最新文章
- [转载] 信息系统项目管理师考试论文写作要点
- HTML的标签描述13
- 大盘点|YOLO 系目标检测算法总览
- api 定位 微信小程序 精度_微信小程序城市定位(借助百度地图API判断城市)
- 频谱仪使用方法图解_钳形电流表使用方法图解
- IOS安装CocoaPods完整流程
- hdu 4666 Hyperspace
- CodeForces - 91B Queue(单调队列+二分)
- python getattr_Python中的getattr()函数详解:
- 让Sql Server也能出现如VS一样的智能提示工具--资源更新
- 6. A Deeper Understanding of Deep Learning
- 【转】Android M新控件之AppBarLayout,NavigationView,CoordinatorLayout,CollapsingToolbarLayout的使用...
- 思维导图系列之Java多线程知识梳理
- Windows版Mysql5.6.11的安装与配置
- 【Embedding】fastText:极快的文本分类工具
- PyCharm入门使用教程-最强版本
- Ansys-模态分析基础上的谱分析学习收获
- BIOS升级,差一点也不行
- 使用javascript抓取网站数据
- Ubuntu 20.04 LTS 关闭 Swap 分区
热门文章
- 190712每日一句 生命的韧性
- Atitit 知识发现 艾提拉总结 目录 1. 知识发现	1 1.1. 与数据挖掘的区别与联系 数据挖掘的一种更广义的说法	2 1.2. 基本任务	3 1.2.1. 数据分类	3 1.2.2.
- Atitit 软件开发方法论 attilax著 艾龙 著 1. 1.3 软件工程方法 软件工程方法论分为软件开发方法论和软件组织方法论两个部分。	1 2. 软件开发方法的演进 SP DOP PAM
- Atitit 基于meta的orm,提升加速数据库相关应用的开发
- Atitit.软件仪表盘(7)--温度监测子系统--电脑重要部件温度与监控and警报
- paip.wmv的无损分割与截取
- paip.web service技术在 JAVA与.NET中的应用流程方案
- paip.本机CVS环境搭建
- 景林合伙人张小刚:我们的优势在哪里?
- Rust: codewars的primes-in-numbers