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
* 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")