/qubitas

Primary LanguageCMIT LicenseMIT

Qubitas Bootloader

   ###    #     #  ######    #####   #######     #      #####
  #   #   #     #  #     #     #        #        #     #     #
 #     #  #     #  #     #     #        #       ###    #
 #     #  #     #  ######      #        #       # #     #####
 #     #  #     #  #     #     #        #      #####         #
  #   #   #     #  #     #     #        #      #   #   #     #
   ###     #####   ######    #####      #     ##   ##   #####
     ###     AN OPEN SOURCE TUTORIAL OPERATING SYSTEM IN 2023

This is a simple bootloader for exercise

Introduction

Getting Start

Environment Setup

TODO

Directory architecture

.
├── app                // architecture level test code
│    ├── cs            // prototype os
│    └── svc           // user space -> kernel space
├── arch               // for arm cm7 architecture
│    └── arm
│         └── init
├── boot               // for bootloader usage
├── build              // the compiled image
├── cmd                // command line usage, will move to app
├── doc                // development document
│    ├── FreeRTOS
│    ├── Qubitas
│    └── cortex_m7
│        └── img
├── driver             // driver code for STM32F746
├── include
│    ├── app
│    ├── arch
│    │    └── arm
│    ├── ds
│    ├── kernel
│    ├── mm
│    ├── net
│    └── qubitas
├── kernel             // kernel source code
├── lib                // some gcc code like printk, etc.
├── mk                 // sub-level makefile 
└── mm                 // memory management, e.g. heap, memset etc.

Features

  • printk
  • scanf: implement by DMA
    • usart interrupt
    • usart DMA
    • scanf
  • command shell
  • Timer interrupt
  • context switch
    • Stack initialization
  • list api
  • memory management
    • malloc
    • free
  • task and thread
    • task
  • scheduler
    • Round Robin

Reference