Embedded Systems and Operating System Development
Embedded Systems and Operating System Development, available at $84.99, has an average rating of 4.08, with 56 lectures, based on 51 reviews, and has 685 subscribers.
You will learn about Learn how to build an embedded system from the ground up on the bench. This will give you a great insight into the target platform, but is not mandatory Learn how to program a microcontroller from scratch by setting up wiring, clocking, connecting the programmer, and flashing binary applications to the chip Get a deep insight into what an operating system is, when you need one, and how it works on embedded platforms Understand Kernels, Multitasking, Context Switching, Scheduling, Critical Sections, and Task Synchronization from a practical perspective Understand CPU Architectures in general and how to choose a target CPU. Deep understanding of the MIPS32 Arch internals, like Registers and Memory Layout Programming of Advanced Applications for the Microchip PIC32 (MIPS32) microcontroller Develop Board Support Packages (BSP) for a Target Platform Deep and practical understanding of data communication over the SPI and I2C busses, as well as serial communication via UART modules (including USB-to-Serial) Learn how to develop a Preemptive and Cooperative Kernel based on CPU-specific assembly code for Task Context Switching Learn how to provide efficient internal services for Time, Task, and Memory Management Learn how to create Inter-Process Communication (IPC) with Mailboxes and Message Queues Get a deep understanding of – and learn how to implement – Real-Time Constraints in order for an operating system to be considered an RTOS (Real-Time OS) Understand the Priority Inversion problem and learn how to implement specific countermeasures Learn Device Driver development. We will develop drivers step by step for our Target Platform's peripherals, such as the display and the MicroSD card Interfacing User Application to the OS Understand how to write a binary image to the Target Platform's Program Flash at runtime, and create a USB/UART Bootloader Learn how to make a Porting of the OS, making it executable on different CPU Architectures Understanding of the Target Platform's Electrical Schematic and PCB Layout (optional) This course is ideal for individuals who are From embedded developers to hobbyists and enthusiasts who are willing to create their own Operating System. or This course is hands-on: you will be guided step by step through the creation of a working Operating System, from the ground up. It is particularly useful for From embedded developers to hobbyists and enthusiasts who are willing to create their own Operating System. or This course is hands-on: you will be guided step by step through the creation of a working Operating System, from the ground up.
Enroll now: Embedded Systems and Operating System Development
Summary
Title: Embedded Systems and Operating System Development
Price: $84.99
Average Rating: 4.08
Number of Lectures: 56
Number of Published Lectures: 56
Number of Curriculum Items: 56
Number of Published Curriculum Objects: 56
Original Price: $19.99
Quality Status: approved
Status: Live
What You Will Learn
- Learn how to build an embedded system from the ground up on the bench. This will give you a great insight into the target platform, but is not mandatory
- Learn how to program a microcontroller from scratch by setting up wiring, clocking, connecting the programmer, and flashing binary applications to the chip
- Get a deep insight into what an operating system is, when you need one, and how it works on embedded platforms
- Understand Kernels, Multitasking, Context Switching, Scheduling, Critical Sections, and Task Synchronization from a practical perspective
- Understand CPU Architectures in general and how to choose a target CPU. Deep understanding of the MIPS32 Arch internals, like Registers and Memory Layout
- Programming of Advanced Applications for the Microchip PIC32 (MIPS32) microcontroller
- Develop Board Support Packages (BSP) for a Target Platform
- Deep and practical understanding of data communication over the SPI and I2C busses, as well as serial communication via UART modules (including USB-to-Serial)
- Learn how to develop a Preemptive and Cooperative Kernel based on CPU-specific assembly code for Task Context Switching
- Learn how to provide efficient internal services for Time, Task, and Memory Management
- Learn how to create Inter-Process Communication (IPC) with Mailboxes and Message Queues
- Get a deep understanding of – and learn how to implement – Real-Time Constraints in order for an operating system to be considered an RTOS (Real-Time OS)
- Understand the Priority Inversion problem and learn how to implement specific countermeasures
- Learn Device Driver development. We will develop drivers step by step for our Target Platform's peripherals, such as the display and the MicroSD card
- Interfacing User Application to the OS
- Understand how to write a binary image to the Target Platform's Program Flash at runtime, and create a USB/UART Bootloader
- Learn how to make a Porting of the OS, making it executable on different CPU Architectures
- Understanding of the Target Platform's Electrical Schematic and PCB Layout (optional)
Who Should Attend
- From embedded developers to hobbyists and enthusiasts who are willing to create their own Operating System.
- This course is hands-on: you will be guided step by step through the creation of a working Operating System, from the ground up.
Target Audiences
- From embedded developers to hobbyists and enthusiasts who are willing to create their own Operating System.
- This course is hands-on: you will be guided step by step through the creation of a working Operating System, from the ground up.
In this course you will learn how to create an Embedded OS, really from the ground up.
You will be guided step by step in the creation of each and every technical software module composing an embedded operating system, as well as in the development of your own target device on the bench (optional: you can use a free simulator or a ready-to-use Starter Kit), starting with basic electronic components and an industry-standard processor.
You will learn how to create device drivers step-by-step for real hardware components like displays, SD card storage, Wi-Fi, Inertial Movement Units (IMU, i.e. accelerometer and gyroscope), USB communication, analog Joysticks, thermal camera modules and more.
By the end of this course you will master system-level programming in the assembly and C languages, as well as the technical processes governing the interaction between CPU and memory. Thanks to the numerous hands-on experiences and practical demonstrations, you will develop the ability of gaining full control on the machine by manipulating CPU registers, stack, instruction pointer, return addresses, and much more. At the end of the software development part, you will learn how to create a portingto another architecture, like x86.
Although the hardware development part is optional, if you have access to an electronics lab you will also develop the ability of prototyping your circuit, designing and assembling your own target PCB (Printed Circuit Board).
Course Curriculum
Chapter 1: Set, Ready, Go!
Lecture 1: Course Presentation
Lecture 2: Motivation
Lecture 3: Environment Preparation
Chapter 2: Base Electrical Circuit
Lecture 1: Prototype Design
Lecture 2: CPU Breakout Board
Lecture 3: The First Program
Lecture 4: Simulating Without Hardware
Chapter 3: Operating System Basics
Lecture 1: Introduction to Tasks
Lecture 2: Introduction to Multitasking
Lecture 3: Shared Resources
Lecture 4: Task Switching
Lecture 5: Kernels
Lecture 6: Schedulers
Lecture 7: Critical Sections
Lecture 8: Deadlocks
Lecture 9: Introduction to Task Synchronization
Lecture 10: System Tick
Chapter 4: Target Platform
Lecture 1: CPU Architectures
Lecture 2: Choosing the right CPU
Lecture 3: MIPS32: CPU Registers
Lecture 4: MIPS32: Memory Layout
Lecture 5: The PIC32 Microcontroller
Lecture 6: Our Board VS Microchip's StarterKit
Chapter 5: Interrupts
Lecture 1: Interrupts Overview
Lecture 2: ISRs: Interrupt Service Routines
Lecture 3: Interrupt Latency and Interrupt Response
Lecture 4: Interrupts in our Operating System
Lecture 5: Testing Interrupts with the Software Interrupt
Chapter 6: BSP (Board Support Package)
Lecture 1: BSP Overview: What is the Board Support Package
Lecture 2: Setting up the System Timer
Lecture 3: Setting up the System Tick Interrupt
Lecture 4: Setting up the system's LEDs
Lecture 5: Testing LEDs: Flashing an S.O.S.
Lecture 6: UART: Explanation and Setup
Lecture 7: Testing the UART: Ping-Pong with a PC
Lecture 8: SPI: Explanation and Setup
Lecture 9: Testing the SPI: Ping-Pong with an Arduino
Chapter 7: Kernel
Lecture 1: The Base Infrastructure
Lecture 2: Implementing Tasks and TCBs
Lecture 3: Implementing Stack Management
Lecture 4: Implementing Context Switching in Assembly
Lecture 5: Task Management
Lecture 6: Implementing the Scheduler
Lecture 7: Starting the Operating System
Lecture 8: Time Management
Chapter 8: Event Management
Lecture 1: Event Management Concept
Lecture 2: Data Structures for Event Management
Lecture 3: Event Creation and Response
Chapter 9: Task Synchronization
Lecture 1: Implementing Mutexes
Lecture 2: Implementing Semaphores
Lecture 3: Priority Inversion Avoidance
Chapter 10: ITC (Inter-Task Communication)
Lecture 1: Implementing ITC with Mailboxes
Chapter 11: OS Development Project
Lecture 1: Download the Complete OS Sources
Chapter 12: Bonus Lectures
Lecture 1: MPU6500 Device Driver
Lecture 2: ESP32 Wireless Device Design
Lecture 3: CCTV Camera Over FM Radio
Instructors
-
Victor Huerlimann
Embedded Systems and AI Engineer
Rating Distribution
- 1 stars: 1 votes
- 2 stars: 0 votes
- 3 stars: 7 votes
- 4 stars: 13 votes
- 5 stars: 30 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 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
- Top 10 Gardening Courses to Learn in November 2024