Embedded system design often requires not only an understanding of the hardware but also of how the software affects and interacts with it. Designing hardware requires a certain engineering paradigm that can be a complete polar opposite of designing software. When transitioning from hardware design to include software design, there are ten software tips that … Continue reading 10 Software Tips for Hardware Engineers
Month: April 2013
Pointer Arrays – A Timer Driver Part 2
There are many advantages to using configuration tables to initialize an MCU’s registers. The most prevalent is that a configuration table displays the peripheral module as a channel with its entire configuration values explicitly defined. From a simple glance at a configuration table, an engineer can tell that timer one is setup for one millisecond … Continue reading Pointer Arrays – A Timer Driver Part 2
Pointer Arrays – A Timer Driver Part 1
Pointer arrays are a useful tool for mapping peripheral registers to a driver. There are many advantages to using pointer arrays such as simplified initializations and the ability to generate a configuration table which promotes code reuse. Timer modules are one of the fundamental peripherals that are used in every embedded application. Timers are used … Continue reading Pointer Arrays – A Timer Driver Part 1
Time Is of the Essence
Since the dawn of human consciousness, mankind has contemplated and struggled to understand the true nature of time. Wikipedia defines time as “a dimension in which events can be ordered from the past through the present into the future, and also the measure of durations of events and the intervals between them.” Physicists have discovered … Continue reading Time Is of the Essence
Using the Static Keyword in C
There are many topics in the C language that often confuse developers but the use of the static keyword seems to be one of the more common. One of the points of confusion is how static affects variables that are local and variables that are global. In each instance the static keyword has a different … Continue reading Using the Static Keyword in C
Creating Configuration Tables to initialize Peripherals
Microcontroller peripherals can be memory mapped using pointer arrays as demonstrated in the previous post. This method allows the peripheral to be viewed as a collection of channels that can be configured through an index in a loop. By taking this generic approach to memory mapping, a technique is needed to control exactly what is … Continue reading Creating Configuration Tables to initialize Peripherals
A few pointers – Part 3
The previous two posts have been exploring the fundamentals of using pointers from the basics of declaring a pointer to the more complex notation of manipulating pointers. An examination of how arrays and pointers behave in similar fashions and the types of operators that can be used to manipulate them was presented. It is now … Continue reading A few pointers – Part 3
A few pointers – Part 2
In part one of this series the basics of what a pointer is and how to declare one was examined in detail. It is now time to examine how pointers work when dealing with slightly more complex variables such as arrays and structures. It is far more efficient to pass the memory location around an … Continue reading A few pointers – Part 2