BLE协议栈之OSAL初探

 

 OSAL (Operating System Abstraction  Layer) 

 

一,Task Initialization  

二,Task Events and Event Processing 

   1 事件标志 16bit的值,(系统保留事件标志 0x8000 SYS_EVENT_MSG使用)。

               为了使用SOAL ,在main函数的最后需要名为osal_start_system()的进程来调用启动函数 osalInitTasks(),osalInitTask()逐个调用BLE协议栈各层启动进程进行初始化操

作。 随后设置一个任务ID(TaskID:大小为8bit),跳入循环等待执行任务,系统启动完成。

  

    2 事件数组 tasksArr 

 

    3 产生事件的两种方式:

1)osal_set_event();(prototype in OSAL.h

2osal_start_timerEx();(prototype in OSAL_Timers.h)

 

三,OSAL Messages

 osal_msg_allocate 申请发送信息的空间(内部已经使用了osal_mem_alloc ),然后使用osal_msg_send发送其他任务。

 当消息到达时,SYS_EVENT_MSG置位,并使用 osal_msg_receive接收信息。

 手册建议每一个任务的消息都建立独立的消息处理函数。最后使用osal_msg_deallocate)内部已经使用了osal_mem_free)释放空间。

 

你可能感兴趣的:(BLE协议栈)