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...相关推荐

  1. 【Linux】Linux的内核空间(低端内存、高端内存)

    内核也是程序,也应该具有自己的虚存空间,但是作为一种为用户程序服务的程序,内核空间有它自己的特点. 内核空间与用户空间的关系 在一个32位系统中,一个程序的虚拟空间最大可以是4GB,那么最直接的做法就 ...

  2. linux 调整 内核空间占用cpu,[Linux性能优化]3.CPU使用率100%,怎么办?

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示. CPU时间是Linux通过事先定义的节拍率(内核中表 ...

  3. 嵌入式学习在linux下使用c语言对文件进行打开、读写操作。_2000字干货!单片机进阶嵌入式Linux要怎么学习……...

    文章字数:2000 干货指数:⭐⭐⭐⭐⭐ 导读:这篇文章我们来一起简单梳理嵌入式Linux的一些知识,方便一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习. 现在随着嵌入式Linu ...

  4. 操作系统中的用户空间和内核空间

    在操作系统中,程序分为两类:用户程序和内核程序. 用户程序:Java.Python.C等编写的应用程序. 内核程序:文件读写.网络传输.进程和线程管理.调用系统资源等. 用户程序运行的空间就是用户空间 ...

  5. linux 物理内存用完了_Linux用户空间与内核空间(理解高端内存)

    Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型.进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存. 段页式机制如下图. Linux内核地址空间划分 通常32位L ...

  6. linux 各用户内存_Linux用户空间与内核空间(理解高端内存)

    Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...

  7. Linux内核空间和用户空间

    在Linux系统中存在进程的概念: 进程的分类: 用户进程:运行在用户空间的进程被称为用户进程 内核进程:运行在内核空间的进程被称为内核进程 进程的空间: 系统会为每一个进程分0-4G的虚拟寻址空间, ...

  8. linux减小根目录空间_Linux目录结构及文件基本操作详解

    Linux 目录结构及文件 在 windows 平台下,打开"计算机",我们看到的是一个个的盘符: 在 Linux 下,我们是看不到这些盘符,我们看到的是文件夹(目录): 在早期的 ...

  9. 查看linux可用磁盘空间_如何在Linux中检查可用磁盘空间

    查看linux可用磁盘空间 跟踪磁盘利用率信息在系统管理员(和其他人员)的日常任务清单上. Linux有一些内置的实用程序可以帮助提供这些信息. df df命令代表"无磁盘",并显 ...

  10. arm linux 内核崩溃,用sysrq-trigger实现ARM Linux一键内核崩溃、一键关机、一键dump信息等...

    原创 宋宝华 Linux阅码场 2018-01-12 sysrq有多种功能,对于ARM Linux这种嵌入式没键盘的系统来说,也可以通过/proc/sysrq-trigger来进行操作. 实验平台:Q ...

最新文章

  1. [转载] 信息系统项目管理师考试论文写作要点
  2. HTML的标签描述13
  3. 大盘点|YOLO 系目标检测算法总览
  4. api 定位 微信小程序 精度_微信小程序城市定位(借助百度地图API判断城市)
  5. 频谱仪使用方法图解_钳形电流表使用方法图解
  6. IOS安装CocoaPods完整流程
  7. hdu 4666 Hyperspace
  8. CodeForces - 91B Queue(单调队列+二分)
  9. python getattr_Python中的getattr()函数详解:
  10. 让Sql Server也能出现如VS一样的智能提示工具--资源更新
  11. 6. A Deeper Understanding of Deep Learning
  12. 【转】Android M新控件之AppBarLayout,NavigationView,CoordinatorLayout,CollapsingToolbarLayout的使用...
  13. 思维导图系列之Java多线程知识梳理
  14. Windows版Mysql5.6.11的安装与配置
  15. 【Embedding】fastText:极快的文本分类工具
  16. PyCharm入门使用教程-最强版本
  17. Ansys-模态分析基础上的谱分析学习收获
  18. BIOS升级,差一点也不行
  19. 使用javascript抓取网站数据
  20. Ubuntu 20.04 LTS 关闭 Swap 分区

热门文章

  1. 190712每日一句 生命的韧性
  2. Atitit 知识发现 艾提拉总结 目录 1. 知识发现 1 1.1. 与数据挖掘的区别与联系 数据挖掘的一种更广义的说法 2 1.2. 基本任务 3 1.2.1. 数据分类 3 1.2.2.
  3. Atitit 软件开发方法论 attilax著 艾龙 著 1. 1.3 软件工程方法 软件工程方法论分为软件开发方法论和软件组织方法论两个部分。 1 2. 软件开发方法的演进  SP DOP PAM
  4. Atitit  基于meta的orm,提升加速数据库相关应用的开发
  5. Atitit.软件仪表盘(7)--温度监测子系统--电脑重要部件温度与监控and警报
  6. paip.wmv的无损分割与截取
  7. paip.web service技术在 JAVA与.NET中的应用流程方案
  8. paip.本机CVS环境搭建
  9. 景林合伙人张小刚:我们的优势在哪里?
  10. Rust: codewars的primes-in-numbers