OSAL系统相关问题
1、 允许中断
byte osal_int_enable( byte interrupt_id )
-- interrupt_id:中断标示符
2、禁止中断
byte osal_int_disable( byte interrupt_id )
-- interrupt_id:中断标示符
3、暂停中断
HAL_ENTER_CRITICAL_SECTION(x)
4、重新启用中断
HAL_EXIT_CRITICAL_SECTION(x)
OSAL内存操作:
1、分配内存
void *osal_mem_alloc( uint16 size )
-- size:分配缓冲区的大小
2、释放内存
void osal_mem_free( void *ptr )
-- ptr:指向释放的缓冲区
OSAL消息传递:
1、分配信息缓冲区
byte * osal_msg_allocate( uint16 len )
-- len:信息的长度
2、发送信息
byte osal_msg_send( byte destination_task, byte
*msg_ptr )
-- destination_task:接收信息任务的标示符
-- msg_ptr:消息指针
3、接收信息
byte *osal_msg_receive( byte task_id )
-- task_id:接收信息的任务ID
4、释放消息缓冲区
byte osal_msg_deallocate( byte *msg_ptr )
-- msg_ptr:消息指针
OSAL任务管理
1、任务初始化
byte osal_init_system( void )
--要创建的任务列表
2、任务开始
void osal_start_system( void )
--系统任务的主循环函数
3、获取活动任务ID
byte osal_self( void )
--中断服务子程序中调用将会发生错误
4、事件句柄的函数原型
(*pTaskEventHandlerFn)( unsigned char task_id, unsigned short event )
OSAL定时器:
1、启动定时器
byte osal_start_timerEx( byte taskID, UINT16 event_id, UINT16 timeout_value )
-- taskID:定时器终止时事件任务的任务ID
-- event_id:用户定义的事件,时间终止时通知这个事件
--定时器设置前的时间量
2、停止定时器
byte osal_stop_timerEx( byte task_id, UINT16 event_id )
-- task_id:事件任务的任务ID
-- event_id:用户自定义事件
3、读取系统时钟
uint32 osal_GetSystemClock( void )
--用来读取系统时钟(毫秒级)