added commenting, removed deprecated functions
[cortex-from-scratch] / README.md
1 # CORTEX M3 FROM SCRATCH
2
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:
6
7         * GCC-arm-none (standard ARM cross compiler)
8         * VIM editor
9         * stm32flash
10
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. 
13
14 ## PROGRESS STATUS
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
23 SysTick [COMPLETED]
24         FILE: systick.c
25 System Info [COMPLETED]
26         FILE: sysinfo.c
27 High Speed External Clock / tuning [COMPLETED]
28         FILE: clock.c
29 RTC (Real Time Clock) [COMPLETED]
30     FILE: rtc.c
31 Built-in-shell [COMPLETED]
32     FILE: term.c
33 Port printf/libc library [COMPLETED]
34     FILE: lib/tinyprintf.c
35 Basic drivers
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]
41         Joystick [PLANNED]
42 Memory Management [IN PROGRESS]
43     FILE: lib/pool.c
44 User Mode [PLANNED]
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]
50
51 ## SCREENSHOTS
52 Here is a screenshot that shows the terminal just after booting:
53
54 ![Screenshot](https://github.com/robinkrens/cortex-from-scratch/raw/master/img/
55 screenshot.png "screenshot")
56
57
58
59
60