Port of NuttX to x86

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
bifferos
Posts: 13
Joined: Fri Aug 27, 2010 7:29 am

Port of NuttX to x86

Post by bifferos »

I've tried with the help of the author, (who is not an x86 expert) to port this to x86. We haven't used any of the MMU features, just setup GDT/IDT and a timer interrupt with the help of the James Molloy tutorials. 99% of the work has been done in terms of setting everything up, but the timer interrupt only seems to fire once and that's it. If anyone wants to help they'd be more than welcome but for the moment we're scratching our heads as to what the problem may be.

For NuttX features please checkout http://nuttx.sourceforge.net/. In brief:

- C microkernel
- Preemptable
- (Some) Posix compatibility
- BSD License
- In-memory file system
- Character devices and block drivers
- FAT 12/16/32 support
- Networking
- BSD socket layer
- Bash-like shell.

thanks,
Biff.
davidv1992
Member
Member
Posts: 223
Joined: Thu Jul 05, 2007 8:58 am

Re: Port of NuttX to x86

Post by davidv1992 »

Does the interrupt handler send an end of interrupt command to the PIC when it's done? your timer interrupt problem sounds like that might not be the case.
bifferos
Posts: 13
Joined: Fri Aug 27, 2010 7:29 am

Re: Port of NuttX to x86

Post by bifferos »

davidv1992 wrote:Does the interrupt handler send an end of interrupt command to the PIC when it's done?
It certainly seems so:
http://nuttx.svn.sourceforge.net/viewvc ... iew=markup

cheers,
Biff.
Tosi
Member
Member
Posts: 255
Joined: Tue Jun 15, 2010 9:27 am
Location: Flyover State, United States
Contact:

Re: Port of NuttX to x86

Post by Tosi »

I actually had the same problem with the timer in my OS. The problem was that I was masking flags incorrectly and basically sending the incorrect values to the PIT. The end result was that timer 0 was initialized to a mode that required sending the reload value on each interrupt, instead of the rate generator or square wave I desired.

In short, step through your code and make sure the values you are sending to whatever timer to initialize it are correct.
If the timer requires any special commands on every interrupt, make sure to do this.
Always make sure you are sending an EOI as well, and that you properly configured the PIC.
Post Reply