Quote:
Originally Posted by Greg McKaskle
I'm not on the RT team, but the reason I was given was that when they did the board support, the RTP introduced too much overhead for the I/O drivers. Until FRC, the only C programmers for the cRIO were the NI developers, so they kept it in kernel mode. At that time, all other users of the cRIO used LV.
Exposing the C/C++ interfaces and tools, going to RTP was evaluated, but there would be a lot of work and testing involved, and it would mess with the I/O rates of various drivers.
|
There are good reasons for staying in kernel space. I wasn't knocking NI's choices. But hey - if the students are running Java, how can isolating (just the students code) in an RTP slow things down too much? For example, the PID controller tasks could run in kernel context and share a memory region where the students code updated the operating parameters. This specific example would result in no performance penalty at all and errant student code code not crash the kernel or the NI infrastructure. I'm not a strong or gun-ho advocate but, strictly speaking, it is possible.
HTH