Download Latest Version IntrOS-4.7.7z (314.6 kB)
Email in envelope

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

Home
Name Modified Size InfoDownloads / Week
README 2020-07-10 9.9 kB
IntrOS-4.7.7z 2020-07-10 314.6 kB
IntrOS-4.6.7z 2020-05-13 311.1 kB
IntrOS-4.5.7z 2020-02-08 263.3 kB
IntrOS-4.4.7z 2018-11-22 258.5 kB
IntrOS-4.3.7z 2018-10-23 257.6 kB
IntrOS-4.2.7z 2018-09-03 252.0 kB
IntrOS-4.1.7z 2018-08-01 251.6 kB
IntrOS-4.0.7z 2018-05-25 248.7 kB
IntrOS-3.9.7z 2018-05-02 248.7 kB
IntrOS-3.8.7z 2018-04-16 247.4 kB
IntrOS-3.7.7z 2018-04-09 246.1 kB
IntrOS-3.6.7z 2018-01-24 245.7 kB
IntrOS-3.5.7z 2018-01-05 255.7 kB
IntrOS-3.4.7z 2017-11-27 256.6 kB
IntrOS-3.3.7z 2017-10-26 245.0 kB
IntrOS-3.2.7z 2017-10-04 243.8 kB
IntrOS-3.1.7z 2017-08-31 240.9 kB
IntrOS-3.0.7z 2017-07-14 210.1 kB
IntrOS-2.8.7z 2017-07-14 239.2 kB
IntrOS-2.7.7z 2017-07-14 239.1 kB
IntrOS-2.6.7z 2017-07-14 238.5 kB
IntrOS-2.5.7z 2017-07-14 166.6 kB
IntrOS-2.4.7z 2017-07-14 166.8 kB
IntrOS-2.3.7z 2017-07-14 166.7 kB
IntrOS-2.2.7z 2017-07-14 166.6 kB
IntrOS-2.1.7z 2017-07-14 166.1 kB
Totals: 27 Items   6.2 MB 1
IntrOS
---------
Free, simple and tiny cooperative operating system (OS) designed for deeply embedded applications.
Target: ARM Cortex-M, STM8, AVR8.
It 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.
---------
Features:
- kernel can operate in cooperative (non-preemptive) mode only
- 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)
- barriers
- semaphores
- mutexes
- condition variables
- read/write locks
- memory pools
- stream buffers
- message buffers
- mailbox queues
- event queues
- job queues
- timers (one-shot, periodic)
- c++ wrapper
- all documentation is contained within the source files
- examples and templates are in separate repositories (https://github.com/stateos)
---------
4.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
- check task stack watermark
- added tsk_stackSpace function
- added MPU for prevention the use of the NULL / nullptr
- added MPU for prevention the stack overflow
- removed empty __CONSTRUCTOR definitions
- updated signal functions
- updated message buffer functions
- updated stream buffer functions
- totally changed and simplified OS API
- added read/write lock
- added lock guard
---------
4.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
- updated c++ wrapper
- 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 function)
---------
4.5
- updated os version
- 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
- updated gnucc osdefs header file for x86
---------
4.4
- added signal handler
- changed c++ functional procedures
- updated assertions
- updated c++ wrapper
---------
4.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
- updated flag object
- updated queue/buffer objects
- updated queue/buffer functions
- changed assert definitions
- updated signal object
- renamed ID_DELAYED to ID_BLOCKED
- added function aliases for the current task
- changed usage of signals
- updated event object and examples
- removed ID_BLOCKED constant
---------
4.2
- updated priv_rdy_insert internal procedure
- 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
- 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
- added tsk_kill function
- added flg_clear function
- reorganized kernel functions
- changed timer / task header
- added header init function
- rebuilded sleep and suspend / resume functions
---------
4.1
- 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 and tsk_sleepNext functions
- reorganized the order of functions
- the task/timer identifier is an enumeration constant
---------
4.0
- 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
- changed kernel filenames
---------
3.9
- updated kernel
- updated mailbox queue object
- updated stream buffer object
- renamed message queue to event queue
- added message buffer object
- added examples for new feature
- updated event queue object
---------
3.8
- added stream buffer object
- updated examples
- updated const qualifiers
- changed syntax of box_init function
- updated kernel
---------
3.7
- updated memory pool object
- updated list object
- updated examples
- updated kernel
- added box_push, msg_push and job_push functions
---------
3.6
- changed license to MIT
---------
3.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
- the OS_ASSERT definition has been removed, use DEBUG/NDEBUG instead
- updated tick-less mode
- updated waitUntil functions
- added tick-less mode for STM8S-Discovery board port
- added tick-less mode for ATtiny817-Xplained-Mini board port
- removed OS_TICKLESS definition, tick-less mode depends on OS_FREQUENCY value
- os can work with 16, 32 or 64-bit timer counter
---------
3.4
- added startup files for cosmic compiler
- added support for IAR compiler
---------
3.3
- updated inclusion of header files
- updated job queue object
- updated memory pool object
- updated internal MSIZE definition
---------
3.2
- added init functions for all objects
- added aliases for 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)
- internal system timer handler moved to kernel
- added job queue object
- changed internal implementation of some objects
- updated inclusion of header files
---------
3.1
- updated access to the c++ functional library
- updated port files
- added osdefs.h header file
- used config OS_TICKLESS instead of OS_TIMER
- added stack assertion
---------
3.0
- updated kernel security
- 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
- reorganized port directories
- optionally included c++ functional library (not available for all compilers)
- added examples for new feature
---------
2.9
- changed tsk_suspend / tsk_resume functions
- added tsk_suspend example
- rebuilt port / core files
- added support for ATtiny817-Xplained-Mini board
---------
2.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
---------
2.7
- added tick-less mode
- function core_tsk_break renamed to core_tsk_switch
- updated macros for task and timer objects
- updated examples
- reorganized kernel directories
- updated objects definitions
---------
2.6
- rename flgOne to flgAny
- function mem_reset renamed to mem_bind
- redefined timer macros and procedures
- function core_tsk_start renamed to core_tsk_loop
---------
2.5
- 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 changes in some definitions
- context switch is realized by functions setjmp / longjmp
- rebuilt kernel
---------
2.4
- rebuilt internal preprocessor definitions
- rebuilt data structures
- rebuilt c++ classes
- updated examples
- added support for Small Device C Compiler
---------
2.3
- some kernel improvements
- added tsk_join function
- added assertions
---------
2.2
- added support for STM8S-Discovery board
- updated timer object (tmr_start)
- updated task object (tsk_wait, tsk_give)
---------
2.1
- added list object
- updated memory pool object
- optimized c++ code
---------
2.0
- added memory pool object
- added memory pool example
- fixed bug in memory pool object
---------
1.9
- added support for COSMIC Software CORTEX-M C Cross Compiler
---------
1.8
- program code cleaned
---------
1.7
- changed startup files
- fixed bug in core_ctx_switch for armclang and Cortex-M0
---------
1.6
- fixed some bugs in arm clang code
- fixed stack alignment
- fixed some bugs
---------
1.5
- added support for arm clang
---------
1.4
- sys_init (port_sys_init) is invoked as a constructor
---------
1.3
- minor update
- added c++ examples
- example files moved to dedicated folder
- changed makefiles
---------
1.2
- reorganization of the code
- fixed bug in MailBoxQueueT<> class
---------
1.1
- add signal object
- add example for new feature
- change flag object
- add sig_take function
- add some optimizations
- change startup files
- fixed bug in startup file for armcc compiler
---------
1.0
- first release
Source: README, updated 2020-07-10