OSA : History

110306

2011, mar, 6 download

  1. Bug fixed for WinAVR: local variables were not saved properly on WAIT services
  2. Bug fixed for mikroC PRO (pic18): inline assembler in _OS_JumpToTask did not compiled when case sensitivity option enabled

101226

2010, dec, 26

  1. _OS_RETURN_NOSAVE corrected for PIC18: CCS, MCC18, mikroC PRO (NOP added after call to _OS_ReturnNoSave)

101208

2010, dec, 8 download

  1. _OS_RETURN_NOSAVE corrected for HT-PICC18 (NOP added after call to _OS_ReturnNoSave)

101122

2010, nov, 22 download

  1. Fixed bug in IAR's AVR port:
    • 2 bytes stack pointer saving/restoring
    • saving Y on context switch
    • jumping to task when ROM > 64K

101030

2010, oct, 30 download

  1. Another bug in qtimers fixed (error with force updating already run timer with zero time value)

101025

2010, oct, 25 download

  1. Qtimer's services corrected: OS_Qtimer_Run and OS_Qtimer_Break

101007

2010, oct, 7 download

  1. Port for STM8 (IAR and Raisonance) added;
  2. Extended priority mode corrected (in some cases low-priority tasks did not get control if high-priority task was allway ready)

101000

2010, oct download

  1. Port for STM8 (Cosmic) added;
  2. New extended priority mode added (refer to Events and priority chapter)
  3. osacfg_tool.exe upgraded (see below)
  4. source files were remounted
  5. structer of folders was recombined. (It is required, but not nessesary, to remove previous version of OSA before installing new one)

100621

2010, jun, 21 download


100612

2010, jun, 12 download


100531

2010, may, 31 download


100510

2010, may, 10 download


100426

2010, apr, 26 download


100420

2010, apr, 20 download


100317

2010, mar, 17 download

  1. OS_FLAG_ATOMIC_WRITE_A corrected (in file osa_flags.h):
    • __OS_FLAG_DI_A→__OS_FLAG_DI
    • __OS_FLAG_RI_A→__OS_FLAG_RI

100316

2010, mar, 16 download

100314

2010, mar, 14 download

  1. Added atomic flags writing
  2. Flags services renamed:
    • 1→Set
    • 0→Clear
    • 1x→On
    • 0x→Off
    • 11→AllOn
    • 0x→AllOff
  3. WinAVR code written with assembler.
  4. Due to WinAVR internal error it is possible to use OSA with -o0 optimization only
  5. Functions for queues, tasks, csems and system were moved to their own files
  6. Type OS_MSG_CB is volatile now
  7. OS_BSem is volatile now
  8. Added OS_ENABLE_INT_FLAG
  9. Memory usage statistic updated

100311

2010, mar, 11 download

  1. Port for PIC16 enhanced added (PICC PRO 9.70 or higher)
  2. Port for WinAVR added
  3. Port for IAR (AVR) added
  4. Sevice OS_Task_Create_M added (for future purposes)
  5. Sevice OS_Task_Replace_P added: MCC18, MCC30, mikroC16, mikroC18, CCS16, CCS18
  6. Clearing "priority" removed from OS_Init
  7. _OS_Stimers is volatile now
  8. OST_TASK_STATE, OST_QTIMER_FLAGS and OST_DTIMER_FLAGS are volatile now
  9. Dtimers and Qtimers are disabled now when OS_ENABLE_ALL defined. They should be enabled manualy in osacfg.h
  10. OS_EnterInt() and OS_LeaveInt() now are empty marcos for all except PICC and PICC18
  11. OS_Task_GetCur() service added (same as OS_Task_GetCur())
  12. OST_WORD
  13. OS_Task_GetCreated() service added

100210

