PDK API Guide for J721E
OSAL_API

Introduction

OSAL interface

Files

file  osal.h
 OS Abstraction Layer header.
 

Data Structures

struct  Osal_StaticMemStatus
 This structure holds static memory status parameters of OSAL library. More...
 
struct  Osal_memRange
 Osal memory address range. More...
 
struct  Osal_HwAttrs
 Osal hw attributes structure. More...
 

Functions

void Osal_DebugP_assert (int32_t expression, const char *file, int32_t line)
 
Osal_ThreadType Osal_getThreadType (void)
 Function to get the current thread type. More...
 
int32_t Osal_delay (uint32_t nTicks)
 Function to get the delay/sleep. More...
 
int32_t Osal_setHwAttrs (uint32_t ctrlBitMap, const Osal_HwAttrs *hwAttrs)
 Function to set the Hw Attributes. More...
 
int32_t Osal_getHwAttrs (Osal_HwAttrs *hwAttrs)
 Function to get the Hw Attributes. More...
 
int32_t Osal_getStaticMemStatus (Osal_StaticMemStatus *pMemStat)
 Function to get the static memory usage of OSAL library. More...
 
int32_t Osal_getCoreId (void)
 Function to get the core ID of the running Core. More...
 

Variables

Osal_HwAttrs gOsal_HwAttrs
 external references for Osal Hw Attribute structure More...
 

Enumerations

enum  Osal_ThreadType { Osal_ThreadType_Hwi, Osal_ThreadType_Swi, Osal_ThreadType_Task, Osal_ThreadType_Main }
 This enum defines the multiple thread types used under OSAL library. More...
 
enum  Osal_HwAccessType { OSAL_HWACCESS_UNRESTRICTED, OSAL_HWACCESS_RESTRICTED }
 Osal hw access type. More...
 

Macros

#define osal_OK   (0)
 
#define osal_FAILURE   (-(int32_t)(1))
 
#define osal_UNSUPPORTED   (-(int32_t)(2))
 
#define osal_NOMEM   (-(int32_t)(3))
 
#define OSAL_NONOS_SEMAPHOREP_SIZE_BYTES   ((uint32_t) 48U)
 
#define OSAL_NONOS_HWIP_SIZE_BYTES   ((uint32_t) 48U)
 
#define OSAL_TIRTOS_SEMAPHOREP_SIZE_BYTES   ((uint32_t) 96U)
 
#define OSAL_TIRTOS_HWIP_SIZE_BYTES   (96U)
 
#define OSAL_Assert(expression)
 Assert checking function. More...
 
#define OSAL_HWATTR_SET_EXT_CLK   (0x00000001U)
 
#define OSAL_HWATTR_SET_ECM_INT   (0x00000002U)
 
#define OSAL_HWATTR_SET_HWACCESS_TYPE   (0x00000004U)
 
#define OSAL_HWATTR_SET_OSALDELAY_TIMER_BASE   (0x00000008U)
 
#define OSAL_HWATTR_SET_SEMP_EXT_BASE   (0x00000010U)
 
#define OSAL_HWATTR_SET_HWIP_EXT_BASE   (0x00000020U)
 
#define OSAL_HWATTR_SET_CPU_FREQ   (0x00000040U)
 
#define OSAL_HWATTR_SET_TARG_PROC_LIST   (0x00000080)
 
#define OSAL_COMPILE_TIME_SIZE_CHECK(x, y)
 

Macro Definition Documentation

#define osal_OK   (0)
#define osal_FAILURE   (-(int32_t)(1))
#define osal_UNSUPPORTED   (-(int32_t)(2))
#define osal_NOMEM   (-(int32_t)(3))
#define OSAL_NONOS_SEMAPHOREP_SIZE_BYTES   ((uint32_t) 48U)
#define OSAL_NONOS_HWIP_SIZE_BYTES   ((uint32_t) 48U)
#define OSAL_TIRTOS_SEMAPHOREP_SIZE_BYTES   ((uint32_t) 96U)
#define OSAL_TIRTOS_HWIP_SIZE_BYTES   (96U)
#define OSAL_Assert (   expression)
Value:
(Osal_DebugP_assert((int32_t)((expression)?1:0),\
__FILE__, __LINE__))
void Osal_DebugP_assert(int32_t expression, const char *file, int32_t line)

Assert checking function.

