bperez77 / xilinx_axidma

A zero-copy Linux driver and a userspace interface library for Xilinx's AXI DMA and VDMA IP blocks. These serve as bridges for communication between the processing system and FPGA programmable logic fabric, through one of the DMA ports on the Zynq processing system. Distributed under the MIT License.
MIT License
464 stars 227 forks source link

Assertion `0 <= siginfo->si_int && siginfo->si_int < axidma_dev.num_channels' failed. #99

Closed SimonLeeCHN closed 5 years ago

SimonLeeCHN commented 5 years ago

Hi, the examples run well on my dma loop design but when i tried to change the dma channels device-id the example axidma_transfer thow an error

AXI DMA File Transfer Info:
Transmit Channel: 4
Receive Channel: 3
Input File Size: 0.00 MiB
Output File Size: 0.00 MiB

axidma_transfer: library/libaxidma.c:193: axidma_callback: Assertion `0 <= siginfo->si_int && siginfo->si_int < axidma_dev.num_channels' failed.

i changed the s2mm dma channel to 3,mm2s dma channel to 4,the error occurred {VJD3)@} TQ~GI$CQM$A`09

but if i change the s2mm dma channel to 0,mm2s dma channel to 1,it works well JG`IQF)}D(8~RS36WS JY3P

did i made a mistake in change the id?

GOOD-Stuff commented 5 years ago

Hello! May be it's because in your axidma_chrdev in dmas set for 0 and 1 channels. If you change device-id in channels, you also have to change this IDs in axidma_chrdev. So, you must set dmas like = <0x7 0x4 0x7 0x3>. For more information, I advice to look on axidma_of.c

SimonLeeCHN commented 5 years ago

Thanks GOOD-Stuff i was follow the steps in the README.md,so i thought the device-id can be arbitrary image

GOOD-Stuff commented 5 years ago

Hi SimonLeeCHN!

Did my advice helps to solve your problem? If so, can you please close this issue :)