System Calls cleanup, multiple Processes and context switch
[cortex-from-scratch] / README.md
index fbb86c9..e9473b8 100644 (file)
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ The board I use is a cheap Chinese STM32F103 ripoff. In theory, you should be ab
 port this code to any Cortex M0/M3/M4/M7 board. 
 
 ## PROGRESS STATUS
-* Setup bare development environment [COMPLETED] --FILES: Makefile, link.d
+* Setup bare development environment [COMPLETED] -- FILES: Makefile, link.d
 * Boot and jump to C [COMPLETED] -- FILES: start.asm, main.c, include/sys/mmap.h, include/sys/robsys.h 
 * Interrupt Handling [COMPLETED] -- FILES: ivt.c, lib/string.c
 * Basic input and output (UART) [COMPLETED] -- FILES: driver/uart.c, lib/stdio.c
@@ -23,24 +23,34 @@ port this code to any Cortex M0/M3/M4/M7 board.
 * Built-in-shell [COMPLETED] -- FILE: term.c
 * Port printf/libc library [COMPLETED] -- FILE: lib/tinyprintf.c
 * Basic drivers:
-       ** EEPROM: driver/at24c.c [COMPLETED]
-       ** UART drivers/uart.c [COMPLETED]
-       ** LED segment display: drivers/tm1637.c [COMPLETED]
-       ** Temperature sensor: drivers/tsensor.c [IN PROGRESS]
-       ** OLED display [PLANNED]
-       ** Joystick [PLANNED]
+       * EEPROM: drivers/at24c.c [COMPLETED]
+       * UART drivers/uart.c [COMPLETED]
+       * LED segment display: drivers/tm1637.c [COMPLETED]
+       * Temperature sensor: drivers/tsensor.c [COMPLETED]
+       * OLED display [PLANNED]
+       * Joystick: drivers/mk450_joystick.c [COMPLETED]
+       * TFT Screen: drivers/st7735s.c, include/libs/fonts/wogfont.h [COMPLETED]
 * Memory Management [IN PROGRESS] -- FILE: lib/pool.c
-* User Mode [PLANNED]
-* System Call PendV implementation [PLANNED]
+* Kernel heap [COMPLETED] -- FILE: heap.c
+* User Mode Switch [IN PROGRESS]
+* System Calls [IN PROGRESS] -- FILE: syscall.c lib/syscall.c
+* Scheduler based on PendSV system call [IN PROGRESS]   
 * Stack trace debug [IN PROGRESS]
-* Memory Protection Unit [PLANNED]
+* Memory Protection Unit [SUSPENDED] (STM32F103 board has no MPU)
 * Loadable programs from EEPROM [PLANNED]
-* Multiple processes and scheduling [PLANNED]
+* Multiple processes [IN PROGRESS] -- FILES: process.h, main.c 
+* Driver "abstraction" [PLANNED] 
 
 ## SCREENSHOTS
-Here is a screenshot that shows the terminal just after booting:
+Here are some screenshots that shows the terminal just after booting:
 
-![Screenshot](https://github.com/robinkrens/cortex-from-scratch/raw/master/img/screenshot.png "screenshot")
+Serial (over UART)
+
+![Screenshot](https://github.com/robinkrens/cortex-from-scratch/raw/master/img/serial.png "serial terminal screenshot")
+
+TFT screen output (SPI):
+
+![Screenshot](https://github.com/robinkrens/cortex-from-scratch/raw/master/img/tft.png "tft peripheral screenshot")