If the expression is evaluated to true, the API does nothing. If it is evaluated to false, the underlying RTOS port implementation handles the assert via its mechanisms.

Parameters
expressionExpression to evaluate
#define OSAL_HWATTR_SET_EXT_CLK   (0x00000001U)

bit map to set external clock in Osal_HwAttr default value

#define OSAL_HWATTR_SET_ECM_INT   (0x00000002U)

bit map to set Event combiner interrupt numbers in the Osal_HwAttr

#define OSAL_HWATTR_SET_HWACCESS_TYPE   (0x00000004U)

bit map to set the hardware access type

#define OSAL_HWATTR_SET_OSALDELAY_TIMER_BASE   (0x00000008U)

bit map to set the osal_delay Timer base address

#define OSAL_HWATTR_SET_SEMP_EXT_BASE   (0x00000010U)

bit map to set the extended SemaphoreP memory block for additional SemaphoreP needs

#define OSAL_HWATTR_SET_HWIP_EXT_BASE   (0x00000020U)

bit map to set the extended HwiP memory block for additional HwiP needs

#define OSAL_HWATTR_SET_CPU_FREQ   (0x00000040U)

bit map to set the CPU frequency

#define OSAL_HWATTR_SET_TARG_PROC_LIST   (0x00000080)

bit map to set the target processor list to direct interrupts to specific core

#define OSAL_COMPILE_TIME_SIZE_CHECK (   x,
 
)
Value:
do { \
struct { \
uint8_t NegativeSizeIfPostulateFalse[(y) + 1U - (x)]; \
} PostulateCheck; \
} \
while ((bool)false)

This macro generates compilier error if postulate is false, so allows 0 overhead compile time size check. This "works" when the expression contains sizeof() which otherwise doesn't work with preprocessor

Enumeration Type Documentation

This enum defines the multiple thread types used under OSAL library.

Enumerator
Osal_ThreadType_Hwi 

Current thread is a Hwi

Osal_ThreadType_Swi 

Current thread is a Swi

Osal_ThreadType_Task 

Current thread is a Task

Osal_ThreadType_Main 

Current thread is Main

Osal hw access type.

Enumerator
OSAL_HWACCESS_UNRESTRICTED 
OSAL_HWACCESS_RESTRICTED 

Function Documentation

void Osal_DebugP_assert ( int32_t  expression,
const char *  file,
int32_t  line 
)
Osal_ThreadType Osal_getThreadType ( void  )

Function to get the current thread type.

Returns
current thread type
int32_t Osal_delay ( uint32_t  nTicks)

Function to get the delay/sleep.

Parameters
nTicksnumber of ticks

#

Note
for bare metal application it is number of 1ms ticks
    Prerequisites: Board_init() to be called before 
    invoking this API
Returns
osal_OK for success, osal_FAILURE on failure
int32_t Osal_setHwAttrs ( uint32_t  ctrlBitMap,
const Osal_HwAttrs hwAttrs 
)

Function to set the Hw Attributes.

Parameters
ctrlBitMapcontrol bit map as defined by the OSAL_HWATTR_SET control bits
hwAttrspointer to Osal_HwAttrs structure
Returns
osal_OK for success, osal_FAILURE on failure and osal_UNSUPPORTED for unsupported configurations osal_UNSUPPORTED is a non fatal error and applications can continue processing if they get this error code. Osal would be configured to utilize default timer for Osal_delay() API. The default timer address for AM437x and AM335x SoCs are found under ti/osal/soc/'<'soc_part'>'/osal_soc.h For other SoCs the time base address is not applicable and the API returns osal_UNSUPPORTED as the return value.
int32_t Osal_getHwAttrs ( Osal_HwAttrs hwAttrs)

Function to get the Hw Attributes.

Parameters
hwAttrspointer to Osal_HwAttrs structure
Returns
osal_OK for success, osal_FAILURE on failure
int32_t Osal_getStaticMemStatus ( Osal_StaticMemStatus pMemStat)

Function to get the static memory usage of OSAL library.

Parameters
pMemStatpointer to Osal_StaticMemStatus structure
Returns
osal_OK for success, osal_FAILURE on failure
int32_t Osal_getCoreId ( void  )

Function to get the core ID of the running Core.

Returns
core ID of the running core

Variable Documentation

Osal_HwAttrs gOsal_HwAttrs

external references for Osal Hw Attribute structure