全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Linux在应用层读写寄存器的方法及实现实例

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小时内与您取得联系。