OSAL系统相关问题

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 )
  --用来读取系统时钟(毫秒级)

posted @ 2011-05-31 23:35  雪帕  阅读(1600)  评论(0编辑  收藏  举报