Linux在应用层读写寄存器的方法

可以通过操作/dev/mem设备文件,以及mmap函数,将寄存器的地址映射到用户空间,直接在应用层对寄存器进行操作,示例如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#define AUDIO_REG_BASE (0xB800E000)
#define MAP_SIZE 0xFF
static int dev_fd;
int main(int argc, char **argv)
{
dev_fd = open("/dev/mem", O_RDWR | O_NDELAY);
if (dev_fd < 0)
{
printf("open(/dev/mem) failed.");
return 0;
}
unsigned char *map_base=(unsigned char * )mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, dev_fd, AUDIO_REG_BASE );
printf("%x \n", *(volatile unsigned int *)(map_base+0x38)); //打印该寄存器地址的value
#if 1 // LINE IN
printf("%x \n", *(volatile unsigned int *)(map_base+0x30));
*(volatile unsigned int *)(map_base + 0x30) = 0x208121bc; //修改该寄存器地址的value
usleep(1000000);
*(volatile unsigned int *)(map_base + 0x30) &= ~(0x1<<16); //修改该寄存器地址的value
usleep(1000000);
printf("%x \n", *(volatile unsigned int *)(map_base+0x30));
#endif
if(dev_fd)
close(dev_fd);
munmap(map_base,MAP_SIZE);//解除映射关系
return 0;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Linux
# 读写寄存器
# 读写寄存器的方法
# 读写寄存器实现代码
# 虚拟机中使用linux系启用文件共享之后的文件存在的位置方法
# linux下开启php的sockets扩展支持实例
# Linux 连续执行多条命令的方法(推荐)
# Linux 添加永久静态路由的方法
# Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作
# linux下用cron定时执行任务的方法
# Linux下安装mysql-5.6.4 的图文教程
# linux正确重启MySQL的方法
# Linux tar 压缩打包命令使用方法
# 应用层
# 可以通过
# 希望能
# 谢谢大家
# sys
# mman
# define
# unistd
# time
# fcntl
# AUDIO_REG_BASE
# static
# int
# dev_fd
# MAP_SIZE
# xFF
# stdlib
# mem
# mmap
# pre
相关文章:
北京网站制作公司哪家好一点,北京租房网站有哪些?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何在企业微信快速生成手机电脑官网?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何在IIS管理器中快速创建并配置网站?
独立制作一个网站多少钱,建立网站需要花多少钱?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何登录建站主机?访问步骤全解析
深圳网站制作的公司有哪些,dido官方网站?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何通过服务器快速搭建网站?完整步骤解析
网站制作难吗安全吗,做一个网站需要多久时间?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
已有域名和空间如何快速搭建网站?
建站主机解析:虚拟主机配置与服务器选择指南
建站之星北京办公室:智能建站系统与小程序生成方案解析
购物网站制作公司有哪些,哪个购物网站比较好?
h5在线制作网站电脑版下载,h5网页制作软件?
建站主机空间推荐 高性价比配置与快速部署方案解析
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
大型企业网站制作流程,做网站需要注册公司吗?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
如何通过虚拟主机快速完成网站搭建?
建站主机选购指南:核心配置优化与品牌推荐方案
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
高端网站建设与定制开发一站式解决方案 中企动力
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
建站之星如何优化SEO以实现高效排名?
如何在建站主机中优化服务器配置?
MySQL查询结果复制到新表的方法(更新、插入)
建站之星后台管理如何实现高效配置?
建站之星好吗?新手能否轻松上手建站?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何使用Golang安装API文档生成工具_快速生成接口文档
如何快速生成高效建站系统源代码?
如何在阿里云部署织梦网站?
如何访问已购建站主机并解决登录问题?
如何在Golang中使用replace替换模块_指定本地或远程路径
建站主机无法访问?如何排查域名与服务器问题
中山网站推广排名,中山信息港登录入口?
利用JavaScript实现拖拽改变元素大小
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
黑客如何通过漏洞一步步攻陷网站服务器?
如何通过二级域名建站提升品牌影响力?
如何在IIS服务器上快速部署高效网站?
测试制作网站有哪些,测试性取向的权威测试或者网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。