2011, mar, 6 download
Bug fixed for WinAVR: local variables were not saved properly on WAIT services
Bug fixed for mikroC PRO (pic18): inline assembler in _
OS_JumpToTask did not compiled when case sensitivity option enabled
2010, dec, 26
_
OS_RETURN_NOSAVE corrected for PIC18: CCS, MCC18, mikroC PRO (NOP added after call to _
OS_ReturnNoSave)
2010, dec, 8 download
_
OS_RETURN_NOSAVE corrected for HT-PICC18 (NOP added after call to _
OS_ReturnNoSave)
2010, nov, 22 download
Fixed bug in IAR's AVR port:
2 bytes stack pointer saving/restoring
saving Y on context switch
jumping to task when ROM > 64K
2010, oct, 30 download
Another bug in qtimers fixed (error with force updating already run timer with zero time value)
2010, oct, 25 download
Qtimer's services corrected:
OS_Qtimer_Run and
OS_Qtimer_Break
2010, oct, 7 download
Port for STM8 (IAR and Raisonance) added;
Extended priority mode corrected (in some cases low-priority tasks did not get control if high-priority task was allway ready)
2010, oct download
Port for STM8 (Cosmic) added;
-
osacfg_tool.exe upgraded (see below)
source files were remounted
structer of folders was recombined. (It is required, but not nessesary, to remove previous version of OSA before installing new one)
2010, jun, 21 download
Service
OS_Qtimer_Create() did not cleared Timeout bit. Now it does.
2010, jun, 12 download
Removed services
OS_xxx_IsFree and
OS_xxx_IsEmpty (xxx = [Queue, Squeue]). Use inversion of
OS_xxx_IsFull and
OS_xxx_Check instead.
2010, may, 10 download
Bug fixed for mikroC for PIC16: All
OS_xxx_Wait_TO services did not exited by timeout.
2010, apr, 26 download
Bug fixed (appeared in 100420):
OS_Task_Create worked incorrectly for PIC18 and AVR controllers (the task's starting address was zero after creating)
2010, mar, 17 download
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
2010, mar, 14 download
Added atomic flags writing
Flags services renamed:
1→Set
0→Clear
1x→On
0x→Off
11→AllOn
0x→AllOff
WinAVR code written with assembler.
Due to WinAVR internal error it is possible to use OSA with -o0 optimization only
Functions for queues, tasks, csems and system were moved to their own files
Type
OS_MSG_CB is volatile now
-
-
-
2010, mar, 11 download
Port for PIC16 enhanced added (PICC PRO 9.70 or higher)
Port for WinAVR added
Port for IAR (AVR) added
Sevice
OS_Task_Create_M added (for future purposes)
Sevice
OS_Task_Replace_P added: MCC18, MCC30, mikroC16, mikroC18, CCS16, CCS18
Clearing "priority" removed from
OS_Init
_
OS_Stimers is volatile now
OST_TASK_STATE, OST_QTIMER_FLAGS and OST_DTIMER_FLAGS are volatile now
Dtimers and Qtimers are disabled now when
OS_ENABLE_ALL defined. They should be enabled manualy in osacfg.h
OS_EnterInt() and
OS_LeaveInt() now are empty marcos for all except PICC and PICC18
OS_Task_GetCur() service added (same as
OS_Task_GetCur())
OST_WORD
OS_Task_GetCreated() service added
2010, feb, 10 download
New type of timers added - Qtimers (queue of timers). New services:
Added services for assignement static timers in run-time. New services:
-
-
-
New constant:
OS_STIMERS_ENABLE_ALLOCATION
Added services for working with task timers (see osa_tasks.h). New services:
OS_Init(): _
OS_Dtimers.Next = 0 replaced with _
OS_Dtimers.Flags.bNextEnable = 0
Dtimer's functions moved to osa_dtimer.c file
OS_(x)timer_Break services added. (x) = T, S, Q, D
Bug fixed in common
OS_DtimersWork: postfix ++ replaced with prefix ++
Now it is possible to optimize code of work with static timers and task timers by speed (default) or by size. New constants:
Bug fixed: qualifier
OS_BANK mover after '*' in
OS_Dtimers declaration
Bug fixed in
OS_Init: variable for cycle counter was formed incorrectly
OS_Task_Create now saves position of new task's descriptor in _
OS_temp
Error #21 added (bad qtimer's size); Error #22 added (qtimers not supported with 12-bit PICs)
2009, dec, 19 download
Bug fixed: _
OS_Return replaced with
OS_Yield in service
OS_Task_Pause (the return address did not stored on exit task)
2009, dec, 18 download
OS_Task_Pause and
OS_Task_Delete were corrected: these services made a comparison of _
OS_CurTask's and service argument's addresses, instead of comparing their values
2009, dec, 10 download
Added
OS_ENABLE_INT_BSEM constant
Added empty service
OS_Task_Reserve for different compilers compabitily
OS_Csem_Signal now waits if counting semaphore is already atmaximum. Alternate service added:
OS_Csem_Signal_Now
2009, oct, 29 download
Type 'bit' replaced with '__osa_bool' for internal functions _
OS_CheckSmsg and _
OS_CheckEvent
osa.h: added braces to
OS_SET_TASK_IRP and
OS_CLEAR_IRP macors
2009, oct, 28 download
License added (BSD)
Bug fixed: Compiler exited with error on
OS_Queue_Clear() service
mikroC PRO for PIC16: Added fast routines for IRP setting when
OS_ADDRESS_TASK defined
2009, jul, 16 download
Bug fixed for CCS18:
OS_Delay worked incorrectly
Added example for MCC18
2009, february, 26 download
Bug fixed:
OS_Task_Replace did not tell to linker that created task will be called indirectly. At this reason call-tree was built incorrectly.
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.) |
This modification was made to simplify membering all services and to simplify programming when using context substituting editor.
To view all names replacements see file "osa\service\osa_oldnames.h"
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
Types of MSG and SMSG now can be changed only througth
OS_MSG_TYPE and
OS_SMSG_TYPE constants.
Source code was formatted to be most friendly to programmer
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.
2009, january, 15 download
Bug fixed: HT-PICC have a bug with assembler optimization when inline assembler used. In rare cases due to this bug, situation with incorrect RP1:RP0 settings could occure when returning to task after context switching. This bug has been worked arround by replacing assembler MACRO with C-MACRO (see MACRO _goto_
OS_SchedRetPoint and _
OS_GetReturnPoint in osa_picc16.h)
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.
2008, december, 6 download
Bug fixed: project unabled to built when defined old style constant
OS_DTIMER_SIZE.
Bug fixed:
OS_Dtimer_Get was not defined properly.
2008, november, 6 download
All dynamic timers services
OS_xxxDTimer renamed to
OS_xxxDTimer. Old names are still supported for compability.