At Barr Group, our mission is to help as many embedded systems engineers as possible make their products safer, more reliable and more secure. In addition to providing Training, Consulting, and Product Development services, we encourage our engineers to share their technical expertise by writing and teaching. We hope that you will learn something from these free how-to articles. Please respect the copyright notices at the bottom of each page.
If you've got a lot of real-time tasks and tight deadlines, what's the best way to prioritize them? A technique called RMA guides the way.
The scheduling algorithm you choose depends on your goals. Different algorithms yield different results. Let's suppose you're given ten jobs and each will take a day to finish. In ten days, you will have all of them done. But what if one or more has a deadline? If the ninth task given to you has a deadline in three days, then doing the tasks in the order you receive them will cause you to miss that deadline.
Posted: Tue, 2016-10-25 11:05 - webmaster
by Andrew Girson
In the most recent DDoS attack, IoT devices such as webcams and DVRs were used to launch an attack on domain service provider, Dyn. The enormity of this event brings to light the importance of securing all devices capable of connecting to the internet. Developers cannot control what viruses or malware may try to attack their systems. However, developers do have a very profound impact on how resilient their products are in the event of an attack.
Posted: Tue, 2016-06-14 20:53 - webmaster
Within months of the 1994 launch of DirecTV's national satellite TV service in the U.S. the broadcast system was hacked. The company's first-generation smart card-based security could subsequently be modified or replaced by individuals desiring to erase records of pay-per-view purchases or enable the unlawful interception of channels they hadn't paid for.
Finding and killing latent bugs in embedded software is a difficult business. Heroic efforts and expensive tools are often required to trace backward from an observed crash, hang, or other unplanned run-time behavior to the root cause. In the worst case scenario, the root cause damages the code or data in such a subtle way that the system still appears to work fine or mostly fine-for some time before the malfunction.
Finding and killing latent bugs in embedded software is a difficult business. Heroic efforts and expensive tools are often required to trace backward from an observed crash, hang, or other unplanned run-time behavior to the root cause. In the worst case scenario, the root cause damages the code or data in such a subtle way that the system still appears to work fine -or mostly fine- for some time before the malfunction.
Posted: Wed, 2016-05-04 15:48 - Niall Murphy
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.
Every program uses random access memory (RAM), but the ways
in which that memory is divided among the needy parts of the system
varies widely. This article surveys the options available in hopes that
the reader will be better equipped to choose an approach for a given
Posted: Wed, 2016-05-04 14:27 - Niall Murphy
Unexpected power loss and software bugs can undermine the reliability of non-volatile data. Fortunately, there are various ways to make non-volatile data resilient to such corruption.
Posted: Wed, 2016-05-04 14:24 - Niall Murphy
Product usability problems require the engineer to take off his engineering hat
and think more like a user.
Posted: Wed, 2016-05-04 14:21 - Niall Murphy
Proper timing in user interfaces often has more to do with the user's
perception than with the actual passage of time.
Posted: Wed, 2016-05-04 14:18 - Niall Murphy
Understanding software and hardware bugs in other embedded systems can help
you identify, diagnose, and fix bugs in your own.