This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:mihai.zegheru [2026/05/21 00:28] mihai.zegheru |
pm:prj2026:bianca.popa1106:mihai.zegheru [2026/05/21 00:45] (current) mihai.zegheru [Block Diagram] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Here is a rewritten DokuWiki page with the new TFT screen, runtime stack pool, explicit stack size API, profiling, and datasheet/resource links. | ||
| - | ```dokuwiki | ||
| ====== athreads - A Preemptive MCU Scheduler ====== | ====== athreads - A Preemptive MCU Scheduler ====== | ||
| Line 38: | Line 36: | ||
| ==== Block Diagram ==== | ==== Block Diagram ==== | ||
| - | <code> | + | {{ :pm:prj2026:bianca.popa1106:athreads_block_diagram.jpg?700 |}} |
| - | +-------------------------------------------------------------+ | + | |
| - | | PC / Laptop | | + | |
| - | | | | + | |
| - | | +-------------------------------+ | | + | |
| - | | | Python CPU Task Manager | | | + | |
| - | | | - reads USART packets | | | + | |
| - | | | - plots per-thread CPU usage | | | + | |
| - | | +---------------^---------------+ | | + | |
| - | | | USB Serial | | + | |
| - | +------------------|------------------------------------------+ | + | |
| - | | | + | |
| - | +------------------v------------------------------------------+ | + | |
| - | | Arduino Mega 2560 | | + | |
| - | | | | + | |
| - | | +-------------------------------------------------------+ | | + | |
| - | | | athreads Scheduler | | | + | |
| - | | | | | | + | |
| - | | | - thread table | | | + | |
| - | | | - runtime stack pool | | | + | |
| - | | | - per-thread stack/context | | | + | |
| - | | | - round-robin scheduling | | | + | |
| - | | | - per-thread quantum | | | + | |
| - | | | - sleeping thread wakeup | | | + | |
| - | | | - CPU tick accounting | | | + | |
| - | | +-----------^--------------------^----------------------+ | | + | |
| - | | | | | | + | |
| - | | Timer1 interrupt Timer2 uptime tick | | + | |
| - | | preemption sleep/encoder timing | | + | |
| - | | | | + | |
| - | | +------------------+ +------------------+ | | + | |
| - | | | TFT UI Thread | | Encoder Thread | | | + | |
| - | | | process menu | | input handling | | | + | |
| - | | +--------^---------+ +--------^---------+ | | + | |
| - | | | | | | + | |
| - | | SPI ST7735 TFT Rotary Encoder | | + | |
| - | | | | + | |
| - | | +-------------------------------------------------------+ | | + | |
| - | | | Worker Threads | | | + | |
| - | | | synthetic workloads used for profiling/demo purposes | | | + | |
| - | | +-------------------------------------------------------+ | | + | |
| - | +-------------------------------------------------------------+ | + | |
| - | </code> | + | |
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| Line 361: | Line 317: | ||
| <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
| - | ``` | + | |