init_IRQ()의 PIT 초기화 부분에서 궁금한게 있습니다.
글쓴이: darma3069 / 작성시간: 월, 2003/03/17 - 5:45오후
/arch/i386/kernel/i8259.c에 있는
init_IRQ() 함수 중
outb_p(0x34, 0x43) //binary, modes, LSB/ MSB ch0 outb_p(LATCH&0xff, 0x40) //LSB oubt_p(LATCH>>8, 0x40) //MSB
이 3 라인이 이해가 안 됩니다.
이리저리 찾아보니깐 LATCH값이 11392이고 HZ가 100이라고 하는데 도대체
무슨 말인지 이 코드의 주석은 무얼 말하는건지 잘 모르겠습니다.
이렇게 하면 결국 8비트 0x40 I/O port에 연속적으로 2byte를 보내고 100Hz의 타이머 인터럽트가 발생한다고 하는데 왜 그런지 고수님들의 조언을 간곡히
부탁드립니다. 인터넷에 뒤져봐도 그 말이 그 말인 것 같고...
그리고 각 어셈블리 코드안에서 인자값의 이동에 따라 실질적으로 값이 어떻게
옮겨가는지도 설명해주시면 고맙겠습니다.
그럼 오늘도 좋은 하루 되십시오...
Forums:
타이머 설정...
다음 site를 참고하십시오.
www.tldp.org/HOWTO/KernelAnalysis-HOWTO-6.html
10ms 타이머를 설정하는 부분이군요.
포트 설정은 ...
8254 또는 8253 칩 데이터 시트를 참고하십시오.
0x43, 0x40, 0x40 포트를 순서대로 쓰고 있다는 것을 알면
데이터 시트에서 답을 찾을 수 있습니다.
^^;
댓글 달기