Download link

Version Description:

The initial version of the ChocoOS after refactorization.

Features:

  • Chell – the shell to control the OS
  • Machine independent code thanks to drivers, and LLD
  • Basic file system with support of ramfs and devfs
  • ChocoOS RTOS kernel
  • Programs like on PCs
  • User-friendly ‘linked-list’ library
  • Users and login system
  • Expanded errors system with additional errors stack system
  • Helpful bits library for operation based on bits (set/clear, etc)
  • Safe C objects development library with expanded pointer verification
  • Library for pointer verifications, that allows to check if the pointer is in RAM or ROM section, to check if pointer was dynamically allocated, is in heap, or stack, and much more
  • Time measurement from the start of the system (timestamps)
  • Simple configuration of STDIN and STDOUT
  • Streams can be selected for each program
  • The pin selection configuration is very simple (just by choosing new name of the pin)
  • Configuration of drivers can be independent of the target machine
  • Possibility of choose, which components should be included to the system (programs/drivers/file systems)
  • Drivers visible in file system
  • stdio.h POSIX basic functions (printf/scanf)
  • Simple boot mechanism
  • Expanded Memory Manager for dynamic memory allocations (malloc,free,etc)
  • Full control of the memory – you can check where the memory was allocated
  • Smart-allocations system helps to save memory
  • A lot of task-synchronization methods, such as: Semaphores,Mutexes,Events,Signals,Queues, and Critical-Sections
  • Memory can be allocated for the current process, so when the process will be killed, it will be released. It helps in memory leaks problem
  • Stack, and heap verification functions – checking for buffers overflow, memory exhausted, memory leaks
  • Function for repairing damaged heap

Targets supported:

  • lm4f120h5qr

Programs:

  • chell
  • echo
  • getallocs
  • geterrors
  • ls
  • memory
  • mkdir
  • printf
  • ps
  • reboot
  • time

Supported file systems:

  • devfs
  • ramfs

Drivers (without LLD):

  • UART
  • TIMER

LLD:

  • UART
  • MEM
  • GPIO
  • CLOCK
  • DMA
  • SPI
  • SYS
  • TIMER

Release notes:

  • New portable architecture
  • New core architecture
  • Add layers for architecture, and create separate library for each one
  • New programs structure
  • New build, connect and flash scripts
  • New machine module, that contains all definitions and register-based operations
  • Program main function renamed to just ‘main’
  • New file with machine depended definitions
  • List library reimplemented with new, more friendly interface
  • Add forif and ifnot  libraries
  • Add errors stack for reading errors from the past
  • Added bits library
  • Create oc_math library for math operations (only poor version)
  • Add objects library for verification of the kernel, and not kernel objects
  • Add functions for checking if pointer is in RAM/ROM/stack/heap, etc
  • Add function to reverse the string (string_reverse)
  • Own RTOS kernel implementation
  • Kernel time library implemented
  • Add library for version controling
  • Add machine-dependent pins map configuration file
  • Add DevFs and RamFs to file systems
  • Implementation of the virtual file system
  • KPrint module implementation
  • printf and scanf functions implementation
  • Memory manager implemented
  • Mutexes, Semaphores, Events, and IntMan imlemented