I am using an Advantech PCM-3356, which has an AMD i686 processor.
Currently, I can compile FreeRTOS using gcc under Linux and get grub
to load it onto the 686. I still need to set up the timer interrupt,
integrate the scheduler with the tick, etc. (This is the IA32 mode of operation.)
Is there any way I could get a copy of the Board Support Package (BSP)
for this board?
The Advantech in question is a current production industrial ruggedized
PC clone, and runs Linux Mint 17.2 with no problem. Any BSP which supports
IA32 mode on a standard PC-type computer should work.
The problem is that I can get swi to work just fine, but cannot get an IRQ 5 to fire.
The IRQ 5 is connected to an old-fashioned PC/104 bus and appears on the
8259 input pins (or their virtual equlvalent).
Three questions:
Is this thing using the PIC, the APIC, or something else?
I am using grub as the bootloader, which puts the cpu into flat IA32-bit mode, but which requires that I call the routine which does asm(“lidt”) before any interrupt service routine will run. Is this going to cause some kind of problem?
Do I have to change the interrupt vector location? If so, how do I do that?
I have read most of this, including the port.c. My question is, where does it put the vectors for the legacy interrupts (com1, com2, lpt1, etc?) I suspect that if I was to be sure about where exactly to put the vector, that would be half the problem solved.
I notice that, after grub has finished and after calling the port.c init stuff, the PIC registers contain non-zero mask bits, which implies that the PIC is being used. True?