PCIE-MIS/MSIX中断
+ -

PCIE-MSI中断LINUX驱动-imt_driv.h

2025-07-16 0 0
#ifndef __IMT_TEST__H__    
#define __IMT_TEST__H__

#include <linux/io.h>
#include <linux/types.h>
#include "linux/pci.h"
#include <linux/timer.h>
#include <linux/cdev.h>
#include <linux/spinlock.h>

#define IMT_TEST_REAL 1
#define IMT_TEST_TEST 1

#define IMT_MODULE_NAME "IMT_test_driver"
#define IMT_TEST_VENDOR_ID   0x1eb6
#define IMT_TEST_DEVICE_ID_0   0
#define IMT_TEST_DEV_NAME    "imt_test"

#define IMT_TEST_TEST_TIMER_MS 30000
#define IMT_TEST_TEST_PAGE 8

typedef struct imt_test_pci_dev
{
    struct pci_dev *pci_dev;
    struct cdev cdev;
    struct class *cdev_class;

    struct timer_list timer;         //定义一个定时器

    /*中断*/ 
    unsigned int irq;

    dev_t dev_num;

    spinlock_t lock;

    /* 用于获取PCI设备配置空间的基本信*/   
    unsigned long ioaddr;
    unsigned long bar0_addr;
    unsigned long bar0_len;

}imt_test_pci_dev_s;

#endif

0 篇笔记 写笔记

PCIE MSI-X
MSI-XCA 结构MSI-X和MSI最大的不同是messagedata、message address和status字段没有存放在设备的配置空间中,而是使用MSI-XTable structure和MSI-X PBA structure来存放这些字段。MSI-X Table structur......
PCIe 中断机制介绍(MSI
前面的文章中介绍过,MSI本质上是一种Memory Write,和PCIe总线中的Message概念半毛钱关系都没有。并且,MSI的Data Payload也是固定的,始终为1DW。由于MSI也是从PCI总线继承而来的,因此MSI相关的寄存器也存在于配置空间中的PCI兼容部分(前256个字节)。如......
PCIe 中断机制介绍(MSI-X)
PCI总线自3.0版本开始支持MSI-X机制,对MSI做出了一些升级和改进,以克服MSI机制的三个主要的缺陷:随着系统的发展,对于特定的大型应用,32个中断向量不够用了(参考前一篇文章);只有一个目标地址使得多核CPU情况下的,静态中断分配变得困难。如果能够使每个向量对应不同的唯一的地址,便会灵......
PCIE-MSI中断LINUX驱动-imt_driv.h
#ifndef __IMT_TEST__H__ #define __IMT_TEST__H__#include #include #include "linux/pci.h"#incl......
PCIE-MSI中断LINUX驱动-imt_driv.c
#include #include #include #include #include
all: make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules#make -C $(KDIR) M=$(PWD) modulesclean: make -C /lib/modules/$(shell una......
#include #include #include ///<支持的ioctrl 命令#define GDMA_TEST_IOC_SUBMIT _IOW('p', ......
#include #include #include #include #include "gdma_app.h"#include <......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!