小编Sir*_*mad的帖子

从USB设备读取并写入物理地址

我有一个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)

c linux-kernel embedded-linux

14
推荐指数
1
解决办法
1101
查看次数

标签 统计

c ×1

embedded-linux ×1

linux-kernel ×1