2010, feb, 10 download

  1. New type of timers added - Qtimers (queue of timers). New services:
    • OS_Qtimer_Create
    • OS_Qtimer_Delete
    • OS_Qtimer_Run
    • OS_Qtimer_Break
    • OS_Qtimer_Delay
    • OS_Qtimer_Wait
    • OS_Qtimer_Get
    • OS_Qtimer_IsRun
    • OS_Qtimer_Check
  2. Added services for assignement static timers in run-time. New services:
    • OS_Stimer_Alloc
    • OS_Stimer_Found
    • OS_Stimer_Free
    • New constant: OS_STIMERS_ENABLE_ALLOCATION
  3. Added services for working with task timers (see osa_tasks.h). New services:
    • OS_Ttimer_Run
    • OS_Ttimer_Break
    • OS_Ttimer_Delay
    • OS_Ttimer_Wait
    • OS_Ttimer_Get
    • OS_Ttimer_IsRun
    • OS_Ttimer_Check
    • OS_Ttimer_Pause
    • OS_Ttimer_Continue
  4. OS_Init(): _OS_Dtimers.Next = 0 replaced with _OS_Dtimers.Flags.bNextEnable = 0
  5. Dtimer's functions moved to osa_dtimer.c file
  6. OS_(x)timer_Break services added. (x) = T, S, Q, D
  7. Bug fixed in common OS_DtimersWork: postfix ++ replaced with prefix ++
  8. Now it is possible to optimize code of work with static timers and task timers by speed (default) or by size. New constants:
    • OS_STIMERS_OPTIMIZE_SIZE
    • OS_TTIMERS_OPTIMIZE_SIZE
  9. Bug fixed: qualifier OS_BANK mover after '*' in OS_Dtimers declaration
  10. Bug fixed in OS_Init: variable for cycle counter was formed incorrectly
  11. OS_Task_Create now saves position of new task's descriptor in _OS_temp
  12. Error #21 added (bad qtimer's size); Error #22 added (qtimers not supported with 12-bit PICs)

91219

2009, dec, 19 download


91218

2009, dec, 18 download


91210

2009, dec, 10 download


91109

2009, nov, 9 download


91103

2009, nov, 3 download


91029

2009, oct, 29 download


91027

2009, oct, 28 download


91007

2009, oct, 7 download


90722

2009, jul, 22 download


90716

2009, jul, 16 download


90707

2009, jul, 07 download


90701

2009, jul, 01 download


90700

2009, jun, 25 download

90406

2009, apr, 6 download


90402

2009, apr, 2 download


90321

2009, mar, 21 download


90303

2009, mar, 3 download


90226

2009, february, 26 download


90200

2009, january, 22 download

Most services and some constants and types are renamed. New naming scheme is: OS_<object>_<action>_<suffix>, where:

object is an object name (like Csem, Bsem, Msg, Queue, Dtimer ect.);
action what do we do with object (Set, Clear, Wait ect.)
suffix additional info (I - works in interrupt, TO - check timeout, ect.)
  1. This modification was made to simplify membering all services and to simplify programming when using context substituting editor.
  2. To view all names replacements see file "osa\service\osa_oldnames.h"
  3. Renaming in OSA:
    • Object names:
      • SMsg → Smsg
      • QMsg → Queue
      • QSMsg → SQueue
      • CSem → Csem
      • BSem → Bsem
      • DTimer → Dtimer
      • STimer → Stimer
    • Constants:
      • OS_ENABLE_QMSG → OS_ENABLE_QUEUE
      • OS_ENABLE_QSMSG → OS_ENABLE_SQUEUE
      • OS_ENABLE_INT_QMSG → OS_ENABLE_INT_QUEUE
    • Types:
      • OST_MSG_CB → OST_MSG_CB
      • OST_QUEUE → OST_QUEUE
      • OST_SQUEUE → OST_SQUEUE
  4. Types of MSG and SMSG now can be changed only througth OS_MSG_TYPE and OS_SMSG_TYPE constants.
  5. Source code was formatted to be most friendly to programmer
  6. New OSAcfg_Tool aviable to work with old- and new-styled names.

OSA 90200 is compatibile to all projects written with older versions. There is only one exception: types of MSG and SMSG can not be modified directly in OSAcfg.h. If they will, compiler will exit with "OSA error #14" or "OSA error #15" (see error list. This problem is fixed by changing in SAcfg.h OST_MSG→OS_MSG_TYPE and OST_SMSG→OS_SMSG_TYPE.


90115

2009, january, 15 download


90109

2009, january, 9 download


81227

2008, december, 27 download

(Constant OS_ENABLE_ALL does not include OS_ENEBALE_INT_xxx!)

Added macro "this_task" wich means pointer to task being executed at now.


81206

2008, december, 6 download


81126

2008, november, 6 download


81025

2008, october, 25 download


Old versions in russian