USB 장치 드라이버 [닫기]

USB 장치 드라이버 [닫기]

STM32h7용 USB 장치 드라이버를 작성하고 Struct gpio_chip 구조를 사용하여 장치를 GPIO로 등록했습니다. 내 질문은 여기에 있습니다 :

NUCLEO-H743ZI 보드의 USB 주변 장치를 QUBE-MX를 통해 통신하는 CUSTUM HID CLASs로 구성했습니다. 이 클래스에서는 Linux USB 드라이버와 장치의 USB 포트 간의 통신이 수행된다는 의미입니다. 이런 종류의 의사소통에도 그게 사실인가요?

다음을 사용하여 GPIO(예: gpio496)를 커널 공간으로 내보낼 때:

echo 496 > /sys/class/gpio

그럼 방향을 정하고 싶어

echo out > /sys/class/gpio/gpio496

프로세스가 종료되고 우분투가 중단되며 장치를 분리한 후 장치가 연결됩니다.

내 문제는 무엇입니까?여기에 이미지 설명을 입력하세요.

답변1

STM32h7용 USB 장치 드라이버를 작성하고 Struct gpio_chip 구조를 사용하여 장치를 GPIO로 등록했습니다. 내 질문은 여기에 있습니다 :

나는 당신이 커널 드라이버(.ko)를 작성했다고 가정합니다...그렇습니까?

echo 496 > /sys/class/gpio를 사용하여 GPIO(예: gpio496)를 커널 공간으로 내보낼 때 echo out > /sys/class/gpio/gpio496을 사용하여 방향을 설정하려고 합니다.

읽다이 문서, 당신 말이 맞는 것 같습니다.

프로세스가 종료되고 우분투가 중단되며 장치를 분리한 후 장치가 연결됩니다. 내 문제는 무엇입니까?

커널 패닉이나 커널 오류를 일으키는 장치 드라이버 코드의 버그일 수 있습니다. 자세한 내용을 확인/얻으려면 다음을 시도하십시오. 1. 텍스트 콘솔에서 직접 테스트를 시작합니다(ctrl-alt+F1이 작동해야 함). 커널이 콘솔에 오류를 덤프하므로 이를 볼 수 있습니다. 또는 2. 루트 ID를 사용하여 커널 로그를 터미널 창에 덤프합니다 cat /dev/kmsg.

2.는 몇 가지 요인에 따라 작동하지 않을 수 있습니다. 가능하다면 1.을 선호하세요.

답변2

내 문제는 대량 데이터를 전송하기 위해 인터럽트 끝점을 사용하고 있다는 것입니다.

관련 정보