Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
OSwhatever wrote:There is also the option to use virtualization to have one "user OS" and one RTOS running on the same HW. This solution has already been suggested by many and companies already sell products for these kind of systems (usually Linux together with some RTOS).
Why is there a need for virtualization, and how could a virtualized RTOS environment guarantee that deadlines are met?
It's just a way of adding RTOS capability to an existing system without real time capability. For you it would probably be more work than adding it to the existing OS. I just wanted to mention this possibility.
The need for virtualization in these cases would be if a certain peripheral would be developed in a certain RTOS environment, instead of writing a new driver for it for every OS, where conditions are very different, the "user OS" would instead use the virtualized RTOS and pass messages between the "virtualized driver" and the user OS. This requires that much of the HW resources are fully virtualized towards the OSes, interrupts as the obvious example. While this method is interesting from a technological point of view, I wonder how much momentum it will have in the real world.
I've decided to use an PIC18F2423 controller for this project instead. It contains a 12-bit AD-converter with 11 channels, and thus can easily handle the required measurements. It also contains a hardware multiplier and a serial port which can be used to interface to a host. The big issue, however, is how to connect this to a host PC without adding a new PC that draws 10-15W from the generated power. The thing is, the wind generator and solar panel is placed on top of a small house that doesn't have a PC. What is available is a power line (with extra wires for 24 volt and a default load), and a 4-pair twisted pair ethernet cable. The ethernet cable is sometimes used with a portable PC, and is connected to a 100MB switch. The thing is, 100MB ethernet only uses 2 pairs, and have 2 unused pairs. These 2 pairs could be used for a RS422 connection to my main controller. This would solve the problem with data-collection without adding another host computer.
The real-time test might instead be run on the main controller, since it today has problems with parallell communications with a custom-made card. The ISRs aren't handled fast enough in this environment. It would also be nice to upgrade it to something more modern, like a dual-core Atom.