Hi all,
I have some newbie questions regarding embedded Linux targeted a real time application.
We are on my job considering the use of Linux in the next generation of our product line. We are looking into either a ordinary Linux port (Montavista) or a Real Time port of Linux (Montavista or Wind River). My questions are:
Will we still be able to write specific program code for some of the hardware interrupts which still operates completely independant of the linux kernel? For instance a DMA interrupt that needs real time handling will it be possible for this interrupt to immediately "de- schedule" the Linux kernel and service the DMA ISR and then return to the linux kernel, without the Linux kernel ever knowing that this interrupt happened?
If this is possible and no problem to implement - what is the use and idea of a Real Time Linux? As I understand the Real Timelinux kernel allows for low interrupt latency and preemptive behavior. Also it implements a defined interface to the Linux application via special FIFOs.
I had this discussion with one of my coworkers and I insisted on that this solution would not be a good Idea since the Linux kernel operates and handles the CPU hardware such as the interrupt controller. Writing specific code outside the the Linux address space accessing some sort of shared memory (for data transfer) and shared hardware resources such as the interrupt controller would in my naive opinion introduce some conflicts and would require some "tweaking" or modifications of the Linux kernel? - Is this totally of track and if so....why?
Another question comes to my mind. If an ordinary Linux distribution is optimized for soft real time applications how is the hardware of for example a 1Gbit Ethernet mac then serviced ? On high loads holding relevant packets the Linux kernel (or device driver ?) must service the MAC hardware very often to offload the data and prevent loss of packets and data - How is this done fast enough in in a ordinary Linux?
I hope I'm not talking totally gibberish here. I apologize for the eventually stupid questions - but hope that some of you experienced Linux guys can help clearing these questions for me.
Best Regards.
-- Morten M. J - (Linux nOOb).