Ultimate Embedded Firmware DevOps Infrastructure
Ultimate Embedded Firmware DevOps Infrastructure, available at $44.99, has an average rating of 4.05, with 7 lectures, based on 19 reviews, and has 241 subscribers.
You will learn about How to properly configure your gitlab repository for GitLab How to setup a CI process that works for embedded firmware development How to organize your files and integrity check your directory structure on CI How to generate beautiful documentation from your sources, config options and hardware descriptions How to add unit and integration testing with CMock to embedded project How to add simulation support to system test your embedded firmware against user requirements and run these on CI This course is ideal for individuals who are Embedded firmware engineers or Embedded software professionals or Team leaders and managers of embedded projects or Firmware developers It is particularly useful for Embedded firmware engineers or Embedded software professionals or Team leaders and managers of embedded projects or Firmware developers.
Enroll now: Ultimate Embedded Firmware DevOps Infrastructure
Summary
Title: Ultimate Embedded Firmware DevOps Infrastructure
Price: $44.99
Average Rating: 4.05
Number of Lectures: 7
Number of Published Lectures: 7
Number of Curriculum Items: 7
Number of Published Curriculum Objects: 7
Original Price: $27.99
Quality Status: approved
Status: Live
What You Will Learn
- How to properly configure your gitlab repository for GitLab
- How to setup a CI process that works for embedded firmware development
- How to organize your files and integrity check your directory structure on CI
- How to generate beautiful documentation from your sources, config options and hardware descriptions
- How to add unit and integration testing with CMock to embedded project
- How to add simulation support to system test your embedded firmware against user requirements and run these on CI
Who Should Attend
- Embedded firmware engineers
- Embedded software professionals
- Team leaders and managers of embedded projects
- Firmware developers
Target Audiences
- Embedded firmware engineers
- Embedded software professionals
- Team leaders and managers of embedded projects
- Firmware developers
This training helps you implement continuous delivery process for your firmware.
In a way, it is also a comprehensive “Zephyr RTOS Getting Started Guide”.
How is this different from existing getting started guide provided by Zephyr? It is aimed at your custom firmware application development in a custom repository outside of Zephyr – while zephyr guide focusing on getting started working ON zephyr – which is not what you are doing every day. So it’s a big difference in focus in this guide.
What is included
The training is divided into 6 parts:
-
Overview – a quick overview of the course – similar to this page.
-
Setting up repository – here we start from scratch and I show you how to configure the repository correctly.
-
Setting up GitLab CI – here we create a basic CI pipeline for our firmware repository that will allow us to run the whole build process automatically.
-
Directory Structure – we create a comprehensive directory structure that can accommodate for everything we may add to our project later.
-
Documentation Generation – here we add a documentation generator form Zephyr that will generate good looking reference manual for our project.
-
Test Infrastructure – here we build out an automated test infrastructure using renode and CMock.
-
Release Generation – here we generate a release with all files included – docs, software bill of materials and firmware.
Setting up repository
In this section we set up a basic repository from scratch. The advantage of doing this from scratch is that you get to learn how the whole repository is set up. While we are following a similar setup to Zephyr, we are not starting with an already set up repository. Instead we start from zero.
In this section the following topics are covered:
-
Adding the first robot framework scripts that will serve as the “definition of done” for this step.
-
Adding the required files: CMake files, Kconfig files, CODEOWNERS, gitignore etc.
-
Adding a pre-commit hook that will run checks on changed files before each commit.
-
Adding a repository init script that will set up local repository and system after a checkout.
Setting up GitLab CI
Once the repository has been set up, we now need to configure gitlab so that we can move over to working with merge requests. To do this, we do the following:
-
Configure a CI pipeline through .gitlab-ci.yml
-
Create a proper task template (for creating tasks in gitlab)
-
Build docker images so that we can run the pipeline locally through gitlab-runner.
-
Add merge request template
-
Configure repository for trunk based development.
-
Add check to ensure that merge request title contains clickable reference to ticket being solved.
-
Add zephyr compliance checking scripts – so that you can verify content of a merge request before merging it.
Directory Structure
Once we have a gitlab pipeline working, we can now work through merge requests and in this step we add the rest of the directory structure.
This includes:
-
Adding an example application – so that you have a template to work from.
-
Adding a custom board – so that we can build the application for custom hardware.
-
Adding cmake library directory – this will be the place where we later put cmake helper scripts.
-
Adding an example device driver – so that we have a template for device driver directories.
-
Adding documentation folder – we will add docs to it later.
-
Adding global include directory – for public interfaces of libraries and drivers visible across the whole firmware project.
-
Adding an example library – so that we have a way of adding libraries shared between multiple applications.
-
Adding example samples – so we can later boot them in renode to run user stories.
Documentation Generation
Once the full directory structure is in place it’s time to add documentation generation. In this module we adopt Zephyr documentation generator so that it works in an external repository – such as the repository where we have our firmware code.
This involves:
-
Moving the doc generator and adopting scripts so they build docs for our project.
-
Adding robot framework scripts for verifying chapter structure – so that we can ensure that docs follow roughly the same structure.
-
Linking the docs together so that we can generate a single PDF or HTML output.
-
Adding doc build process to CI and making everything pass all CI checks that we have setup earlier.
Test Infrastructure
In this section we focus on testing. There are three main types of tests that we need to add – unit, integration and system tests. Zephyr only has support for integration tests and a limited support for unit tests – so we have to add this. System tests are designed to take to final firmware, run it in a simulator (we will use renode in this training) and run user scenarios against it – this verifies the integrity of the whole system.
-
Adding unity – so that we can ditch ZTest and use a standardized testing framework.
-
Adding CMock – so that we can mock any function in our unit tests and have the ability to verify our code for logical integrity.
-
Adding renode support – so that we can simulate our firmware through renode and write scenarios in robot framework syntax.
-
Code coverage checking – so that we don’t allow any source file to be merged unless it has been fully tested.
Release Generation
In this section we will take everything that we have added so far and build a final release. This involves:
-
Adding software BoM generation – so that we can have a list of files that were included in the binary.
-
Adding code to generate a final release archive.
Course Curriculum
Chapter 1: Embedded Firmware DevOps & CI Infrastructure
Lecture 1: Introduction
Lecture 2: Setting up git repository
Lecture 3: Setting up gitlab ci
Lecture 4: Firmware project directory structure
Lecture 5: Documentation generation
Lecture 6: Unit and integration testing infrastructure
Lecture 7: Firmware release packaging
Instructors
-
Martin Schröder
Embedded Firmware Engineer
Rating Distribution
- 1 stars: 2 votes
- 2 stars: 1 votes
- 3 stars: 4 votes
- 4 stars: 6 votes
- 5 stars: 6 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Language Learning Courses to Learn in November 2024
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024