Between starting my first job out of school in the industry and being in the midst of a global pandemic, my first year at DISTek Integration was certainly one that anyone in the same position would remember. With DISTek being the first full-time embedded software industry position I have held, I was quite excited to get started, but felt a little nervous, as this was a new step in my professional career.
Whether you’re beginning your career or looking to become more proficient in embedded software and systems, there are plenty of useful resources to help you. With over 25 years of embedded programming experience here at DISTek, I thought I'd take a few minutes and share some practical tips to enhance your skills.
If you’re a regular reader of this blog, then you probably know a lot of about the areas that DISTek works within. Our expertise ranges across the off-highway vehicle industry (including agriculture, construction, and forestry) with engineers that specialize in a variety of disciplines. Out of convenience, we typically group these disciplines into three big areas (“embedded software”, “automation and test”, and “modeling and simulation”), but the reality is that we do all kinds of projects that cross-over between these disciplines.
As a student you feel fortunate to have an opportunity to get an internship, but to get an amazing internship, such as DISTek, is a true blessing. DISTek is the ultimate playground for embedded systems programming nerds that love manipulating hardware through software and who relish at the thought that their work will eventually end up on a microcontroller of an agricultural or off-road vehicle. To my delight, within an hour on my first day, I was assigned to a CAN bus project, based around ISO 11783, working side by side with full time employees on a real product intended for real customers. After receiving a binder full of ISO standards and a quick, but quite necessary, pep talk from my new coworkers I was set to start programming… or so I thought.
In recent years Hardware-In-The-Loop (HIL) testing has become a standard part of the embedded software development process. Two trends in the embedded software development world, reduced time to market and an increase in complexity has created the need for better, more dynamic test platforms. HIL platforms provide a way to test the embedded software of a microcontroller in a real time, accurate way prior to integration on the final system.
Recently I was working on some embedded software that someone else wrote. I needed to add some new functionality to the code, and I was working through how the existing code was working. In particular, the software was parsing a file, and the previous developer had done a good job of sending out diagnostic messages to the terminal, and the code was parsing a line of the file as a bad record.
Well as a good little developer, the first thing I did was
While the Google Test framework is designed for C++ it can be used to create a framework for C unit testing. Reference the Google Test documentation for more details on the capabilities of Google Test.
These framework files are included in any C unit test project.
•A header file to define macros to interface from C++ to C – gtest_c.h
•A header file to provide C interfaces to the Google Test comparison functions – Gtest_helper.h.
•A helper file to interface Google Test comparison function to C – Gtest_helper.cc