Selecting the right emulator for the job can be challenging. Many development teams try to either skimp by using the emulator included with low cost development boards or purchase an emulator that is produced by their toolchain vendor. For example, teams using IAR Workbench may purchase an IAR I-Jet which integrates well and provides tools … Continue reading Tools – Selecting the right emulator
Year: 2015
Understanding volatile access warnings
Every now and then, an interesting compiler warning will pop that make developers scratch their head in wonder. One such warning is the ” undefined behavior: the order of volatile accesses is undefined in this statement” An example of this warning pops up in a FreeRTOS port using the IAR Workbench toolchain in a statement … Continue reading Understanding volatile access warnings
Embedded Basics – 10 Qualities of Portable Firmware
Portable Firmware …. is modular is loosely coupled has high cohesion is ANSI-C compliant has a clean interface has a Hardware Abstraction Layer (HAL) is readable and maintainable is simple uses encapsulation and abstract data types is well documented How well do the characteristics of your software match the qualities of portable firmware?
Tips and Tricks – 7 Tips for creating and using portable types
Writing software that is reusable, portable and will stand the test of time is critical to embedded software developers. Below are 7 tips for creating and using portable types in C. Tip #1 – Use stdint.h The use of built-in data types can result in portability issues between different compilers. The C standard does not specify … Continue reading Tips and Tricks – 7 Tips for creating and using portable types
Tools – Kinetis-L Freedom Boards
Less than a decade ago it was difficult for an engineer to get ahold of a development board without doing some serious damage to their pocketbook. Development boards were produced in small quantities and were usually big and bulky. It was not uncommon to have to shell out at a minimum $500 for a decent … Continue reading Tools – Kinetis-L Freedom Boards
Using Conditional Complexity to Test Embedded Software
One of the areas of embedded software development that engineers seem to struggle with is testing. Engineers often get excited about the design and implementation phases but when it comes to proving that the system works, efforts and or interest really start to wane. This is completely understandable considering the time and effort that can … Continue reading Using Conditional Complexity to Test Embedded Software
Embedded Basics – Squirrel
Embedded software developers are familiar with C/C++ but with the Internet of Things, knowing just these languages is not going to be enough. Learning some Python and/or Java will help round the language skills but another language a developer may want to also consider is Squirrel. Squirrel syntax is similar to C and Java … Continue reading Embedded Basics – Squirrel
Tips and Tricks – Offload the I in IoT
Embedded software developers have a lot on their plate. A developer has to be an expert in hardware, sensors, communication protocols, low level drivers, HAL’s API’s, object oriented design and a master of programming languages. Unfortunately embedded engineers must also now know internet protocols, web design, tcp/ip stacks, encryption and security. The list is quickly … Continue reading Tips and Tricks – Offload the I in IoT
Tools – The April Board
The April board is a break-out for the Imp Developer module. The April module provides the ability to power the Imp module using a standard USB-Mini cable, an optional battery connector, or through a standard .100 header. The April board also has an on-board 3.3V regulator that can with stand an input up to 17 … Continue reading Tools – The April Board
CEC – Driver Design Patterns and the Internet
Course Overview: Leveraging design patterns is a critical technique to quickly and efficiently develop an embedded system. This course will explore driver design patterns through developing low-level drivers for the STM32L0 Nucleo board. We will explore the interfacing of common sensors to the development board, in addition to connecting it to the Internet as a … Continue reading CEC – Driver Design Patterns and the Internet