开源鸿蒙 板级驱动适配

2022-08-09 浏览 (1383)

板级驱动适配

板级驱动适配的主要步骤如下:

  1. SDK基于OpenHarmony提供的CMSIS/POSIX适配依赖OS的接口。 板级SDK适配OS接口存在两种选择:CMSIS、POSIX,当前liteos_m已经适配CMSIS大部分接口(覆盖:基础内核管理、线程管理、定时器、事件、互斥锁、信号量、队列等),基本可以满足直接移植,POSIX接口当前具备初步的移植能力,接口正在补全中;如果SDK原本基于CMSIS或者POSIX接口实现,理论上可以直接适配到liteos_m中;

    如果SDK原本基于freeRTOS等其他嵌入式OS或者本身有一层OS interface的抽象层,建议将依赖OS接口直接适配到CMSIS接口;

    例如,某产品定义的OS interface接口,创建queue的接口原型:

    bool osif_msg_queue_create(void **pp_handle, uint32_t msg_num, uint32_t msg_size)
    

    而CMSIS提供的接口原型如下:

    osMessageQueueId_t osMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr);
    

    对应的OS interface接口的原型可以按照如下适配:

    #include "CMSIS_os2.h"
    osMessageQueueId_t osMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr);
    bool osif_msg_queue_create(void **pp_handle, uint32_t msg_num, uint32_t msg_size)
    {
    	(*pp_handle) = osMessageQueueNew (msg_num, msg_size, NULL);
    	if((*pp_handle) == NULL){
    		return FALSE;
    	}
    	return TRUE;
    }
    
  2. 接口SDK编译问题或者基于OpenHarmony编译框架改造SDK,将SDK按照目录结构要求合入OpenHarmony的device目录中。 OS接口适配后,板级驱动集成到OpenHarmony也存在2种选择:

    • SDK独立编译,通过二进制形式直接链入OpenHarmony;
    • SDK基于OpenHarmony改造编译框架,从长期演进及后期联调便利性角度考虑,建议基于GN编译框架直接改造SDK编译框架,通过源码形式链入OpenHarmony工程。
  3. 验证SDK基本功能。

你可能感兴趣的文章

开源鸿蒙 概述

开源鸿蒙 Combo解决方案之ASR芯片移植案例

开源鸿蒙 轻量带屏解决方案之恒玄芯片移植案例

开源鸿蒙 三方组件适配

开源鸿蒙 系统组件调用

开源鸿蒙 HAL层实现

开源鸿蒙 lwIP组件适配

开源鸿蒙 移植概述

开源鸿蒙 XTS认证

开源鸿蒙 板级系统移植

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/3f0368135bc74048ab33a3fba7170169