This section describes the differences between Driver Porting Layer of MCU+ SDK and OSAL from the Processor SDK RTOS (PDK). This can be used as migration aid when moving from Processor SDK RTOS (PDK) to MCU+ SDK.
There are changes in functions names, structure names and macro names. The changes in function names are listed below.
PDK | MCU+ SDK | Change Description / Remarks | |
---|---|---|---|
Address Translate | |||
NONE | Region based Address Translate | New in MCU+ SDK | |
Cache | |||
CacheP_wb | CacheP_wb | NO CHANGE | |
CacheP_Inv | CacheP_inv | API rename | |
CacheP_wbInv | CacheP_wbInv | NO CHANGE | |
CacheP_fenceCpu2Dma, CacheP_fenceDma2Cpu | NONE | NOT APPLICABLE for current supported SOCs | |
NONE | CacheP_enable, CacheP_disable, CacheP_getEnabled, CacheP_wbAll, CacheP_wbInvAll, CacheP_init | New APIs to complete functionality | |
Clock | |||
NONE | Clock | New in MCU+ SDK | |
Cycle Profiler | |||
CycleprofilerP_init | CycleCounterP_reset | API rename | |
CycleprofilerP_getTimeStamp | CycleCounterP_getCount32 | API rename | |
Debug | |||
DebugP_assert | DebugP_assert | NO CHANGE | |
DebugP_log0, DebugP_log1, DebugP_log2, DebugP_log3, DebugP_log4 | DebugP_log | Single API to replace multiple APIs | |
Event Combiner | |||
EventCombinerP_disableEvent, EventCombinerP_enableEvent, EventCombinerP_clearEvent, EventCombinerP_dispatchPlug, EventCombinerP_dispatchUnplug, EventCombinerP_getHwi, EventCombinerP_getIntNum, EventCombinerP_SingleRegisterInt, EventCombinerP_GroupRegisterInt | Use APIs from HW Interrupts | Single HW Interrupts API in MCU+ SDK to setup HWI | |
Event | |||
EventP_create | EventP_construct | Static allocation friendly API | |
EventP_delete | EventP_destruct | Static allocation friendly API | |
EventP_pend | EventP_waitBits | API change to make it more generic vs SysBIOS specific | |
EventP_post | EventP_setBits | API rename | |
EventP_getPostedEvents | EventP_getBits | API rename | |
EventP_Params_init | NONE | NOT required anymore | |
NONE | EventP_clearBits | New APIs to complete functionality | |
HWI | |||
HwiP_create | HwiP_construct | Static allocation friendly API | |
HwiP_delete | HwiP_destruct | Static allocation friendly API | |
HwiP_disable | HwiP_disable | NO CHANGE | |
HwiP_disableInterrupt | HwiP_disableInt | API rename | |
HwiP_enableInterrupt | HwiP_enableInt | API rename | |
HwiP_Params_init | HwiP_Params_init | NO CHANGE | |
HwiP_restore | HwiP_restore | NO CHANGE | |
HwiP_post | HwiP_post | NO CHANGE | |
HwiP_createDirect | NONE | NOT supported as of now in MCU+ SDK, use HwiP_construct instead | |
HwiP_getHandle, HwiP_getEventId | NONE | NOT needed | |
NONE | HwiP_init, HwiP_inISR, HwiP_enable, HwiP_clearInt, HwiP_restoreInt, HwiP_setArgs | New APIs to complete functionality | |
Memory | |||
MemoryP_ctrlAlloc, MemoryP_dataAlloc | HeapP_alloc | Use HeapP_construct to create "ctrl", "data" heaps as needed by application | |
MemoryP_ctrlFree, MemoryP_dataFree | HeapP_free | Use HeapP_construct to create "ctrl", "data" heaps as needed by application | |
MemoryP_getStats | HeapP_getHeapStats | ||
NONE | HeapP_construct, HeapP_destruct, HeapP_getFreeHeapSize, HeapP_getMinimumEverFreeHeapSize | New APIs to complete functionality | |
MPU ARMv7 | |||
NONE | MPU for ARMv7 (ARM R5, ARM M4) | New in MCU+ SDK | |
OSAL | |||
Osal_setHwAttrs, Osal_getHwAttrs, Osal_getStaticMemStatus, Osal_getCoreId | NONE | NOT needed anymore | |
Queue | |||
Osal_Queue_construct, Osal_Queue_handle, Osal_Queue_empty, Osal_Queue_get, Osal_Queue_put | NONE | NOT supported in MCU+ SDK. Use direct OS APIs for queue or write your own implementation instead. | |
RegisterIntr | |||
Osal_RegisterInterrupt_initParams | HwiP_Params_init | Single HW Interrupts API in MCU+ SDK to setup HWI | |
Osal_RegisterInterrupt, Osal_RegisterInterruptDirect | HwiP_construct | Single HW Interrupts API in MCU+ SDK to setup HWI | |
Osal_DeleteInterrupt | HwiP_disableInt | Single HW Interrupts API in MCU+ SDK to setup HWI | |
Osal_EnableInterrupt | HwiP_enableInt | Single HW Interrupts API in MCU+ SDK to setup HWI | |
Osal_DisableInterrupt | HwiP_disableInt | Single HW Interrupts API in MCU+ SDK to setup HWI | |
Osal_ClearInterrupt | HwiP_clearInt | Single HW Interrupts API in MCU+ SDK to setup HWI | |
Semaphore | |||
SemaphoreP_create | SemaphoreP_constructMutex, SemaphoreP_constructBinary, SemaphoreP_constructCounting | Static allocation friendly API. Distinct API for mutex vs binary semaphore. | |
SemaphoreP_delete | SemaphoreP_destruct | Static allocation friendly API | |
SemaphoreP_Params_init | NONE | NOT needed | |
SemaphoreP_pend | SemaphoreP_pend | NO CHANGE | |
SemaphoreP_post | SemaphoreP_post | NO CHANGE | |
SemaphoreP_postFromClock, SemaphoreP_postFromISR | SemaphoreP_post | Single API for all variants | |
SemaphoreP_getCount | NONE | SemaphoreP_getCount | NO CHANGE |
SemaphoreP_reset | NONE | Use SemaphoreP_pend with timeout as 0 to reset sempahore. | |
SWI | |||
SwiP_create, SwiP_delete, SwiP_Params_init, SwiP_post | NONE | SysBIOS specific API, see FreeRTOS for equivalent API in FreeRTOS. | |
Task | |||
TaskP_create | TaskP_construct | Static allocation friendly API | |
TaskP_delete | TaskP_destruct | Static allocation friendly API | |
TaskP_Params_init | TaskP_Params_init | NO CHANGE | |
TaskP_sleep | ClockP_sleep | API rename | |
TaskP_sleepInMsecs | ClockP_usleep | API rename | |
TaskP_yield | TaskP_yield | NO CHANGE | |
TaskP_setPrio, TaskP_self, TaskP_selfmacro, TaskP_isTerminated, OS_start | NONE | NOT needed | |
NONE | TaskP_exit | New APIs to complete functionality | |
Timer | |||
TimerP_create | TimerP_setup | Takes timer base address as input in MCU+ SDK and HWI register should be done from application. | |
TimerP_delete | NONE | NOT needed. Stop the timer when done. | |
TimerP_setPeriodMicroSecs | TimerP_setup | Separate API not needed. | |
TimerP_Params_init | TimerP_Params_init | NO CHANGE | |
TimerP_start | TimerP_start | Takes timer base address as input in MCU+ SDK | |
TimerP_stop | TimerP_stop | Takes timer base address as input in MCU+ SDK | |
TimerP_ClearInterrupt | TimerP_clearOverflowInt | Takes timer base address as input in MCU+ SDK | |
TimerP_getTimeInUsecs | ClockP_getTimeUsec | API rename | |
NONE | TimerP_getCount, TimerP_getReloadCount, TimerP_isOverflowed | New APIs to complete functionality |