]> code.bitgloo.com Git - clyne/stmos.git/commitdiff
update README master
authorClyne Sullivan <clyne@bitgloo.com>
Fri, 24 Jan 2020 14:29:45 +0000 (09:29 -0500)
committerClyne Sullivan <clyne@bitgloo.com>
Fri, 24 Jan 2020 14:29:45 +0000 (09:29 -0500)
README.md

index 7811c510a5daa3407178f76a65c88824f6ebefc4..ff2f0f75086fc702d2092cedb01acf97d3e07fc5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,29 +1,44 @@
 # stmos
 
-stmos is an operating system for STM microprocessors. It aims to support (or be able to support) all STM Cortex-M processors.  
-  
+stmos is an attempt to implement a general-purpose operating system on ARM
+microcontrollers. The name "stmos" is due to the fact that this was first
+implemented on an STM32L476RG MCU (ARM Cortex-M4F), and the operating system
+still includes many operations/values that are specific to this processor
+(currently limiting the portability of this OS).
+
+Eventually, this OS aims to support at least all Cortex-M MCUs.
+
 Features:  
-* Unprivileged code execution
-* ELF loading and execution (loads an init from the initrd)
-* Near-full C standard library support for loaded ELFs
-* libgpio: GPIO access for loaded ELFs
+* Advanced heap that does its best to keep large chunks of memory available
+* Round-robin multitasking that keeps tasks in userspace
+* A virtual filesystem implementation with stdio/initrd built into the kernel
+* Ability to execute ELF files loaded from the filesystem
+* A nearly complete C standard library implementation available to loaded ELFs
+(using [PDCLib](https://github.com/DevSolar/pdclib))
+* libgpio: The first userspace library; makes GPIO available to loaded ELFs
   
 Currently supported processors:
 * STM32L476RG (board: NUCLEO-L476RG)
   
 ### building  
 To build stmos, you'll need the following programs:  
-* The arm-stmos toolchain (see the ```arm-stmos``` folder)
+* The arm-stmos toolchain (see the `arm-stmos` folder)
 * openocd
-* gdb (with multiarch support)
+* gdb (with multiarch support, `gdb-multiarch` on Debian)
   
-To compile stmos simply run ```make``` (-j option supported). To upload, use ```run.sh``` to start openocd/gdb; do ```lo``` to load stmos, and ```c``` to run it.  
+To compile stmos simply run `make` (-j supported). To upload, use `run.sh` to
+launch OpenOCD and GDB; then, do `lo` to load stmos, and `c` to begin execution.  
   
 ### notes
-Only the initrd works right now in regards to filesystem access. Files in the folder ```src/initrd/files``` are put into the initrd. C source files in ```src/initrd``` are compiled with libgpio, placing the program in ```src/initrd/files```.  
+Currently, the only available filesystem driver is for the initrd. Files in the
+folder `src/initrd/files` are put into the initrd. C source files in
+`src/initrd` are compiled (with libgpio available), placing the programs in
+`src/initrd/files`
   
 What's next for stmos?  
-* SD card support
-* Display support (ILI....)
-* Script program support (a shell like sash, maybe lua)
-* More ELF work (better execve, signals?, etc.)
+* Processor independence
+* SD card support?
+* Display support? (ILI....)
+* Support for running a popular program (e.g. a shell like sash, maybe lua)
+* Growth of features available to loaded ELFs (better execve, signals?, etc.)
+