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

网站不允许上传文件kingcms 暂未创建网站首页

网站不允许上传文件,kingcms 暂未创建网站首页,网站建设中要尽量使用图片,界面设计最好的网站查看PCIE设备的BAR 通过cpu spc查看PCIE配置寄存器存放信息,可以看到在**0x80000000L偏移10h处便是映射的内存地址**: 这个地址有多种方法查看,在RU下可以通过F6直接打开对应设备的寄存器基地址查看,也可以通过编程IO方式查看&am…

查看PCIE设备的BAR

通过cpu spc查看PCIE配置寄存器存放信息,可以看到在**0x80000000L偏移10h处便是映射的内存地址**:

这个地址有多种方法查看,在RU下可以通过F6直接打开对应设备的寄存器基地址查看,也可以通过编程IO方式查看,主要是要知道base address + bus + dev +fun。再根据addr = Ox80000000 L | (bus<<16) | (dev<<11) | (fun<<8)|offset 计算。

RU下查看

通过打印pci的配置空间查看

在ubuntu下可以通过命令查看pcie设备内存映射的地址

lspci -vv

访问I211的控制寄存器、状态寄存器等


读取某一个PCIe设备(比如网卡)的控制寄存器、状态寄存器。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>#define I211_BAR0_ADDR 0xf7500000
#define I211_BAR0_SIZE (128 * 1024)  // 128KB// I211寄存器偏移
#define I211_REG_CTRL     0x0000  // Device Control
#define I211_REG_STATUS   0x0008  // Device Status
#define I211_REG_EERD     0x0014  // EEPROM Read
#define I211_REG_ICR      0x00C0  // Interrupt Cause Read
#define I211_REG_MAC_L    0x5400  // MAC地址低32位
#define I211_REG_MAC_H    0x5404  // MAC地址高16位// 寄存器访问
uint32_t read_reg32(volatile void *base, uint32_t offset) {return *(volatile uint32_t*)((uint8_t*)base + offset);
}void write_reg32(volatile void *base, uint32_t offset, uint32_t value) {*(volatile uint32_t*)((uint8_t*)base + offset) = value;
}int main() {int fd;void *base_addr;// 打开物理内存fd = open("/dev/mem", O_RDWR | O_SYNC);if (fd == -1) {printf("Error opening /dev/mem: %s\n", strerror(errno));return -1;}// 映射BAR0地址空间base_addr = mmap(NULL, I211_BAR0_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, I211_BAR0_ADDR);if (base_addr == MAP_FAILED) {printf("Error mapping memory: %s\n", strerror(errno));close(fd);return -1;}// 读取控制寄存器uint32_t ctrl = read_reg32(base_addr, I211_REG_CTRL);printf("Control Register (0x%04X): 0x%08X\n", I211_REG_CTRL, ctrl);// 读取状态寄存器uint32_t status = read_reg32(base_addr, I211_REG_STATUS);printf("Status Register (0x%04X): 0x%08X\n", I211_REG_STATUS, status);// 读取MAC地址uint32_t mac_l = read_reg32(base_addr, I211_REG_MAC_L);uint32_t mac_h = read_reg32(base_addr, I211_REG_MAC_H);printf("MAC Address: %02X:%02X:%02X:%02X:%02X:%02X\n",(uint8_t)(mac_l),(uint8_t)(mac_l >> 8),(uint8_t)(mac_l >> 16),(uint8_t)(mac_l >> 24),(uint8_t)(mac_h),(uint8_t)(mac_h >> 8));// 清理munmap(base_addr, I211_BAR0_SIZE);close(fd);return 0;
}

编译运行

gcc -o GetNetInfo GetNetInfo.c 
./GetNetInfo 

http://www.dtcms.com/wzjs/829042.html

相关文章:

  • 网站代码模板编写滦平住房和城乡建设厅网站
  • 哈巴狗模式网站开发长沙网站建设kaodezhu
  • 广告网站模板科技改变生活
  • 企业电子商务网站建设的最终目的vi设计的目的和意义
  • seo网站推广如何做前端网站模板
  • 教育网站解决方案网页版梦幻西游飞升攻略
  • 可以去非菲律宾做游戏网站吗电商设计师招聘
  • 方正园林建设监理中心网站网络营销做得好的产品
  • 建网站平台安全性网站空间大小怎么看
  • 如何登录国外购物网站网站大幅广告
  • wordpress博客 登录营销导向的企业网站优化
  • cms进行网站开发个人博客wordpress主题
  • 网站策划的重要性大连网站建设蛇皮果
  • 在线看网站建设观光农业规划设计
  • 做cms网站成成品网站源码有限公司
  • 百度推广运营这个工作好做吗廊坊网站的优化
  • 用Off做网站湖南住房与城乡建设厅网站
  • 怎么在网上打广告seo体系网站的建设及优化
  • 网站推广方法100种青海省建设厅职业注册官方网站
  • 微网站 微官网的区别wordpress 08
  • 沈阳和平三好街做网站法国企业网站建设
  • 酷家乐在线3d云设计平台百度关键词如何优化
  • 免费下载网站建设方案pptdjango商城网站开发的功能
  • 网站开发应用开发前海艾爻网站 建设
  • 企业备案网站内容新公司起名字大全免费
  • 爱淘苗网站开发模式个人做公司网页怎么做
  • 深度科技商业官方网站页面模板不存在怎么办
  • 赣州市住房和城乡建设局网站网上商城网站设计和实现
  • 网页设计案例图片深圳正规seo
  • 建设手机网站平台e网科技网站