Embedded Control Systems in Practice
An introduction to embedded control systems along with a practical example on the differences between open and closed loop systems.
How-to articles about designing software to meet hard deadlines.
An introduction to embedded control systems along with a practical example on the differences between open and closed loop systems.
This webinar examines best practices for assigning fixed priorities to a set of real-time operating systems (RTOS) tasks and interrupt service routines (ISRs). Viewers will learn how and why to use optimal methods to allow a critical set of tasks and interrupt service routines to meet all of their deadlines – even during transient overload periods. Lessons learned can be applied to the development of any priority-based preemptive RTOS, including real-time Linux.
If you've got a lot of real-time tasks and tight deadlines, what's the best way to prioritize them? Rate Monotonic Algorithm provides the optimal technique.
Whether you're using only static memory, a simple stack, or dynamic allocation on a heap, you have to proceed cautiously. Embedded programmers can't afford to ignore the risks inherent in memory utilization.
Rethinking basic programming techniques can avoid many of the problems that heap-based memory management poses for embedded real-time system designs.
As Internet connectivity advances, the transportation, automotive, medical device, smart grid and other industry sectors have become more dependent on embedded software. But is software reliable?
Many embedded systems have reliability, cost, and performance requirements that demand performance be designed into the system, from architecture to algorithms to data structures to coding guidelines.
As if debugging traditional PC/server software or even smartphone apps wasn't hard enough, debugging embedded software adds significant challenges.
What's the difference between a mutex and a semaphore? Misuse of these two distinct types of synchronization primitives can lead to difficult to debug defects with potentially severe consequences in safety-critical devices.
One of the biggest challenges when architecting an embedded system is partitioning the design into its hardware and software components, which must typically be decided early in the design of a product.
Welcome to the 21st century, where every device has at least one processor. But don't take for granted that these devices will do their intended jobs tirelessly and correctly, day in and day out, without fail.
With all the automation available today, it's easy for programmers to overlook costly overhead introduced into machine code by the compiler. Interrupt handlers are one key area worthy of a closer inspection.
Every commercial RTOS employs a priority-based preemptive scheduler. This despite the fact that real-time systems vary in their requirements and real-time scheduling doesn't have to be so uniform. Multitasking and meeting deadlines is certainly not a one-size-fits-all problem.
Controller Area Network (CAN) is the most widely-used automotive bus architecture. Here are some reasons why.
At peak, some automobiles contained up to three miles of cabling. To reduce the cost and weight of wiring and still allow ECUs to become more intelligent, new methods had to be found to reduce the amount of wiring. The CAN bus has since found application in other industries as well.
Most real-time operating systems employ preemptive schedulers. This primer on preemption also looks at the kind of multitasking it enables
In the market for a real-time operating system (RTOS)? This article provides an overview of RTOSes and how you can select the best one for your project.
When tasks share resources, as they often do/must, strange things can and will happen. Priority inversions can be particularly difficult to anticipate. A basic understanding of the problem is key.
To keep a watchdog timer from resetting your system, you've got to kick it regularly. But that's not all there is to watchdog science. We will examine the use and testing of a watchdog, as well as the integration of a watchdog into a multitasking environment.
Network processors are programmable chips like general purpose microprocessors, but are optimized for the packet processing required in network devices. But what are they good for and how do they work?