OSAL系统程序应用API

1.消息管理API

消息管理API提供了一种机制,用于在具有不同处理环境的任务或处理元素之间交换消息(例如,中断服务例程或控制循环内调用的函数)。此API中的函数使任务能够分配和取消分配消息缓冲区, 发送命令消息到另一个任务并接收回复消息。

1.1分配一个消息缓冲区

uint8 *osal_msg_allocate( uint16 len )

1.2释放一个消息缓冲区

uint8 osal_msg_deallocate( uint8 *msg_ptr )

1.3将命令或数据消息发送到其他任务

uint8 osal_msg_send(uint8 destination_task, uint8 *msg_ptr )

1.4检索收到的命令消息

uint8 *osal_msg_receive(uint8 task_id )

1.5搜索与task_id和事件参数匹配的现有OSAL消息

osal_event_hdr_t *osal_msg_find(uint8 task_id, uint8 event)

2.任务同步API

2.1设置任务的事件标志

uint8 osal_set_event(uint8 task_id, uint16 event_flag )

3.时间管理API

3.1启动一个一次性定时器

uint8 osal_start_timerEx( uint8 taskID, uint16 event_id,uint32 timeout_value );

3.2启动一个自动重装载定时器

uint8 osal_start_reload_timer( uint8 taskID, uint16 event_id,uint32 timeout_value );

3.3停止已经启动的定时器

uint8 osal_stop_timerEx( uint8 task_id, uint16 event_id );

3.4获取系统时钟

uint32 osal_GetSystemClock( void );

4.中断管理API

4.1启用中断

uint8 osal_int_enable( uint8 interrupt_id )

4.2禁用中断

uint8 osal_int_disable( uint8 interrupt_id )

5.任务管理API

5.1初始化OSAL系统

uint8 osal_init_system( void )

5.2任务系统的主循环函数

void osal_start_system( void )
void osal_mem_free( void *ptr );

5.3轮询事件的函数

void osal_run_system( void )

5.4返回当前活动的OSAL任务的任务ID

uint8 osal_self( void )

6.内存管理API

6.1内存分配函数

void *osal_mem_alloc( uint16 size );

6.2内存释放函数

void osal_mem_free( void *ptr );

7.电源管理API

7.1初始化电源管理系统使用的变量

void osal_pwrmgr_init( void );

7.2进入掉电模式

void osal_pwrmgr_powerconserve( void );

7.3设置设备电源管理器的总体开/关状态

void osal_pwrmgr_device( uint8 pwrmgr_device );

7.4是否希望OSAL节能或者希望延迟节能

uint8 osal_pwrmgr_task_state(uint8 task_id, uint8 state );

8.NV内存管理API

8.1在NV中初始化一个项目

uint8 osal_nv_item_init( uint16 id, uint16 len, void *buf )

8.2从NV读取数据

uint8 osal_nv_read( uint16 id, uint16 offset, uint16 len, void *buf );

8.3向NV写入数据

uint8 osal_nv_write( uint16 id, uint16 offset, uint16 len, void *buf );

8.4在NV中删除一个项目

uint8 osal_nv_delete( uint16 id, uint16 len );

8.5获取NV中数据的长度

uint16 osal_nv_item_len( uint16 id );

8.6计算NV中元素的字节内存偏移量

osal_offsetof(type, member)

9.SNV内存管理API

9.1从NV读取数据

uint8 osal_snv_read( osalSnvId_t id, osalSnvLen_t len, void *pBuf );

9.2将数据写入NV

uint8 osal_snv_write( osalSnvId_t id, osalSnvLen_t len, void *pBuf );

10.OSAL系统时间

10.1更新时间

void osalTimeUpdate( void );

10.2初始化设备的时间

void osal_setClock( UTCTime newTime );

10.3可检索设备的当前时间

UTCTime osal_getClock( void );

10.4将UTC时间转换为UTC时间结构

void osal_ConvertUTCTime( UTCTimeStruct * tm, UTCTime secTime );

10.5将UTC时间结构转换为UTC时间

UTCTime osal_ConvertUTCSecs( UTCTimeStruct * tm );

11.OSAL0杂项

11.1产生16位随机数

uint16 osal_rand( void );

11.2内存比较

uint8 osal_memcmp( const void GENERIC *src1, const void GENERIC *src2,unsigned int len );

11.3将缓冲区设置为特定值

void *osal_memset( void *dest, uint8 value, int len );

11.4将一个缓冲区复制到另一个缓冲区

void *osal_memcpy( void *dst, const void GENERIC *src, unsigned int len );






你可能感兴趣的:(蓝牙开发小程序集源代码)