Key features of the CMX-RTX™ for dsPIC30F include:
This product is no longer available for sale.
In some cases, well-structured linear programming is sufficient for a product. However, in most cases, programmers appreciate not having to worry about structuring their code to perform all necessary tasks in a timely manner. CMX-RTX™ helps by allowing tasks (pieces of code that do specific duties) to run quasi-concurrently. That is, tasks seem to run at the same time - doing many specific jobs simultaneously.
CMX-RTX takes the headaches out of real-time programming. The software lets the programmer concentrate on the overall application while it takes care of the details. CMX-RTX lets you finish projects faster and more efficiently.
Some real-time operating systems offer only cooperative scheduling, which means that the running task is required to call the scheduler to perform a task switch. Others offer time slicing in which each task runs for a given period of time and then must switch tasks, regardless of conditions. Also others claim to be fully preemptive, yet they do not allow any interrupt to cause a preemption. All of these models will fail at one point or another.
CMX-RTX allows a task of higher priority that is able to run (whether starting or resuming) to preempt the running task. The scheduler saves the context of the running (lower priority) task and restores the context of the higher priority task so that it is now running. A truly preemptive RTOS allows interrupts to cause an immediate task switch, which means that the interrupts now have the added ability of using the RTOS's functions.
CMX-RTX Specifications for dsPIC® DSC Products
Flash | 3696 bytes |
All CMX Functions: | 936 bytes |
CMX Initialize Module: | 645 bytes |
CMX Assembly Module (scheduler): | 28 bytes |
RAM, Each Task Control Block: | 137 cycles (resuming a task) |
Min. Context Switch: | 92 cycles (starting a task) |
CMX Functions are contained in a library, thus reducing code size, if not referenced