More embedded articles: shared code, low level device access, selecting an OS, and using non-volatile memory
I have almost completed the job of cataloging my articles that have been published at embedded.com Here are another four, which address some key development topics: the sharing of code between multiple threads of execution; accessing low level device registers in C; selecting an operating system; making use of non-volatile memory …
Share and share alike
To an old hand at writing embedded code, the idea of having parts of the software that are shared between execution threads is second nature. To someone new to the specialism it can be a hard concept to grasp. This article looks at how shared code is implemented and illustrates a couple of examples where it was a solution to an intractable problem.
Device registers in C
One of the key benefits of the C language, which is the reason that it is so popular for embedded applications, is that it is a high level, structured programming language, but has low level capabilities. The ability to write code that gets close to the hardware is essential and C provides this facility. This article looks at how C may be used to access registers in peripheral devices.
Selecting an operating system for an embedded application
In this article, the process of selecting an operating system for an embedded system is outlined and reviewed. Colin Walls of Mentor Graphics discusses whether or not you need to use an OS and if so, whether it will be a free, open source version, commercial, or a custom designed one. Then he drills down and looks at the pros and cons of various features you will need in the OS you have chosen.
Data storage in non-volatile memory
Although flash and other non-volatile memory technologies are widely used to implement embedded file systems, this may be too complex for some embedded applications. In many cases the memory may be most efficiently used as data structures which have been preinitialized. This approach requires some management of data integrity. This article introduces the challenges and offers some simple solutions to using NVRAM in a simple way.