我有一个USB设备输出大小为一个字节的数据,我想将这些字节传递给AXI桥上存在的FPGA组件,FPGA和CPU在同一芯片上...它是SoC FPGA Altera Cyclone V. CPU是ARM Cortex-A9.内核版本3.7.0.
有一个软件可以从USB设备读取并写入转储文件......它可以正常工作.我试图用mmap()FPGA将地址映射到虚拟空间并从用户空间写入.这样做......说完一分钟后,内核似乎崩溃了.
我为我的FPGA组件编写了一个驱动程序,并将驱动程序路径作为文件传递给该软件,以便写入它,最终写入我的FPGA组件,但结果相同......内核在随机时间后再次崩溃.
我还写了一个简单的程序,从本地文件中读取字节并将其传递给FPGA ......无论哪种方式(使用mmap()或驱动程序模块)都可以正常工作,无论文件有多大,文件都可以毫无问题地传递给FPGA.文件.
所以问题是当从USB设备传递到FPGA时,无论是使用mmap()还是驱动模块.
这是一个示例崩溃消息:
Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
Modules linked in: ipv6
CPU: 1 Not tainted (3.7.0 #106)
PC is at scheduler_ipi+0x8/0x4c
LR is at handle_IPI+0x10c/0x19c
pc : [<800521a0>] lr : [<800140d4>] psr: 80000193
sp : bf87ff58 ip : 8056acc8 fp : 00000000
r10: 00000000 r9 : 413fc090 r8 : 00000001
r7 : 00000000 r6 : bf87e000 r5 : …Run Code Online (Sandbox Code Playgroud)