Tags
Language
Tags
June 2025
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
    Attention❗ To save your time, in order to download anything on this site, you must be registered 👉 HERE. If you do not have a registration yet, it is better to do it right away. ✌

    ( • )( • ) ( ͡⚆ ͜ʖ ͡⚆ ) (‿ˠ‿)
    SpicyMags.xyz

    Create Your Own Embedded Operating System

    Posted By: ELK1nG
    Create Your Own Embedded Operating System

    Create Your Own Embedded Operating System
    Published 5/2023
    MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
    Language: English | Size: 5.93 GB | Duration: 10h 48m

    Hands-on Embedded Operating System Development from the ground up

    What you'll 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)

    Requirements

    Basic C programming skills are recommended but not mandatory. The code implementation will be performed hands-on, with explanation in real-time. No particular prior knowledge is required. If you have any questions, simply drop me a message: I will answer to you.

    Description

    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 porting to 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).

    Overview

    Section 1: Set, Ready, Go!

    Lecture 1 Course Presentation

    Lecture 2 Motivation

    Lecture 3 Environment Preparation

    Section 2: Base Electrical Circuit

    Lecture 4 Prototype Design

    Lecture 5 CPU Breakout Board

    Lecture 6 The First Program

    Lecture 7 Simulating Without Hardware

    Section 3: Operating System Basics

    Lecture 8 Introduction to Tasks

    Lecture 9 Introduction to Multitasking

    Lecture 10 Shared Resources

    Lecture 11 Task Switching

    Lecture 12 Kernels

    Lecture 13 Schedulers

    Lecture 14 Critical Sections

    Lecture 15 Deadlocks

    Lecture 16 Introduction to Task Synchronization

    Lecture 17 System Tick

    Section 4: Target Platform

    Lecture 18 CPU Architectures

    Lecture 19 Choosing the right CPU

    Lecture 20 MIPS32: CPU Registers

    Lecture 21 MIPS32: Memory Layout

    Lecture 22 The PIC32 Microcontroller

    Lecture 23 Our Board VS Microchip's StarterKit

    Section 5: Interrupts

    Lecture 24 Interrupts Overview

    Lecture 25 ISRs: Interrupt Service Routines

    Lecture 26 Interrupt Latency and Interrupt Response

    Lecture 27 Interrupts in our Operating System

    Lecture 28 Testing Interrupts with the Software Interrupt

    Section 6: BSP (Board Support Package)

    Lecture 29 BSP Overview: What is the Board Support Package

    Lecture 30 Setting up the System Timer

    Lecture 31 Setting up the System Tick Interrupt

    Lecture 32 Setting up the system's LEDs

    Lecture 33 Testing LEDs: Flashing an S.O.S.

    Lecture 34 UART: Explanation and Setup

    Lecture 35 Testing the UART: Ping-Pong with a PC

    Lecture 36 SPI: Explanation and Setup

    Lecture 37 Testing the SPI: Ping-Pong with an Arduino

    Section 7: Kernel

    Lecture 38 The Base Infrastructure

    Lecture 39 Implementing Tasks and TCBs

    Lecture 40 Implementing Stack Management

    Lecture 41 Implementing Context Switching in Assembly

    Lecture 42 Task Management

    Lecture 43 Implementing the Scheduler

    Lecture 44 Starting the Operating System

    Lecture 45 Time Management

    Section 8: Event Management

    Lecture 46 Event Management Concept

    Lecture 47 Data Structures for Event Management

    Lecture 48 Event Creation and Response

    Section 9: Task Synchronization

    Lecture 49 Implementing Mutexes

    Lecture 50 Implementing Semaphores

    Lecture 51 Priority Inversion Avoidance

    Section 10: ITC (Inter-Task Communication)

    Lecture 52 Implementing ITC with Mailboxes

    Section 11: OS Development Project

    Lecture 53 Download the Complete OS Sources

    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.