1 # CORTEX M3 FROM SCRATCH
3 This is my little 'Cortex M3 from scratch' project. No external libraries
4 or IDEs are used. Everything is written from scratch. My development environment
5 consist of nothing more than:
7 * GCC-arm-none (standard ARM cross compiler)
11 The board I use is a cheap Chinese STM32F103 ripoff. In theory, you should be able to
12 port this code to any Cortex M0/M3/M4/M7 board.
15 Setup bare development environment [COMPLETED]
16 FILES: Makefile, link.d
17 Boot and jump to C [COMPLETED]
18 FILES: start.asm, main.c, include/sys/mmap.h, include/sys/robsys.h
19 Interrupt Handling [COMPLETED]
20 FILE: ivt.c, lib/string.c
21 Basic input and output (UART) [COMPLETED]
22 FILES: driver/uart.c, lib/stdio.c
25 System Info [COMPLETED]
27 High Speed External Clock / tuning [COMPLETED]
29 RTC (Real Time Clock) [COMPLETED]
31 Built-in-shell [COMPLETED]
33 Port printf/libc library [COMPLETED]
34 FILE: lib/tinyprintf.c
36 EEPROM: driver/at24c.c [COMPLETED]
37 UART drivers/uart.c [COMPLETED]
38 LED segment display: drivers/tm1637.c [COMPLETED]
39 Temperature sensor: drivers/tsensor.c [IN PROGRESS]
40 OLED display [PLANNED]
42 Memory Management [IN PROGRESS]
45 System Call PendV implementation [PLANNED]
46 Stack trace debug [IN PROGRESS]
47 Memory Protection Unit [PLANNED]
48 Loadable programs from EEPROM [PLANNED]
49 Multiple processes and scheduling [PLANNED]
52 Here is a screenshot that shows the terminal just after booting:
54 ![Screenshot](https://github.com/robinkrens/cortex-from-scratch/raw/master/img/
55 screenshot.png "screenshot")