Blog

The Complexities of Embedded Programming

We use embedded systems every day. From ATM’s, cell phones, printers, and videogame consoles, embedded systems are ubiquitous in the modern world. As simple as they look on the outside, these technologies require a special set of programming skills to successfully develop and deploy. Embedded programming is at the heart of these technologies.

Technopedia defines embedded programming as, “A specific type of programming that supports the creation of consumer facing or business facing devices that don’t operate on traditional operating systems the way that full-scale laptop computers and mobile devices do. The idea of embedded programming is part of what drives the evolution of the digital appliances and equipment in today’s IT markets.”

For Class II and Class III medical devices, embedded programming is especially critical for the delivery of final product. Consider the sensors, monitors, and boards that control various patient diagnostic systems. Developing those products takes a unique combination of skills that many outsourced development companies may not possess.

Embedded programmers need skills far beyond simple code writing. They must be capable of reading schematics, have a detailed understanding of hardware, be able to write device drivers, implement networking protocols such as TCP/IP and UDP, be able to manage system resources, and typically develop these solutions in a resource-constrained environment. Becoming an expert in embedded programming does not happen overnight.

Embedded Programming tools are as important as the skills

Companies that purport to provide embedded programming expertise must not only have the skills, but also the equipment. A well furnished lab will include oscilloscopes, signal generators, logic analyzers, soldering stations, and power supplies for example. It is not enough just to have the tools. Businesses must continue to upgrade and update their tools to be current and capable.

Testing is critical, and often overlooked

Even with the right skills and tool. effective development of critical software begins and ends with a comprehensive testing and verification strategy that is well executed. Protocol testing is just the start of ensuring that no significant issues exist in the embedded programming prior to launch. Resolution, for example, leverages a 4-prong testing strategy prior to release. The strategy includes the following;

Protocol Testing — Protocol testing confirms that all the software requirements listed in the SRS and PRD have been implemented and function as expected.

Ad-Hoc testing — Resolution’s test engineers spend a significant amount of time trying to “break” the software by replicating the numerous unplanned paths that a customer may take.

Embedded systems are at the heart of many Class II and Class III medical devices. Resolution has made significant investments in staff and equipment to support the complexities of embedded programming. If you have an outsourced development program that requires the use of embedded systems, look for partners like Resolution who possess the knowledge, skills, tools and experience to make the project a success.