BLE协议栈之OSAL初探

  • Post author:
  • Post category:其他



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



2




osal_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


)释放空间。



版权声明:本文为xiaoleiacm原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。