RTOS and middleware |
| The functionality and usefulness of an embedded application can improve significantly by the addition of communication and/or an operating system. Here you will find useful information by subject experts. |
| |
Small, smaller, smallest—RF communication protocols for low-power wireless systems |
With the ability to connect up to 65,000 nodes in a network, the ZigBee® protocol is naturally an attractive choice for multi node low-power wireless systems—battery-operated systems that communicate over a short or long distance via a radio frequency. But there are alternatives. This article tries to explain how IEEE 802.15.4, ZigBee and other protocols relate to each other. Click to continue... |
| |
Inter-Task Synchronization Mechanisms in IAR PowerPac |
To increase efficiency, an embedded RTOS application is always divided into multiple concurrent tasks. Usually, a program coordinates two or more of the tasks, an activity which is called inter-task synchronization.
This article explains why inter-task synchronization is needed and introduces the synchronization services provided by IAR PowerPac Kernel. In addition, an example illustrates how these mechanisms can solve different problems. Click to continue... |
| |
RTOS Basics |
Designing applications for an embedded application is almost always challenging, to say the least. One way to decrease the complexity of your application is to use a task-oriented design and divide a project into different modules (or tasks). Each module is then responsible for some part of the application. With such a system you would like to be able to specify that some modules (or tasks) are more important than others. That is, some tasks have real-time requirements. They have to respond quickly and correctly. If your system employs a professional RTOS, features that prioritize tasks are already part of the package. In addition to task prioritization, a clean and well-tested API is included that eases communicate between different tasks. Click to continue... |
| |
Achieving TCP/IP performance in embedded systems |
Often developers believe that since a communication protocol stack is called a TCP/IP stack, porting it to an embedded target provides the target with all TCP/IP functionalities and performance. This is far from true. A TCP/IP stack requires such resources as sockets and buffers to achieve its goal. These resources, however, consume RAM—a scarce resource on an embedded target. Deprived of sufficient resources, a TCP/IP stack will not work better than an RS-232 connection. Click to continue... |
| |
Priority inversion |
In some cases when using a system with multiple tasks running in parallel, a low priority task can cause a high priority task to be halted.
In systems where different tasks need exclusive access to a resource, priority inversion can occur. This is a phenomenon where a low priority task gets to run and starts to use a resource with exclusive access. If a higher priority task needs the same resource it halts until the low priority task has released the resource. This would effectively give the high priority task a priority level beneath the low priority task. Should medium priority tasks try to run, they can run as if they have a higher priority than the high priority task. This is Priority inversion. Click to continue... |
| |