访问pcie总线地址内容

news2024/11/24 1:56:17

调用代码如下:

    uint32_t value;
    void * addr;
    printk("------1--------\n");

    addr=0x2730000;
    struct resource *res;
    char const *name = dev_name(&pdev->dev);
    printk("dev_name=%s\n", name);
    res = request_mem_region(addr, 16, "name1");
    if(res == NULL){
        printk("request_mem_region failed\n");
        return -ENOMEM;
    }

    void * ioaddr;
    ioaddr = ioremap(res->start, resource_size(res));
    value = readl(ioaddr);
    printk("-----addr=0x%x  value=0x%x\n",ioaddr, value);
    iounmap(ioaddr);
    release_region(addr, 16);

使用 cat/proc/iomem:
在这里插入图片描述

这个是干什么的呢,其实就是当你:

   //addr=0x2002730000;
    addr=0x100000000;
    struct resource *res;
    res = request_region(addr, 8, "name1");

的时候,会在这里记录一下使用了这些内存,别人就不要用了
在这里插入图片描述
我们可以通过lspci查看pci总线信息:
在这里插入图片描述

root@synopsys-VirtualBox:~# lspci -d 1e36: -v
01:00.0 FireWire (IEEE 1394): Shanghai Enflame Technology Co. Ltd Device 8031 (rev 01) (prog-if 00 [Generic])
Flags: fast devsel, IRQ 5
Memory at e2900000 (32-bit, non-prefetchable) [size=16K]
Memory at e3000000 (32-bit, non-prefetchable) [size=8M]
Memory at 1400000000 (64-bit, prefetchable) [size=16G]
Memory at 1800000000 (64-bit, prefetchable) [size=256M]
Expansion ROM at e2904000 [virtual] [disabled] [size=2K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/16 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable- Count=8 Masked-

地址不是这样子计算的,你看寄存器bar的物理地址在e3000000,你从这个地址map 8M出来,然后访问offset2730000地方

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/91421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【语音之家公开课】SRD: A Dataset and Benchmark Perspective

本次语音之家公开课邀请到陈果果进行分享Speech Recognition Development: A Dataset and Benchmark Perspective。 公开课简介 主题:Speech Recognition Development: A Dataset and Benchmark Perspective 时间:12月15日(周四&#xff09…

web网页设计期末课程大作业:美食餐饮文化主题网站设计——HTML+CSS+JavaScript美食餐厅网站设计与实现 11页面

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

C# IO及文件管理

一 System.IO ① System.IO名字空间; ② 提供了许多用于; ③ 文件和数据流进行读写操作的类; 二 流的分类 1 Stream类 按存取位置分:FileStream,MemeryStream,BufferedStream; 2 读写类 BinaryReader和BinaryWriter; TextRe…

从 0 到 1 搞一个 Compose Desktop 版本的玩天气之打包

从 0 到 1 搞一个 Compose Desktop 版本的玩天气之打包 大家好,前两篇文章大概介绍了下上手 Compose Desktop 和自定义绘制时遇到的一些问题,项目的最终实现效果如下: 视频代码写好了,该弄的动画也弄了,该请求的网络数…

【数据结构】八大排序算法详解

🧑‍💻作者: 情话0.0 📝专栏:《数据结构》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 排序前言一…

汇编语言第一章:基础知识

1. 基础知识 机器语言 机器语言是机器指令的集合,是一台机器可以正确执行的命令。现在一般电子计算机的机器指令是一列二进制数字。机器指令集是机器语言。 汇编语言 机器语言难以辨别和记忆,所以产生了汇编语言。汇编语言的主体是汇编指令。 操作&…

on-device training

又搬来个好玩呃 说来又想试试了 , 仅用256KB就实现单片机上的神经网络训练(training,notinference),从此终端智能不再是单纯的推理,而是能持续的自我学习自我进化 On-Device Training under 256KB Memory 说到神经网络训练&#…

编译原理实验四

编译原理实验四 实验要求 cminus-f的词法分析和语法分析部分已经完成,最终得到的是语法分析树。而为了产生目标代码,还需要将语法分析树转为抽象语法树,通过抽象语法分析树生成中间代码(即IR),最后使用中间代码来进行优化并生成…

easyExcel导出表头合并 不得不说真牛

有个导出单元格合并的任务,表头不规则合并格式,看得就烦,尤其是对于没玩儿过合并的我来说,任务放在哪里不知咋做,网上也看了一堆合并的方法,自己写注解来写的那些,麻烦得要命,我写一…

48.python break语句-终止循环

48.break语句-终止循环 文章目录48.break语句-终止循环1.循环控制2.break的作用3. 语法4. 实操练习5. 知识扩展:print的位置6. break语句循环图1.循环控制 在循环的过程中如果要退出循环,我们可以用break语句和continue语句。 2.break的作用 break [b…

Android入门第49天-使用RadioGroup+Fragment来重构类首页底部4个按钮的界面

简介 我们在:Android入门第47天-Fragment的基本使用 中使用Fragment制作了一个类首页底部含4个按钮的界面。今天的课程我们要做的是把第47天里的代码中一部分共用的东西抽象到res/values/themes.xml文件中。另外我们使用RadioGroup天然的只有一个可以被选中来代替…

Python学习笔记-文件及文件夹操作

记述python中关于文件和目录的基本操作。 一、基本文件操作 1.文件的创建和打开 file open(filename[,mode[,buffering]]) file:文件对象filename:文件路径,字符串类型,若要打开的文件与程序文件在同一文件夹,可直…

OPengl学习(三)——绘制几何物体和状态管理

文章目录0、 写在前面1、绘图工具1.1、清除窗口1.2、指定颜色1.3、强制完成绘图1.4、坐标系统工具2、点,直线,多边形2.1、填充多边形3、点,直线,多边形细节刻画4、基本状态管理0、 写在前面 1、OpenGL自身是一个巨大的状态机(Sta…

【CELL】compass利用单细胞转录组+流平衡分析预测细胞代谢状态,促进免疫细胞代谢研究

细胞代谢调控正常细胞功能以及多种疾病状态的病理生理。最近,免疫细胞代谢研究(immunometabolism)成为一个研究热点,揭示了包括抗病毒免疫、自身免疫和抗肿瘤反应在内的炎症代谢调节。然而,由于代谢网络的规模和复杂性…

BIO、NIO、AIO理解(I/O模型)

IO模型(unix网络编程第一卷) unix有五种I/O模型,好像其他系统也差不多吧。 I/O模型主要是两个阶段:等待数据与把数据从内核空间复制到用户空间,然后根据这两个阶段的不同,分类出来下面几类I/O模型。 前四个是同步IO,最后一个是异…

高并发下你还敢用ArrayList?过来看看CopyOnWriteArrayList吧!

一、ArrayList线程不安全 在Java的集合框架中,想必大家对ArrayList肯定不陌生,单线程的情况下使用它去做一些CRUD的操作是非常方便的,先来看看这个例子: public class ListTest {public static void main(String[] args) {List&…

GIS基于智慧城市建设的作用

​​​​​智慧城市的建设对于改善居民的生活质量和提高城市的管理水平,有着公认的推动作用。其中,地理信息技术特别是GIS平台,在智慧城市的建设过程中扮演着关键角色。 在现实情况中,除了政策本身的一些因素,受限于一…

Web前端105天-day44-JSCORE

JSCORE04 目录 前言 一、复习 二、forEach 三、reduce 四、展开语法 五、解构语法 六、形参默认值 七、剩余参数 总结 前言 JSCORE04学习开始 一、复习 JS的第6个版本, 带来了大量的新特性, 新语法let/const : 两个新的声明变量的方式 新的作用域 脚本: 对应全局, 用…

RocketMQ中的线程池是如何创建的?

前言 大家好,今天主要来和大家聊一聊RocketMQ中的线程池是如何创建的,如何设置线程池数量,同时也可以从中去学习到一些线程池的实践和需要注意的一些细节。 RocketMQ在哪些地方使用到了线程池? 在RocketMQ中存在了大量的对线程…

学籍信息网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 学籍信息管理:添加信息、修改信息、删除信息、查询信息 添加信息,管理员根据学生的将信息导入系…