real-mode 에서 timer interrupt 를 구현하려 합니다. I/O address 에 관한 정보와, 간단한 예제소스를 봤으면하는데 영 자료찾기가 껄끄럽네요 ^^ 해보신 분의 명쾌한 답변 기다립니다.
컴파일러는 무엇을 사용하실 예정인가요?
PC레벨이라고 생각하고,
#define BD_I8254_CLK 1193180 /* 1.193 Mhz */ #define TIMER_RATE 1000 /* 1ms timer */
long tickrate;
outb(0x43, 0x34); tickrate = BD_I8254_CLK / TIMER_RATE; outb(0x40, (char)tickrate); outb(0x40, (char)(tickrate >> 8));
이렇게 하고 인터럽트 벡터만 설치하면 되겠네요.
냉무
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
컴파일러는 무엇을 사용하실 예정인가요?
컴파일러는 무엇을 사용하실 예정인가요?
대충 이렇게 하시면 됩니다.
PC레벨이라고 생각하고,
#define BD_I8254_CLK 1193180 /* 1.193 Mhz */
#define TIMER_RATE 1000 /* 1ms timer */
long tickrate;
outb(0x43, 0x34);
tickrate = BD_I8254_CLK / TIMER_RATE;
outb(0x40, (char)tickrate);
outb(0x40, (char)(tickrate >> 8));
이렇게 하고 인터럽트 벡터만 설치하면 되겠네요.
아, 위의 이모티콘은 숫자 8입니다.
냉무
댓글 달기