# c-coding

Published articles for c-coding.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Agnostic Build System: Powertrain build

DevFeed: [Agnostic Build System: Powertrain build](<https://devfeed.tech/articles/agnostic-build-system-powertrain-build-28866.md>)

Original publisher: [Read original article](<https://medium.com/volvo-cars-engineering/agnostic-build-system-powertrain-build-53cb007dfa7f?source=rss----4eed8113139---4>)

Author: Johannes Foufas

Published: 2024-06-18T09:48:37Z

Content type: release

Language: en

Sources: [Volvo Cars](<https://devfeed.tech/sources/volvo-cars-engineering-medium.md>)

Topics: [Build tool](<https://devfeed.tech/topics/build-tool.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>), [Unit testing](<https://devfeed.tech/topics/unit-testing.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>), [POSIX](<https://devfeed.tech/topics/posix.md>)

Tags: [automotive-software](<https://devfeed.tech/tags/automotive-software.md>), [autosar](<https://devfeed.tech/tags/autosar.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [c-coding](<https://devfeed.tech/tags/c-coding.md>), [ci](<https://devfeed.tech/tags/ci.md>), [config](<https://devfeed.tech/tags/config.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-software-development](<https://devfeed.tech/tags/embedded-software-development.md>), [in-the-loop](<https://devfeed.tech/tags/in-the-loop.md>), [json](<https://devfeed.tech/tags/json.md>), [opendev](<https://devfeed.tech/tags/opendev.md>), [python](<https://devfeed.tech/tags/python.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Volvo Cars' Powertrain Build is a Python system for building embedded software across Posix targets and ECUs, supporting Software-in-the-Loop testing and Zuul CI. Projects use JSON project, base, and unit configurations; unit lists specify execution order within scheduling rasters. A typical workflow generates code from a Simulink model, builds the project, inspects generated artifacts, then builds a SIL binary and writes unit and smoke tests. The system uses C preprocessor directives in TargetLink models, supports variable classes for memory placement, and checks signal consistency to flag produced signals with no consumers or deleted signals still in use. Schedulers are not included, though the excerpt says they could be added. Volvo says it open-sourced the project because it remained useful for electric-car development and to enable collaboration.

### Source excerpt

Powering Volvo Cars' Software Builds We are thrilled to announce the release of the Volvo Cars Powertrain Build project, now available on OpenDev! As a build system tailored for embedded software development using DSpace Target Link or Mathworks Embedded coder, this project is set to improve the way we as automotive embedded engineers handle our code bases. The idea is to make it easy to move between different targets, enable Software in the Loop (SIL) testing, and streamline our continuous integration (CI) processes. Powertrain build offers to efficiently move embedded source code between different embedded targets, both Posix based and old school embedded ECU's. This build system does what AUTOSAR never did, and is a tool that prepares us for the future of the car OS. Check out the article below to learn more about AUTOSAR: The reality of AUTOSAR and the way forward Our Powertrain Build project is designed to work harmoniously with the Zuul CI system. This ensures that all code changes are automatically tested and validated, providing continuous feedback to developers and maintaining the integrity of our codebase. What is it? The build system is written in Python for ease of use and flexibility, and these are the build options. py -3.10 pybuild.wrapper --build ABC_123 Projects are defined in .json using Project, base and Unit configs. The project config file contains project specific configuration settings and references to other configuration files. The base config file shares the same structure as the project config file and can be used for non project-specific configuration settings and default values, these could for instance be diagnostic core dummy file names. The units config file contains information about included software units and scheduling rasters. The software units are executed in the order they are defined within each time raster definition. { "SampleTimes": { "VcExt10ms": 0.01 }, "VcExt10ms": [ "VcDebug", "VcCarCfg", ] } Schedulers are not include