消息管理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.1设置任务的事件标志
uint8 osal_set_event(uint8 task_id, uint16 event_flag )
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.1启用中断
uint8 osal_int_enable( uint8 interrupt_id )
4.2禁用中断
uint8 osal_int_disable( uint8 interrupt_id )
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.1内存分配函数
void *osal_mem_alloc( uint16 size );
6.2内存释放函数
void osal_mem_free( void *ptr );
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.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.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.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.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 );