Linux 커널 공간에서 PCIe 카드로의 DMA

s.brookes

PCIe 장치 용 Linux 드라이버 (Adlink PCIe 7300A 고속 디지털 IO 카드)를 작성하려고합니다.

드라이버는 정상적인 메모리 전송에서 잘 작동하지만 카드의 버스 마스터 링 기능을 사용하여 CPU 메모리에서 장치의 출력 FIFO 버퍼로 버퍼의 DMA 전송을 시작하려고하면 작동하지 않습니다.

이 문제를 며칠 단위가 아닌 몇 주 단위로 해결하려고 노력해 왔습니다.

어떤 통찰력이라도 정말 감사하겠습니다.

드라이버 코드-https: //github.com/sbrookes/timing_driver_sdarn/blob/master/kernel_land/timing.c

장치 데이터 시트-http: //www.acceed.com/manuals/adlink/P7300A%20Manual.PDF

PLX 9080 PCI 인터페이스 칩 데이터 시트 - http://www.der-ingo.de/bin/milanhelp/PLX9080.pdf

나는 조금의 통찰력을 얼마나 고맙게 생각하는지 설명 할 수 없습니다.

감사합니다,

스콧

s.brookes

나는 문제를 해결 한 것 같다. 잘못된 시간에 DMA 전송을 중단하고 전송이 시작되지 않는 잘못된 조건이 인터럽트 핸들러에있는 것 같습니다.

심각한 "duh"순간이지만 그것을 찾기 위해 심각한 고투가 필요했습니다.

댓글에 따르면 필사적으로 오염되면 미안합니다. 여전히 좋은 시민이되는 법을 배우고 있습니다.

프로젝트가 변경 될 때 위에 링크 된 코드가 정적으로 유지되는지 또는 해당 링크가 최신 버전을 반영하는지 확실하지 않습니다. 기본적으로 잘못된 시간에 전송을 중단하지 않도록주의하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

커널 4.15의 PCIe USB 카드

분류에서Dev

Linux 커널 스레드 주소 공간

분류에서Dev

BIOS에서 Linux OS 커널로드

분류에서Dev

Linux 커널은 DMA를 통해 사용자 프로그램에 전달 된 데이터를 어떻게 관리합니까?

분류에서Dev

dma_addr_t를 Linux 커널의 가상 주소로 어떻게 변환 할 수 있습니까?

분류에서Dev

Linux 커널 4.15에서 경로 조회

분류에서Dev

입력 하드웨어 이벤트에 대해 알리기 위해 Linux 커널 공간에서 사용자 공간으로 신호를 보내는 방법

분류에서Dev

Linux 커널의 IPsec

분류에서Dev

사용자 프로그램에서 커널로 보낸 메시지를 출력하기 위해 사용자 공간 프로그램과 Linux 커널 모듈 간의 통신을 만드는 방법

분류에서Dev

Linux 커널 공간 모듈에서 사용자 공간 정의 함수를 어떻게 실행 / 호출 할 수 있습니까?

분류에서Dev

Linux 커널에서 시작된 시간

분류에서Dev

Linux에서 OracleSolaris로 PCIe 드라이버 포팅

분류에서Dev

Linux : 커널 공간 스레드 / 프로세스 만 볼 수 있습니까?

분류에서Dev

Linux의 NASM에서 UEFI 커널을 만드는 방법

분류에서Dev

Debian 8에서 Linux 커널 3을 4로 업그레이드

분류에서Dev

Linux 커널 코드에서 % p를 % pK로 바꿉니다.

분류에서Dev

Linux 커널이 부팅 중 SD 카드에서 rootfs를 감지하지 못함

분류에서Dev

Linux 커널 관리자의 개발 지점에서 최신 Linux 커널의 코드를 다운로드하는 방법은 무엇입니까?

분류에서Dev

Linux 프로세스의 가상 메모리 공간에서 커널 부분을 사용하는 용도는 무엇입니까?

