工具与软件:
您好!
我的驱动程序和应用几乎成功地使用 DMA 通过 QSPI 接口从 ASIC 传输数据。 我仍然有两个问题、一个是在另一个帖子中查看的数据损坏、另一个问题是我的系统有太多的中断延迟、GPIO IRQ 处理程序无法可靠地启动 DMA 传输。 我希望、使用 GPIO 自动触发来启动 DMA 传输可以解决这个问题。 我看到了另一篇介绍 QNX 流程的文章、但我正在为操作系统使用 Linux。 有人能举个例子、说明如何在 Linux 中实现这一点吗?
我假设按顺序更改.dts 文件。 以下是驱动程序的节点。 要将 GPIO 中断更改为自动触发以及在驱动程序代码中更改、需要进行哪些更改?
谢谢!
胜利
对象0 (&O)
状态="正常";
pinctrl-names ="默认值";
pinctrl-0 =<&MAIN_ospi0_PINS_DEFAULT>;
兼容="SLQ、QSPI-NOR";
REG =<0x00 0x0fc40000 0x00 0x100>、
<0x05 0x00000000 0x01 0x00000000>;
时钟名称="slq-clk";
memory-region =<&SLQ_Rx_region>;
中断名称="SLQ-IRQ";
INTERRUPT-PARENT =<&MAIN_GPIO0>;
中断=<62 IRQ_TYPE_EDGE_FALLING>;
GPIO-IRQ =<&MAIN_GPIO0 62 GPIO_ACTIVE_LOW>;
maxwell0:am62x@0{
状态="正常";
IS-DUAL =<0>;
num-cs = 1>;
SPI-TX-BUS-WIDTH =<1>;
SPI-Rx-BUS-width =<4>;
兼容="Trimble、Maxwell-slq0"、"JEDEC、SPI-NOR";
REG =<0x0>;
spi-max-frequency =<50000000>;
CDN、读取延迟=<50>;
cdns, tshsl-ns =<4>;
cdns, tsd2d-ns =<4>;
cdns,tchsh-ns =<4>;
cdns, tslch-ns =<4>;
};
};