초기 질문

초기 질문

초기 질문

저는 NXP 칩 SC16IS740을 임베디드 Linux 시스템(메인라인 커널 v4.8)의 주변 장치로 사용하고 있습니다. 사용 사례는 매우 간단합니다. 지속적으로 전송되는 uart 라인(9600 8n1)을 칩 드라이버를 통해 읽어야 합니다.

지금까지 sc16is7xx커널 빌드에 드라이버 모듈을 포함시켰으며 장치를 /dev/ttySC0.

그러나 지금은 직렬 포트를 읽을 수 없으며 올바른 구성이 누락된 것 같습니다. 나는 단순히 시도했다

cat /dev/ttySC0

그리고

minicom -D /dev/ttySC0 -b 9600 -8

장치 디렉터리(/sys/class/tty/ttySC0/)에는 읽기 전용 파일만 있고 드라이버 사용 방법에 대한 문서를 찾지 못했기 때문에 아이디어가 부족합니다.

이 드라이버를 구성하는 올바른 방법은 무엇입니까?


편집기: 구성, 로깅 및 측정

구성

다음과 같이 커널 레시피 구성에 모듈을 포함시켰습니다.

CONFIG_SERIAL_SC16IS7XX_CORE=m
CONFIG_SERIAL_SC16IS7XX=m
CONFIG_SERIAL_SC16IS7XX_I2C=y

모듈을 로드/언로드하려면(장치가 로드/언로드되도록 함 /dev/ttySC0) 다음을 사용합니다.

modprobe [-r] sc16is7xx

통나무

다음과 같은 메시지에서 결과를 찾으세요 dmesg.sc16is7

[ 5592.212905] [<c0379a14>] (uart_get_baud_rate) from [<bf07cf84>] (sc16is7xx_set_termios+0x1c4/0x374 [sc16is7xx])
[ 5592.213045] [<bf07cdc0>] (sc16is7xx_set_termios [sc16is7xx]) from [<c0379f04>] (uart_change_speed+0x5c/0x124)

이 두 메시지는 다음을 수행할 때마다 정확하게 기록됩니다.

  • /dev/ttySC0minicom연결 사용 , 열기 또는 닫기cat
  • 전송 속도 또는 기타 직렬 포트 설정 변경minicom

측정

오실로스코프를 사용하여 측정(기본 논리 분석 포함)을 수행하면 다음을 수행할 때 칩과 통신하는 I2C 라인을 볼 수 있습니다.

  • /dev/ttySC0다음과의 연결을 열거나 닫습니다.minicom
  • 전송 속도 또는 기타 직렬 포트 설정 변경minicom

그렇지 않으면 회선에서 전혀 통신이 이루어지지 않습니다. 현재 전송된 바이트를 분석하고 데이터 테이블을 사용하여 확인하려고 합니다. 즉, 어떻게든 드라이버를 디버그하려고 합니다.

관련 정보