This repository has been archived by the owner on Sep 23, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
OSA Real-Time Operating System (mirror)
License
ryukinix/osa
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
==================================================================================================== 06.03.2011 (__OSA_VERSION__ 110306) 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 ==================================================================================================== 26.12.2010 (__OSA_VERSION__ 101226) 1. _OS_RETURN_NOSAVE corrected for PIC18: CCS, MCC18, mikroC PRO (NOP added after call to _OS_ReturnNoSave) ==================================================================================================== 08.12.2010 (__OSA_VERSION__ 101208) 1. _OS_RETURN_NOSAVE corrected for HT-PICC18 (NOP added after call to _OS_ReturnNoSave) ==================================================================================================== 22.11.2010 (__OSA_VERSION__ 101122) 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 ==================================================================================================== 30.10.2010 (__OSA_VERSION__ 101030) 1. Another bug in qtimers fixed (error with force updating already run timer with zero time value) ==================================================================================================== 25.10.2010 (__OSA_VERSION__ 101025) 1. Bug fixed: OS_Qtimer_Break did not deleted timer from the list 2. Bug fixed: interrupt became disables after calling OS_Qtimer_Run for timer already presented in queue 3. Definition of OS_Ttimer_Delay fixed ==================================================================================================== 07.10.2010 (__OSA_VERSION__ 101007) 1. Port for STM8 added (IAR and Raisonance). Limitation: ROM <= 64K ==================================================================================================== 00.10.2010 (__OSA_VERSION__ 101000) 1. Port for STM8 added (Cosmic). Limitation: ROM <= 64K 2. All source have been updated and restructed to improve the visibility (some internal functions, macros and variables were renamed, all changes markers were removed) 3. The dirrectory tree was restructed. It is recommended (but not nessesary) to install this version in empty foulder. 4. Extended priority mode added (see manual "Events and priority" chapter) 5. Bug fixed with Qtimer deleting ==================================================================================================== 01.09.2010 (__OSAVERSION__ 100901) 1. Bug fixed: when task was deleted, the flag bReady still remained "1". Thus task could be run even after deleting. 2. Added port for MCC18 extended mode ==================================================================================================== 28.07.2010 (__OSAVERSION__ 100728) 1. OS_Task_IsEnable service added 2. Bug fixed in osa_mikroc16.h: this file contained duplication of prototypes for OS_Task_IsEnable, OS_Task_IsPaused, OS_Task_GetPriority ==================================================================================================== 01.07.2010 (__OSAVERSION__ 100701) Bug fixed (dynamic timers and static timers): when 4-bytes timer initialized with value of 2-bytes variable, two high bytes are lost. ==================================================================================================== 21.06.2010 (__OSAVERSION__ 100612) OS_Qtimer_Create now clears Timeout bit ==================================================================================================== 12.06.2010 (__OSAVERSION__ 100612) Removed queue services: OS_xxx_IsEmpty, OS_xxx_IsFree. Use inversion of OS_xxx_IsFull and OS_xxx_Check instead. ==================================================================================================== 31.05.2010 (__OSAVERSION__ 100531) 1. Removed limitation for WinAVR: any optimization level can be used now 2. Bug fixed for MCC18: queues with buffer size greater than 128 elements worked incorrectly (see _OS_Queue_Send) 3. OS_Csem_Check returns boolean value now 4. Types __osa_xxx renamed to OST_XXX (old names still avialable) ==================================================================================================== 10.05.2010 (__OSAVERSION__ 100510) 1. Bug fixed for mikroC16: All OS_xxx_Wait_TO services did not exited by timeout. OS_SchedRetPoint didn't set CanContinue flag. ==================================================================================================== 26.04.2010 (__OSAVERSION__ 100426) 1. Bug fixed: since 100420 service OS_Task_Create did not work properly for PIC18 and AVR (all tasks had zeroed starting address) ==================================================================================================== 20.04.2010 (__OSAVERSION__ 100420) 1. For PICC18: Macro _OS_SetIndfWord corrected (for code size > 0x10000) 2. Type of variable temp in _OS_XXX_Send changed __osa_word -> __osa_int16 (Otherwise there was troubles with queue size greater than 128) 3. For PICC16E, mikroC, CCS16, CCS18: Bug fixed in _OS_ClrReadySetClrCanContinue: OS_ENABLE_TTIMER->OS_ENABLE_TTIMERS 4. MikroC16: macros for context switching updated (see osa_mikorc16.h) 5. CCS16: OS_SchedRepPoint corrected: _OS_bTaskCanContinue has never been set ==================================================================================================== 17.03.2010 (__OSAVERSION__ 100317) 1. OS_FLAG_ATOMIC_WRITE_A corrected: __OS_FLAG_DI_A->__OS_FLAG_DI __OS_FLAG_RI_A->__OS_FLAG_RI ==================================================================================================== 16.03.2010 (__OSAVERSION__ 100316) 1. Bug fixed under IAR for AVR: register Y saved incorrectly ==================================================================================================== 14.03.2010 (__OSAVERSION__ 100314) 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 ==================================================================================================== 12.03.2010 (__OSAVERSION__ 100312) 1. AVR: Atomic work with bit variables added ==================================================================================================== 11.03.2010 (__OSAVERSION__ 100311) 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_GetCurTask()) 12. _OST_INT_TYPE renamed to __osa_word (old name still allowed) 13. OS_Task_GetCreated() service added ==================================================================================================== 10.02.2010 (__OSAVERSION__ 100210) 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 5. OS_Init(): _OS_Dtimers.Next = 0 replaced with _OS_Dtimers.Flags.bNextEnable = 0 6. Dtimer's functions moved to osa_dtimer.c file 7. OS_(x)timer_Break services added. (x) = T, S, Q, D 8. Bug fixed in common OS_DtimersWork: postfix ++ replaced with prefix ++ 9. 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 10. Bug fixed: qualifier OS_BANK mover after '*' in OS_Dtimers declaration 11. Bug fixed in OS_Init: variable for cycle counter was formed incorrectly 12. OS_Task_Create now saves position of new task's descriptor in _OS_temp 13. Error #21 added (bad qtimer's size); Error #22 added (qtimers not supported with 12-bit PICs) ==================================================================================================== 19.12.2009 (__OSAVERSION__ 91219) _OS_Return replaced with OS_Yield in service OS_Task_Pause (the return address was not stored on exit task) ==================================================================================================== 18.12.2009 (__OSAVERSION__ 91218) 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 ==================================================================================================== 10.12.2009 (__OSAVERSION__ 91210) 1. Services for work inside interrupt were corrected. Now is is allowed to use in ISR services with suffix "_I" only 2. Added services: OS_Bsem_Check_I OS_Bsem_Reset_I OS_Bsem_Set_I OS_Bsem_Signal_I OS_Bsem_Switch_I OS_Csem_Accept_I OS_Csem_Check_I OS_Csem_Reset_I OS_Csem_Set_I OS_Csem_SetValue_I OS_Csem_Signal_Now_I OS_Flag_Check_00_I OS_Flag_Check_0x_I OS_Flag_Check_11_I OS_Flag_Check_1x_I OS_Flag_Init_I OS_Flag_Set_0_I OS_Flag_Set_1_I OS_Msg_Accept_I OS_Msg_Check_I OS_Msg_Send_I OS_Queue_Check_I OS_Queue_IsEmpty_I OS_Queue_IsFull_I OS_Queue_Send_I OS_Smsg_Accept_I OS_Smsg_Check_I OS_Smsg_Send_I OS_Squeue_Check_I OS_Squeue_IsEmpty_I OS_Squeue_IsFull_I OS_Squeue_Send_I 3. Added OS_ENABLE_INT_BSEM constant 4. Added empty service OS_Task_Reserve for different compilers compabitily 5. OS_Csem_Signal now waits if counting semaphore is already atmaximum. Alternate service added: OS_Csem_Signal_Now Internal: 1. Removed functions _OS_Smsg_Check and _OS_Csem_Check 2. Added internal functions _OS_DI_INT and _OS_RI_INT 3. For MCC30: Assignments in OS_Init and cirtical sections routines were reencoded to avoid warnings 3. osa_picc12.c: routines SQueue renamed to Squeue ==================================================================================================== 09.11.2009 (__OSAVERSION__ 91109) 1. Limitation for MCC30 removed: now OSA allows to allocate OSA code at high addresses of ROM (>0x10000) 2. Corrected OS_Wait and OS_Wait_TO macro redefinitions for mikroC PRO ==================================================================================================== 03.11.2009 (__OSAVERSION__ 91103) 1. Bug fixed: OS_Wait(expr) service did not work when low byte of 'expr' was zeroed. Same about OS_Flag_Wait for 16- and 32-bit flags when waiting higher than 7-th bits. 2. OS_Task_Replace_P was added for PICC and PICC18. (Other compilers not support this service yet) 3. Bug fixed for PIC12, PIC18, PIC24, dsPIC: OS_Yield executed after timeout in OS_xxx_Wait_TO could break the task (leave it forever). 4. Increased speed of scheduler for non-priority mode (in OS_TASKS times) ==================================================================================================== 29.10.2009 (__OSAVERSION__ 91029) 1. Type 'bit' replaced with '__osa_bool' for internal functions _OS_CheckSmsg and _OS_CheckEvent 2. osa.h: added braces to OS_SET_TASK_IRP and OS_CLEAR_IRP macors ==================================================================================================== 28.11.2009 (__OSAVERSION__ 91028) 1. Bug fixed: Compiler exited with error on OS_Queue_Clear() service 2. mikroC PRO for PIC16: Added fast routines for IRP setting when OS_ADDRESS_TASK defined 3. License added (BSD) ==================================================================================================== 07.10.2009 (__OSAVERSION__ 91007) 1. microC PRO for PIC16 update: task descriptors can be allocated in bank2 or bank3 using OS_ADDESS_TASK constant in osacgh.h ==================================================================================================== 22.09.2009 (__OSAVERSION__ 90922) 1. mikroC for PIC16 added (work with bank0 and bank1 only) 2. Removed #asm return #endasm from _OS_CLEAR_READY and _OS_CLEAR_READY_SET_CANCONTINUE ==================================================================================================== 22.07.2009 (__OSAVERSION__ 90722) 1. Service OS_Task_Define was added for CCS compilers ==================================================================================================== 16.07.2009 (__OSAVERSION__ 90716) 1. Bug fixed for CCS18: OS_InitDelay wrote incorrect value into INDF. 2. Example for MCC18 added ==================================================================================================== 07.07.2009 (__OSAVERSION__ 90707) 1. Bug fixed: OS_EI was defined incorrectly for MCC18 2. Macros for work with tasks did not work with CCS (now braces around parameter pTask are removed) ==================================================================================================== 29.06.2009 (__OSAVERSION__ 90701) 1. OSA ported to CCS compiler for PIC16 and PIC18 chips. 2. Bug fixed: OS_Task_Create did not return OS_IsError when all descriptors are busy. 3. Internal arrays renamed: OS_BSems -> OS_Bsem, OS_STimers -> OS_STimer. ==================================================================================================== 25.06.2009 (__OSAVERSION__ 90700) 1. OSA ported to mikroC PRO (version 2.15 or grater) for PIC18. 2. Some cosmetic modifications: 1. OS_RI and OS_DI removed from common function _OS_Csem_Signal, since they are already present in macro OS_Csem_Signal. 2. Field cTempFSR1 removed from TCB for PICC18. 3. In common _OS_Task_Create function (in osa.c) added "OS_state = priority" when _OS_Cur_Task points to new task. 4. _OS_Task_Create removed from osa_picc16.c and osa_picc18.h, since it is identical to common. 5. Dtimer's functions moved from osa_picc18.c and osa_mcc18.c into osa.c. 6. Internal services renamed: _OS_GetRetPoint -> _OS_RETURN_SAVE _OS_ReturnNoSave -> _OS_RETURN_NO_SAVE 7. Functions _OS_EnterCritical and _OS_LeaveCritical moved from osa_picc18.c and osa_mcc18.c into osa.c ==================================================================================================== 18.06.2009 (__OSAVERSION__ 90618) 1. Bug fixed: simple message could be skipped when sending expression as simple msg. 2. Added alternate service names: OS_Smsg_ for OS_SMsg_ and OS_Squeue for OS_SQueue. 3. All processor specific services and definitions moved from common files into "port\" foulder. 4. Include sections moved from "osa.*" files into "port\osa_include.*" files. 5. Renamed some internal macros for dinamic timers. 6. Improoved new way to save GIE flags in queue and csem routines. ==================================================================================================== 06.04.2009 (__OSAVERSION__ 90406) 1. Internal service OS_IsSMsgFree() declaration corrected (it was declared incorrectly when sizeof(OST_SMSG) != 1). 2. Bug fixed in OSAcfg_Tool: when file opened by "Browse..." button all fields became default. ==================================================================================================== 02.04.2009 (__OSAVERSION__ 90402) 1. Assembler directives "equ" replaced with "set" in osa_picc18.h 2. In 'osa.c' symbol '>' replaced with '!=' when checking OS_SMSG_SIZE and OS_CSEM_SIZE. These two constants are defined as "0" for MCC18. ==================================================================================================== 21.03.2009 (__OSAVERSION__ 90321) 1. Fixed bug for MCC30: there was a possibility of blocking task after OS_xxx_Wait_TO timeout occured. 2. Fixed bug for PICC18 and MCC18: interrupts were disabled after OS_Dtimer_Delete execution. 3. Some code modifications for called from interrupt services ==================================================================================================== 03.03.2009 (__OSAVERSION__ 90303) 1. OSAcfg_Tool bug corrected: enabling critical section had no effect. ==================================================================================================== 26.02.2009 (__OSAVERSION__ 90226) 1. 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. ==================================================================================================== 22.01.2009 (__OSAVERSION__ 90200) 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\kernel\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_PMSG -> OST_MSG_CB * OST_QMSG -> OST_QUEUE * OST_QSMSG -> OST_QSMSG - 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 project 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 [[en:osa:ref:appendix:errorlist|error list]]. This problem is fixed by changing in SAcfg.h OST_MSG->OS_MSG_TYPE and OST_SMSG->OS_SMSG_TYPE. ==================================================================================================== 15.01.2009 (__OSAVERSION__ 90115) 1. 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 returinng 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) ==================================================================================================== 09.01.2009 (__OSAVERSION__ 90109) 1. Bug fixed: since 81227 non-priority mode did not work properly. 2. Corrected macros fr STimers in osa_picc16.h (specifier OS_STIMERS_BANK was skipped) ==================================================================================================== 27.12.2008 (__OSAVERSION__ 81227) 1. Constant OS_ENABLE_INT_SEVICE was renamed to OS_ENABLE_INT_ALL (old name kept too) 2. It is possible now to define ENABLE_INT for each type of services: - OS_ENABLE_INT_CSEM - OS_ENABLE_INT_MSG - OS_ENABLE_INT_SMSG - OS_ENABLE_INT_QMSG (Constant OS_ENABLE_ALL does not include OS_ENEBALE_INT_xxx!) 3. Services for work in interrupts can be used with same services from task (i.e. OS_IntSignalCSem and OS_SignalCSem can be used in one program now) 4. It is possible now to pause, continue and delete (or stop) task from external tasks. Services added: - OS_GetCurTask() - OS_DeleteTask(pTask) - OS_PauseTask(pTask) - OS_ContinueTask(pTask) Added macro "this_task" wich means pointer to task being executed at now. 5. Task priority can be changed outside task. - OS_SetTaskPriority - (NEW PARAMETERS!!!) - OS_GetTaskPriority - (NEW PARAMETERS!!!) 6. All task services were replaced into "tasks.h" ==================================================================================================== 06.12.2008 (__OSAVERSION__ 81206) 1. Bug fixed: project unabled to built when defined old style constant OS_PTIMER_SIZE. 2. Bug fixed: OS_GetDTimer was not defined properly. ==================================================================================================== 26.11.2008 (__OSAVERSION__ 81126) 1. All dynamic timers services OS_xxxPTimer renamed to OS_xxxDTimer. Old names are still supported for compability. ==================================================================================================== 25.10.2008 (__OSAVERSION__ 81025) 1. All comments are translated in english.
About
OSA Real-Time Operating System (mirror)
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published