Continuous Integration for Embedded Software with Modular Firmware Architecture

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Abstract: Continuous Integration (CI) techniques are widely adopted in web and application development but have received limited attention in the embedded software domain. This thesis investigates the application of CI techniques in embedded software development through a case study at Cobolt AB, a company specializing in optoelectronics. The study aims to identify suitable CI techniques, assess implementation efforts, and evaluate the impact of CI adoption in this domain. A CI service is implemented using Jenkins as the automation server, following an iterative development and deployment process. The service incorporates multi-target compilation, automated unit testing, test reporting, visual CI feedback, and trunk-based development. These techniques prove effective for embedded software with a modular firmware architecture. However, automated system testing encounters limitations due to the need for manual interaction with hardware targets. Challenges encountered during implementation, such as learning CI tools, managing build tool dependencies, and addressing manual input requirements for system testing, are overcome through iterative implementation, distributed build architecture, and selective test automation. Developers’ resistance to CI adoption diminishes as they experience the positive impact of the CI service. CI adoption in the embedded domain brings benefits such as fast bug detection, increased developer motivation, higher confidence in code quality, and encouragement for standardization n. No noticeable negative impacts are observed. Future research should focus on integrating hardware-in-the-loop simulation systems for comprehensive automated system testing, exploring validation on multiple hardware targets, and studying the vertical scaling capabilities of distributed build architectures with Jenkins.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)