Download Latest Version StateOS-6.7.7z (376.2 kB)
Email in envelope

Get an email when there's a new version of StateOS

Home
Name Modified Size InfoDownloads / Week
README 2020-07-10 17.3 kB
StateOS-6.7.7z 2020-07-10 376.2 kB
StateOS-6.6.7z 2020-05-13 370.3 kB
StateOS-6.5.7z 2020-02-08 321.6 kB
StateOS-6.4.7z 2018-11-22 308.7 kB
StateOS-6.3.7z 2018-10-23 306.7 kB
StateOS-6.2.7z 2018-09-03 296.6 kB
StateOS-6.1.7z 2018-08-01 296.5 kB
StateOS-6.0.7z 2018-05-25 293.3 kB
StateOS-5.9.7z 2018-05-02 293.1 kB
StateOS-5.8.7z 2018-04-16 291.0 kB
StateOS-5.7.7z 2018-04-09 288.8 kB
StateOS-5.6.7z 2018-01-24 288.3 kB
StateOS-5.5.7z 2018-01-05 297.9 kB
StateOS-5.4.7z 2017-11-27 300.0 kB
StateOS-5.3.7z 2017-10-26 287.9 kB
StateOS-5.2.7z 2017-10-04 286.8 kB
StateOS-5.1.7z 2017-08-31 283.6 kB
StateOS-5.0.7z 2017-07-14 283.2 kB
StateOS-4.9.7z 2017-06-13 282.4 kB
StateOS-4.8.7z 2017-04-03 281.4 kB
StateOS-4.7.7z 2017-03-31 281.3 kB
StateOS-4.6.7z 2017-03-18 280.9 kB
StateOS-4.5.7z 2017-02-24 280.9 kB
StateOS-4.4.7z 2017-01-26 197.9 kB
StateOS-4.3.7z 2017-01-15 197.5 kB
StateOS-4.2.7z 2016-12-28 197.6 kB
StateOS-4.1.7z 2016-12-19 197.1 kB
StateOS-4.0.7z 2016-12-13 197.0 kB
StateOS-3.9.7z 2016-12-04 196.9 kB
StateOS-3.8.7z 2016-11-21 196.8 kB
StateOS-3.7.7z 2016-11-18 196.8 kB
StateOS-3.6.7z 2016-11-14 184.8 kB
StateOS-3.5.7z 2016-11-10 200.8 kB
StateOS-3.4.7z 2016-11-07 189.1 kB
StateOS-3.3.7z 2016-11-06 199.8 kB
StateOS-3.2.7z 2016-11-05 199.1 kB
StateOS-3.1.7z 2016-11-04 187.4 kB
StateOS-3.0.7z 2016-10-29 191.5 kB
StateOS-2.9.7z 2016-09-23 186.7 kB
StateOS-2.8.7z 2016-05-22 186.8 kB
StateOS-2.7.7z 2016-05-20 186.7 kB
StateOS-2.6.7z 2016-05-18 186.6 kB
StateOS-2.5.7z 2016-05-06 186.1 kB
StateOS-2.4.7z 2016-04-09 186.1 kB
StateOS-2.3.7z 2016-04-03 186.2 kB
StateOS-2.2.7z 2016-03-24 186.2 kB
StateOS-2.1.7z 2016-03-21 185.7 kB
StateOS-2.0.7z 2016-03-17 185.2 kB
StateOS-1.9.7z 2016-03-13 184.1 kB
StateOS-1.8.7z 2016-03-09 183.7 kB
StateOS-1.7.7z 2016-03-01 183.6 kB
StateOS-1.6.7z 2016-02-24 182.7 kB
StateOS-1.5.7z 2016-02-18 182.7 kB
StateOS-1.4.7z 2016-02-05 182.3 kB
StateOS-1.3.7z 2016-01-25 181.5 kB
StateOS-1.2.7z 2016-01-15 181.4 kB
StateOS-1.1.7z 2016-01-11 180.3 kB
StateOS-1.0.7z 2015-12-23 176.8 kB
StateOS-0.9.7z 2015-11-19 163.1 kB
StateOS-0.8.zip 2015-10-16 872.2 kB
StateOS-0.7.zip 2015-10-09 877.4 kB
StateOS-0.6.zip 2015-10-09 982.5 kB
StateOS-0.5.zip 2015-07-15 968.7 kB
Totals: 64 Items   17.4 MB 2
StateOS
---------
StateOS is free, extremely simple and very fast real-time operating system (RTOS) designed for deeply embedded applications.
---------
Targets:
ARM Cortex-M, STM8.
---------
Inspiration:
StateOS was inspired by the concept of a state machine. Procedure executed by the task (task state) doesn't have to be noreturn-type. It will be executed into an infinite loop. There's a dedicated function for immediate change the task state (task function).
---------
Documentation:
All documentation is contained within source files, in particular header files.
---------
Gettin started:
Building an application for a specific compiler is realised using the appropriate makefile script.
---------
License:
This project is licensed under the terms of the MIT License (https://opensource.org/licenses/MIT).
---------
Features:
- kernel can operate in preemptive or cooperative mode
- kernel can operate with 16, 32 or 64-bit timer counter
- kernel can operate in tick-less mode
- implemented basic protection using MPU (use nullptr, stack overflow)
- spin locks
- once flags
- events
- signals with protection mask
- flags (any, all, protect, ignore)
- barriers
- semaphores (binary, limited, counting)
- mutexes with configurable type, protocol and robustness
- fast mutexes (error checking)
- condition variables
- read/write locks
- memory pools
- stream buffers
- message buffers
- mailbox queues
- event queues
- job queues
- timers (one-shot, periodic)
- cmsis-rtos api
- cmsis-rtos2 api
- nasa-osal support
- c++ wrapper
- all documentation is contained within source files, in particular header files
- examples and templates are in separate repositories (https://github.com/stateos)
---------
6.7
- updated os version
- implementation of steady clock
- updated Timer class
- updated Task class
- updated other classes
- removed unused OS_FUNCTIONAL definition
- added CNT_LIMIT definition
- updated stack assertions
- check task stack watermark
- added tsk_stackSpace function
- removed JOINABLE and DETACHED definitions
- fixed bug in tsk_destroy function
- used std::unique_ptr with dynamic objects
- added MPU for prevention the use of the NULL / nullptr
- added MPU for prevention the stack overflow
- removed empty __CONSTRUCTOR definitions
- renamed sys_alloc function to malloc
- added set of standard aligned memory allocation functions
- the task deleter go back to the idle process
- simplified parameters of the core_tsk_wait function
- updated signal functions
- updated message buffer functions
- updated stream buffer functions
- changed type of system functions result (int)
- added read/write lock
- added lock guard
---------
6.6
- updated os version
- updated license
- updated c++ constructors
- updated JobQueueT class
- added baseStack class
- added baseTimer class
- updated usage of std::function
- fixed errors reported by the armcc v5 compiler
- simplified c++ constructors
- added wrk_init function
- now sys_alloc don't clear allocated memory
- updated c++ create functions
- updated c++ wrapper
- added sys_heapSize function
- task destructor is called in alloc / free functions
- rebuilded c++ static functions
- added several static functions to the Timer class
- added several static functions to the Task class
- added constructor with function arguments to the Timer class
- added constructor with function arguments to the Task class
- updated semaphore (removed send functions)
---------
6.5
- added functional test
- added support for stm32l1
- updated stm8s port file
- updated port definitions
- added tsk_exit alias
- fixed 'zero-as-null-pointer-constant' warnings
- updated iarcc osdefs header file for cortexm
---------
6.4
- removed ID_BLOCKED constant
- removed ID_IDLE constant
- added signal handler
- changed c++ functional procedures
- updated assertions
- modified context structures
- added dynamic tasks
- added create/destroy functions to c++ wrapper
- updated c++ wrapper
---------
6.3
- merged test branch
- renamed 'SIZE' definitions
- back to the event (evt) and event queue (evq)
- added a few function aliases
- added once flag object
- added mutex mode (type, protocol, robustness)
- updated flag object
- updated queue/buffer objects
- updated queue/buffer functions
- added E_FAILURE event
- added examples
- changed assert definitions
- definitions regarding the task have been moved to the task header file
- updated condition variable object
- fixed bug in tmr_wait functions
- updated tsk_sleep functions
- added system delayed queues
- updated barrier object
- updated signal object
- renamed ID_DELAYED to ID_BLOCKED
- changed resource management
- changed task start procedures
- added function aliases for the current task
- added resource assertions
- current task is destroyed asynchronously by the destructor
- renamed idle procedures
- changed usage of signals
- added E_DELETED event constant
- updated event object and examples
---------
6.2
- updated kernel
- added initial value for flag object
- updated tsk/tmr init functions
- added static c++ classes
- added optional stack size parameter for task create definitions
- added optional type size parameter for message buffer create definitions
- added optional limit parameter for semaphore create definitions
- added optional type size parameter for stream buffer create definitions
- updated stream buffer object
- updated message buffer object
- added optional init parameter for flag create definitions
- added optional signal type parameter for signal create definitions
- static private functions work inside critical sections
- removed event object; event queue object renamed to 'evt'
- fixed stack initialization
- changed mem_init function
- changed evt_init function
- changed job_init function
- changed box_init function
- changed msg_init function
- changed stm_init function
- reorganized kernel functions
- added object header
- added header init functions
- rebuilded sleep and suspend / resume functions
---------
6.1
- updated os version
- updated mailbox queue object
- updated message buffer object
- updated stream buffer object
- added spin lock object
- some lock definitions moved to kernel
- updated XXX_CREATE definitions
- updated lock definitions and usage
- updated version identification
- added tmr_startNext, tmr_waitNext and tsk_sleepNext functions
- reorganized the order of functions
- the task/timer identifier is an enumeration constant
---------
6.0
- updated os version
- updated message buffer object: size of the message data limited to size of the buffer
- updated stream buffer object: size of the stream data limited to size of the buffer
- reorganized task structure
- changed kernel filenames
---------
5.9
- updated os version
- updated task object
- updated mailbox queue object
- updated kernel
- updated stream buffer object
- renamed message queue to event queue
- added message buffer object
- added examples for new feature
- updated event queue object
---------
5.8
- added stream buffer object
- updated examples
- fixed bugs in isr functions
- removed direct semaphore (use signal instead)
- updated const qualifiers
- changed syntax of box_init function
- updated kernel
---------
5.7
- updated memory pool object
- updated list object
- updated examples
- updated kernel
- added box_push, msg_push and job_push functions
---------
5.6
- changed license to MIT
---------
5.5
- some preprocessor definitions have been changed
- updated kernel files
- removed Counter definition
- added sys_time functions
- removed Current definition
- added tmr_this and tsk_this functions
- function tmr_this renamed to tmr_thisISR
- fixed bugs in nasa-osal api
- fixed bugs in cmsis-rtos2 api
- updated semaphore object (added semDirect feature)
- the OS_ASSERT definition has been removed, use DEBUG/NDEBUG instead
- updated tick-less mode
- updated waitUntil functions
- removed OS_TICKLESS definition, tick-less mode depends on OS_FREQUENCY value
- os can work with 16, 32 or 64-bit timer counter
---------
5.4
- added startup files for cosmic compiler
- added support for IAR compiler
- updated support for CMSIS-RTOS2 API
- added some definitions for CSMCC
- moved alloc/free functions to osalloc.c file
- updated alloc/free functions
---------
5.3
- updated inclusion of header files
- fixed bug for CM0 and gcc compiler
- updated job queue object
- updated core_sys_alloc functions
- updated memory pool object
- updated internal MSIZE definition
- updated tsk_detach / tsk_join functions
- added xxx_delete functions
---------
5.2
- added BinarySemaphore c++ class
- renamed functions: tsk_create to wrk_create and tsk_new to tsk_create
- added aliases for xxx_create functions (xxx_new) and XXX_CREATE macro definitions (XXX_NEW)
- updated c++ code
- added OS_TMR_START, OS_WRK_START and OS_TSK_START macros
  only available for compilers supporting the "constructor" function attribute or its equivalent
- added examples for new feature
- added OS_TMR_UNTIL macro (with tmr_startUntil function) similar to OS_TMR_START macro (with tmr_start function)
- in non-tick-less mode each task has its own time slice
- internal system timer handler moved to kernel
- added internal function core_cur_prio
- added job queue object
- added examples for new feature
- changed internal implementation of some objects
- updated inclusion of header files
---------
5.1
- updated access to the c++ functional library
- updated port files
- added osdefs.h header file
- used Current instead of System.cur
- used config OS_TICKLESS instead of OS_TIMER
- added stack assertion
---------
5.0
- updated cmsis-rtos2 api to version 2.1.1
- updated osport header file
- system counter is always 32-bit size
- added port_cnt_lock / port_cnt_unlock macros
- added sys_time function for read current value of system counter
- updated cmsis-rtos2 osKernelGetSysTimerCount function
- reorganized port directories
- optionally included c++ functional library (not available for all compilers)
- added examples for new feature
---------
4.9
- changed tsk_suspend / tsk_resume functions
- added tsk_suspend example
- rebuilt port / core files
- fixed bug in mutex object
---------
4.8
- updated OS_TMR / static_TMR macros
- added OS_TMR_DEF / static_TMR_DEF macros
- updated OS_WRK / static_WRK macros
- renamed OS_DEF / static_DEF macros to OS_WRK_DEF / static_WRK_DEF
- renamed OS_NEW / static_NEW macros to OS_TSK_DEF / static_TSK_DEF
- updated examples
---------
4.7
- updated macros for task and timer objects
- updated examples
- added tsk_getPrio / tsk_setPrio inline functions
- reorganized kernel directories
- updated objects definitions
---------
4.6
- added JOINABLE and DETACHED constants
- function mem_reset renamed to mem_bind
- redefined timer macros and procedures
- added OS_IDLE_STACK definition
- function core_tsk_start renamed to core_tsk_loop
---------
4.5
- rename flgOne to flgAny
- added flg_clear function
- added protection to flag object
- added cmsis-os2 API
- added cmsis-os2 example
- added tsk_detach function
- rebuilt cmsis-os1 api
- rebuilt nasa-osal api
- only delayed and suspended tasks can be resumed
- tsk_wait functions return received flags or messages
- mem_init function renamed to mem_reset
- added xxx_init functions and corresponding example
---------
4.4
- added oslibc.c file for COSMIC Software CORTEX-M C Cross Compiler
- added _TSK_CREATE macro in os_tsk.h file
- changed OS_DEF macro and added OS_NEW macro in os_tsk.h file
- added sys_alloc and sys_free procedures
- updated cmsis-rtos and nasa-osal
- added changes in some definitions
- rebuilt kernel
---------
4.3
- rebuilt internal preprocessor definitions
- rebuilt data structures
- rebuilt c++ classes
- updated examples
---------
4.2
- added tsk_join function
- added assertions
---------
4.1
- more kernel improvements
- new concept of task-switching for cortex-m: second try
---------
4.0
- tsk_flip is realized through core_tsk_flip function
- improved performance of kernel
---------
3.9
- added support for STM8S-Discovery board
- initiating a process stack has been removed from the context switch procedure
---------
3.8
- updated task object
- back to kernel v3.5
---------
3.7
- better integration with CMSISv5
- fixed bug in tsk_flip procedure
- added partial support for NASA Operating System Abstraction Layer
- added example for NASA OSAL
- updated timer object
---------
3.6
- new concept of task-switching: now the main task can also be restored from the main stack
- updated core and port files
---------
3.5
- updated list object
- updated memory pool object
- optimized c++ code
---------
3.4
- added list object
- added mail queue functions to cmsis_os api
- fixed bug in memory pool object
---------
3.3
- added direct signal and message transfer to task object
- added signal functions to cmsis_os api
---------
3.2
- updated memory pool object
- added memory pool examples
---------
3.1
- added CMSIS-RTOS API
- added CMSIS-RTOS example
- added memory pool object
---------
3.0
- added support for COSMIC Software CORTEX-M C Cross Compiler
---------
2.9
- program code cleaned
---------
2.8
- changed startup files
- fixed bug in core_ctx_switch for armclang and Cortex-M0
---------
2.7
- fixed some bugs in arm clang code
- fixed stack alignment
- fixed some bugs
---------
2.6
- added support for arm clang
---------
2.5
- idle_hook procedure moved to oskernel
- simplified kernel code
---------
2.4
- kernel optimalization
---------
2.3
- example files moved to dedicated folder
- changed makefiles
- optimized kernel
---------
2.2
- minor update
- added c and c++ examples
- tsk_stop function doesn't destroy the stack storage
---------
2.1
- reorganization of the c++ code
- fixed bug in MessageQueueT<> class
- fixed bug in MailBoxQueueT<> class
- added c++ examples
---------
2.0
- added some features to c++ code
- added c++ examples
- added c++ class destructors guarding
---------
1.9
- added fast mutex object
- fast mutex is non-recursive and non-priority-inheritance
- added example for new feature
- fixed bug in semaphore initialization
- removed mutex type from mutex initializer
- mutex is recursive and priority inheritance
---------
1.8
- fixed bug in task initialization
- SysTick is used for triggering context switch in tick-less mode
---------
1.7
- the priority of main process is configurable
- fixed bug in startup file for armcc compiler
- fixed bug in core_sys_alloc function
---------
1.6
- fixed bug in tick-less mode
- optimized kernel
---------
1.5
- added sig_take function
- changed flag mode constants
- added some optimizations
- changed startup files
---------
1.4
- added signal object
- added example (main.c.19) for new feature
- changed flag object
---------
1.3
- rewritten memory allocation functions
- added tsk_startFrom function
- added example (main.c.18) for new feature
---------
1.2
- added new features for use in 'C' code only
- added examples (main.c.14-17) for some of new features
---------
1.1
- all comments have been translated into English and rewritten in interface files as documentation
- definitions and functions for creating semaphore now include the initial value of the semaphore counter
---------
1.0
- first stable version
- to do: translate comments into English
---------
0.9.5
- fixed semaphore functions
- removed semDirect constant
- fixed message queue
- fixed mailbox queue
- added message queue example (main.c.12)
- added mailbox queue example (main.c.13)
- fixed mutex
- removed tsk_force function
- lock/unlock functions moved from osport to oskernel
---------
0.9.4
- in cooperative mode context switch is realized by PendSV
- current task is a guard object in tsk_sleep function
- fixed bug with gcc -O3 optimization
- port_tsk_break renamed to core_tsk_break and rewritten in C
---------
0.9.3
- added barrier (bar) object
- added barrier example (main.c.10)
- added oslibc.c file
---------
0.9.2
- changed 'flg' procedures
- added 'flg' mode constants: flgAccept, flgClear
- added blocked mask for 'flg'
---------
0.9.1
- fix bug in non static objects definitions
- add guard object in tsk_sleep function
---------
0.9
- reorganization of the semaphore code
- added semDirect constant
- reorganization of the mutex code
---------
0.8.5d
- reorganize the file structure
- rename PRIVATE_XXX to static_XXX
---------
0.8.5c
- update makefiles
- update bitband.h
---------
0.8.5b
- more improvements in tick-less mode
- more improvements in support of virtual timers
---------
0.8.5a
- improved tick-less mode
- improved virtual timers support
- support for armv6-m and armv7-m devices at system level
---------
0.8.5
- added support for CM0, CM0+ and CM3 at system level
---------
0.8.4
- updated task startup procedures
---------
0.8.3a
- fixed bug in GRN_Led class
---------
0.8.3
- added configuration files for STM32F4_Discovery
- added configuration in example files
---------
0.8.2a
- tasks switch optimization
---------
0.8.2
- modified procedure for the preparation of the stack for new and restarted tasks
---------
0.8.1
- fixed bug in kernel function: core_tsk_prio
---------
0.8
- updated examples and several other changes
- changed 'flg' procedures
- added 'flg' mode constants: flgOne, flgAll
---------
0.7.3a
- small update for mutexes and semaphores
---------
0.7.3
- added some features to semaphores and mutexes
Source: README, updated 2020-07-10