蓝牙4.0
使用最广的短距离无线标准之一
重新定义蓝牙技术:低功耗
全新的蓝牙版本
低功耗蓝牙,高速蓝牙,传统蓝牙
logo
蓝牙4.0与传统蓝牙的关系
通信方式
蓝牙低功耗特性
高可靠性
快速连接
低成本,低功耗
传输距离
高安全性
OSAL
BLE系统架构
OSAL启动流程
void osalInitTasks(void)
{
uint8 taskID = 0;
tasksEvents = (uint16 *)osal_mem_alloc(sizeof(uint16) * tasksCnt);
osal_memset(tasksEvents, 0 , (sizeof(uint16) * tasksCnt));
LL_Init(taskID ++);
Hal_Init(taskID ++);
HCI_Init(taskID ++);
}
OSAL工作原理
事件表和函数表
OSAL层API接口
消息管理,任务同步,时间管理,中断管理,任务管理,内存管理,电源管理,非易失性内存管理
消息管理 API
/*
* 函数原型 uint8 *osal_msg_allocate(uint16 len)
* 功能描述 为消息分配缓存空间
*/
osal_msg_allocate();
/*
* 函数原型 uint8 osal_msg_deallocate(uint8 *msg_ptr)
* 功能描述 释放消息的缓存空间
*/
osal_msg_deallocate();
/*
* 函数原型
* 功能描述
*/
任务同步 API
时间管理 API
任务管理API
/*
* 函数原型 uint8 osal_init_system(void)
* 功能描述 初始化 OSAL, 该函数是第一个被调用的OSAL函数
*/
osal_init_system();
/*
* 函数原型
* 功能描述 该函数包含一个无限循环,它将查询所有的任务事件
* 如果有事件发生,则执行相应的操作
*/
osal_start_system();
内存管理 API
/*
* 函数原型 void *osal_mem_alloc(uint16 size);
* 功能描述 在堆上分配指定大小的缓冲区
*/
osal_mem_alloc();
/*
* 函数原型 void osal_mem_free(void *ptr)
* 功能描述 释放使用 osal_mem_allc() 分配的缓冲区
*/
osal_mem_free();
非易失性闪存管理
/*
*
*
*/
osal_nv_item_init();
osal_msg_allocate();
//函数原型 uint8
来源:CSDN
作者:CpuCode
链接:https://blog.csdn.net/qq_44226094/article/details/104169294