蓝牙4.0 传统蓝牙 低功耗 OSAL

落花浮王杯 提交于 2020-02-07 07:24:15

蓝牙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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!