ISA 카드 I/O 쓰기 모니터링

ISA 카드 I/O 쓰기 모니터링

저는 아날로그/디지털 I/O 카드를 사용합니다(디지털 멀티미터-16-ATDiamond Systems의 PC/104(ISA 동급) 카드입니다.

문제는 시작 시 0V에 있지만 시작 중 약 10초 후에 5V(논리 1)가 되는 주소 BASE + 3에 8개의 디지털 출력이 있다는 것입니다. 다른 커널 드라이버나 프로그램 등이 해당 주소에 쓰고 있는 것 같습니다. 문제를 추적하기 위해 특정 주소에 대한 쓰기를 "모니터링"하는 방법이 있습니까?

참고: 기본 주소는 0x300이고 Linux의 총 부팅 시간은 약 45초이므로 내 프로그램에는 관련이 없습니다.

데이터시트에서:

기본 + 3 쓰기 디지털 출력 포트

        +-------+-------+-------+-------+-------+-------+-------+-------+
Bit No. |     7 |     6 |     5 |     4 |     3 |     2 |     1 |     0 |
        +-------+-------+-------+-------+-------+-------+-------+-------+
Name    | DOUT7 | DOUT6 | DOUT5 | DOUT4 | DOUT3 | DOUT2 | DOUT1 | DOUT0 |
        +-------+-------+-------+-------+-------+-------+-------+-------+

이러한 핀은 I/O 커넥터 J3에 있는 동일한 이름의 핀에 직접적으로 해당합니다.

전원을 켜거나 재설정하면 출력 레지스터가 지워집니다.

답변1

특정 주소를 조사하지 않도록 커널에 지시할 수 있습니다. 남자들에게서시작 매개변수:

 reserve=iobase,extent[,iobase,extent]...

예약 시작 시간 매개변수는 프로브해서는 안 되는 I/O 포트 영역을 지정합니다. 장치 드라이버는 다른 부팅 매개변수가 명시적으로 지정하지 않는 한 예약된 영역을 탐색하지 않습니다.

 reserve=0x300,32  blah=0x300

"blah" 드라이버를 제외한 모든 장치 드라이버가 0x300-0x31f를 검색하지 못하도록 차단합니다.

물론, 부트로더(예: grub)가 탐색 중일 가능성은 여전히 ​​있습니다.

관련 정보