当前位置: 首页 > news >正文

【Vxworks】映射物理地址为虚拟地址,并获取此地址的存放值

最近开始接触Vxworks,得知Vx中不可对物理地址直接操作,需要先转为虚拟地址。
本文则将介绍此实现方法。

1. 物理地址映射为虚拟地址

采用pmapGlobalMap接口,对从0xf0000000开始,大小为0x1000的地址空间进行映射,得到Virtual_Base开始的虚拟地址。

/*初始化变量*/
UINT32 Virtual_Base;
UINT32 mmuAttr = MMU_ATTR_SUP_RW | MMU_ATTR_CACHE_OFF; 
/*对物理地址映射*/
Virtual_Base = pmapGlobalMap((PHYS_ADDR)0xf0000000, (size_t)0x1000, mmuAttr);

2. 获取某地址存放的值

根据1.转换为虚拟地址后,就要以这个虚拟地址为基址,从而获取其他地址的表示。
如下面例子中,(Virtual_Base + 0x0004) 表示 实际物理地址为 (0xf0000000 + 0x0004) 的地址,对这个地址进行UINT32类型转换、并取值,即可得到该地址所存值。

res = *(UINT32 *)(Virtual_Base + 0x0004);
http://www.lryc.cn/news/113299.html

相关文章:

  • C/C++可变参数列表
  • MongoDB基本命令使用
  • uniapp 微信小程序 上下滚动的公告通知(只取前3条)
  • OSPF在MGRE上的实验
  • 什么样的跨网文件安全交换系统 可实现安全便捷的文件摆渡?
  • C语言memset函数的作用
  • 暑假刷题第23天--8/7
  • Double DQN缓解动作价值的高估问题
  • 【C#学习笔记】内存管理
  • 面试之快速学习c++11- 列表初始化和 lambda匿名函数的定义
  • CI/CD—Docker初入门学习
  • 多线程的创建,复习匿名内部类,Thread的一些方法,以及lambda的变量捕捉,join用法
  • 瑞吉外卖系统05
  • D455+VINS-Fusion+surfelmapping 稠密建图(三)
  • rv1109/1126 rknn 模型部署过程
  • Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
  • --binlog-row-event-max-size
  • Jmeter命令行运行实例讲解
  • pl/sql函数如何返回多行数据?在线等......
  • Ubuntu Find命令详解
  • ADS Momentum学习笔记
  • 解决Vue3 使用Element-Plus导航刷新active高亮消失
  • K8S系列文章之 一键部署K8S环境
  • Spring Boot、Spring Cloud、Spring Alibaba 版本对照关系及稳定兼容版本
  • 虫情监测仪介绍—技术原理、功能优势是什么?
  • HTML5 Canvas和Svg:哪个简单且好用?
  • ChatGPT在社交媒体聊天和评论分析中的应用如何?
  • DoIP学习笔记系列:(四)用CAPL脚本读取DID的关键点
  • chrome插件开发实例06-定制自己的Chrome DevTools调试工具
  • 安卓读取,添加,更新,删除联系人,读取短信