분류에서Dev

Linux 프로세스의 가상 메모리 공간에서 커널 부분을 사용하는 용도는 무엇입니까?

분류에서Dev

OSX의 커널 공간에서 uuid.h?

분류에서Dev

Linux 커널 충돌 보고서에서 "(OF)"또는 "(OF +)"의 의미

분류에서Dev

C-Linux는 커널 모드에서 사운드 생성

분류에서Dev

Linux 커널 내부의 C func 서명 : include / linux / sched.h

분류에서Dev

Linux 커널에 종속되는 NFS의 로컬 파일 잠금

분류에서Dev

고급 OOP에서 Linux 커널 프로그래머로 변환

분류에서Dev

Linux 커널 코드에서 사용하는 정적 구조체

분류에서Dev

Linux 커널에서 새 코드 추가 및 컴파일

분류에서Dev

GDB가없는 보드에서 Linux 커널 디버그

Related 관련 기사

  1. 1

    커널 4.15의 PCIe USB 카드

  2. 2

    Linux 커널 스레드 주소 공간

  3. 3

    BIOS에서 Linux OS 커널로드

  4. 4

    Linux 커널은 DMA를 통해 사용자 프로그램에 전달 된 데이터를 어떻게 관리합니까?

  5. 5

    dma_addr_t를 Linux 커널의 가상 주소로 어떻게 변환 할 수 있습니까?

  6. 6

    Linux 커널 4.15에서 경로 조회

  7. 7

    입력 하드웨어 이벤트에 대해 알리기 위해 Linux 커널 공간에서 사용자 공간으로 신호를 보내는 방법

  8. 8

    Linux 커널의 IPsec

  9. 9

    사용자 프로그램에서 커널로 보낸 메시지를 출력하기 위해 사용자 공간 프로그램과 Linux 커널 모듈 간의 통신을 만드는 방법

  10. 10

    Linux 커널 공간 모듈에서 사용자 공간 정의 함수를 어떻게 실행 / 호출 할 수 있습니까?

  11. 11

    Linux 커널에서 시작된 시간

  12. 12

    Linux에서 OracleSolaris로 PCIe 드라이버 포팅

  13. 13

    Linux : 커널 공간 스레드 / 프로세스 만 볼 수 있습니까?

  14. 14

    Linux의 NASM에서 UEFI 커널을 만드는 방법

  15. 15

    Debian 8에서 Linux 커널 3을 4로 업그레이드

  16. 16

    Linux 커널 코드에서 % p를 % pK로 바꿉니다.

  17. 17

    Linux 커널이 부팅 중 SD 카드에서 rootfs를 감지하지 못함

  18. 18

    Linux 커널 관리자의 개발 지점에서 최신 Linux 커널의 코드를 다운로드하는 방법은 무엇입니까?

  19. 19

    Linux 프로세스의 가상 메모리 공간에서 커널 부분을 사용하는 용도는 무엇입니까?

  20. 20

    Linux 프로세스의 가상 메모리 공간에서 커널 부분을 사용하는 용도는 무엇입니까?

  21. 21

    OSX의 커널 공간에서 uuid.h?

  22. 22

    Linux 커널 충돌 보고서에서 "(OF)"또는 "(OF +)"의 의미

  23. 23

    C-Linux는 커널 모드에서 사운드 생성

  24. 24

    Linux 커널 내부의 C func 서명 : include / linux / sched.h

  25. 25

    Linux 커널에 종속되는 NFS의 로컬 파일 잠금

  26. 26

    고급 OOP에서 Linux 커널 프로그래머로 변환

  27. 27

    Linux 커널 코드에서 사용하는 정적 구조체

  28. 28

    Linux 커널에서 새 코드 추가 및 컴파일

  29. 29

    GDB가없는 보드에서 Linux 커널 디버그

뜨겁다태그

보관