0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony瘦设备内核移植实战(一)

电子发烧友开源社区 来源:未知 2023-05-11 20:16 次阅读

背景

在各行各业存在很多不同的智能设备,每个设备都使用芯片去实现不同的业务场景需求。本文将以常用的STM32F407ZG芯片为例,介绍OpenHarmony瘦设备内核移植方法,希望能对热爱OpenHarmony的开发小伙伴有所帮助。

认识芯片架构、Soc、开发板

36aa19c4-e64d-11ed-ab56-dac502259ad0.png

芯片架构是指芯片的内部器件构造以及对应的指令集,比如PC使用的英特尔i7或者AMD的R7-4800都是x86架构,手机使用的骁龙8Gen2芯片使用的则是ARM架构。

SoC是指具体的芯片架构实现,芯片厂商针对不同的应用场景开发出的芯片各不相同,但要符合架构定义,比如STM32F470就会有不同的定制版本,有些Flash会大一些,有些则是芯片封装或者引脚数不同。

开发板则是板卡厂商针对不同的产品定制的不同开发板,会根据业务需求设计不同的PCB、外设器件。

本文采用正点原子的STM32F407ZG开发板,对应的开发板、SoC、芯片架构分别是:

  • 开发板型号:explorer(探索者)

  • 板卡厂商:alientek(正点原子)

  • 芯片型号:STM32F407ZGT6

  • 芯片系列:STM32F407

  • 芯片厂商:ST(意法半导体)

  • 具体架构:Cortex-M4

  • 芯片架构:ARM

内核移植的四个层面

OH适配分为如下四个层面

Vendor

负责配置的目标产品的内核类型、系统版本、子系统、三方库等。编译时,工具链依赖这里的配置。Vendor的代码位于://vendor/

Board

开发板层面的移植,芯片已适配OH,只是开发板不同,难度不大。配置板卡编译相关的工具链,以及最为核心的启动汇编命令、链接库脚本,将指定这里的main函数来启动系统。Board相关的代码位于://device/board

SoC

SoC片上系统层面的移植,芯片架构已支持,有一定难度

配置芯片层级编译依赖库,包括CMSIS、HAL(硬件抽象层)等,这里包含操作总线、串口、时钟、寄存等库函数。SoC相关的代码位于://device/soc

ARCH

目标芯片架构不在支持的范围内的全新架构移植,难度较大。ARCH相关的代码存放在//kernel/liteos_m/arch文件夹中。整体难易度:Vendor < Board < SoC < ARCH

OpenHarmony瘦设备已支持的芯片架构

36c0509a-e64d-11ed-ab56-dac502259ad0.png

源码路径为:kernel/liteos_m/arch/arm

36cadcf4-e64d-11ed-ab56-dac502259ad0.png

总结

OpenHarmony瘦设备的移植需要从芯片架构、SoC、开发板开始,因此本文首先讲述了三者之前的关系。瘦设备使用的内核为LiteOS-M,针对不同层面的移植工作的难易度、工作量也会有所不同,根据以往经验难易度排序为Vendor < Board < SoC < ARCH,下篇文章将继续介绍移植前的准备工作。


更多热点文章阅读
  • OpenHarmony开发者大会圆满举办:3.2 Release版本发布,生态步入快车道
  • DevEco Studio 3.1 Beta新特性知多少?
  • Cocos携手乐元素,《开心消消乐》成功移植OpenHarmony
  • 开源样例!基于小凌派RK2206的工地检测平台设计
  • DevEco Device Tool 3.1 Release新版本发布

提示:本文由电子发烧友论坛发布,转载请注明来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


原文标题:OpenHarmony瘦设备内核移植实战(一)

文章出处:【微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子发烧友
    +关注

    关注

    33

    文章

    556

    浏览量

    33092
  • 开源社区
    +关注

    关注

    0

    文章

    94

    浏览量

    476

原文标题:OpenHarmony瘦设备内核移植实战(一)

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植内核启动流程

    关于内核启动流程涉及内容较多而且复杂,过度的分析意义不大,因此,这里不做详细讲解,只做个大概的介绍。初学者只做了解,有定基础的可以深入理解。 内核镜像被uboot加载到内存空间之后
    发表于 01-06 09:51

    飞凌嵌入式ElfBoard ELF 1板卡-内核移植之编译后生成文件说明

    Linux内核编译完成之后,会生成大量的中间文件和目标文件,我们这里只介绍比较重要的几个文件。我们所关注的最终需要烧写到开发板的是.dtb设备树镜像和zImage内核镜像。dtb文件是设备
    发表于 12-18 08:52

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植内核简介

    用户提供移植好的板级开发包。板卡厂商也会对移植好的内核版本进行维护,例如些BUG修复或者物料替换。接下来讲下获取这三种源码的方法:获取l
    发表于 12-16 13:08

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植内核简介

    用户提供移植好的板级开发包。板卡厂商也会对移植好的内核版本进行维护,例如些BUG修复或者物料替换。接下来讲下获取这三种源码的方法:获取l
    发表于 12-13 09:03

    客户机是什么?客户机能单独使用吗?

    在当今数字化办公环境中,客户机作为种高效的终端设备,逐渐成为企业和机构的首选。那么,究竟什么是客户机呢?其实,客户机是
    的头像 发表于 10-10 10:04 618次阅读

    openharmony移植AT32F407编译时错误

    openharmony移植AT32F407,hb build后出现链接错误 [OHOS ERROR] /home/sven/openharmony/env_setup
    发表于 08-18 17:04

    鸿蒙OpenHarmony南向/北向快速开发教程-迅为RK3568开发板

    P13_vendor和device目录介绍 P14_内核编译脚本构建分析 P15_内核移植 P16_内核移植优化 P17_配置电源管理芯片和点亮HDMI屏幕 P18_源码定制-修改调试串口波特率 P19_源码定制
    发表于 07-23 10:44

    如何在Openharmony中实现USB复合设备

    如何让Openharmony设备HDC接口(OTG接口)作为个复合设备,实现HDC(HDC:鸿蒙设备连接器) + CDC ACM(USB
    的头像 发表于 06-13 15:03 1832次阅读
    如何在<b class='flag-5'>Openharmony</b>中实现USB复合<b class='flag-5'>设备</b>

    OpenHarmony设备互联技术规范发布

    在此次大会上,15家合作方共同制定的《OpenHarmony设备互联技术标准》正式发布。该标准是为了实现教育、金融、交通、政务、医疗及航空等行业内设备间的互联互通而打造的。
    的头像 发表于 05-29 15:42 869次阅读

    freertos移植到M0内核的mcu直不成功的原因?

    求助各位大佬,小弟最近手头有个项目,需要在手头个公司已做出来的m0内核的mcu上移植freertos,但苦于直不成功,还望指教。 网
    发表于 04-28 06:30

    OpenHarmony内核编程实战

    编程入门[Hello,OpenHarmony]在正式开始之前,对于刚接触OpenHarmony的伙伴们,面对大篇幅的源码可能无从下手,不知道怎么去编码写程序,下面用个简单的例子带伙伴们入门。▍任务
    的头像 发表于 03-27 08:31 930次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>内核</b>编程<b class='flag-5'>实战</b>

    鸿蒙OpenHarmony技术:【设备互信认证】

    OpenHarmony中,设备互信认证模块作为安全子系统的子模块,负责设备间可信关系的建立、维护、使用、撤销等全生命周期的管理,实现可信设备间的互信认证和安全会话密钥协商,是搭载
    的头像 发表于 03-25 17:04 830次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>技术:【<b class='flag-5'>设备</b>互信认证】

    鸿蒙开发实战:基于【Markwon】移植和开发

    本项目是基于开源项目**Markwon**进行适用harmonyos的移植和开发的。
    的头像 发表于 03-25 16:27 867次阅读
    鸿蒙开发<b class='flag-5'>实战</b>:基于【Markwon】<b class='flag-5'>移植</b>和开发

    鸿蒙OpenHarmony开发实战:【MiniCanvas】

    基于OpenHarmony的Cavas组件封装了版极简操作的MiniCanvas,屏蔽了原有Canvas内部复杂的调用流程,支持个API就可以实现相应的绘制能力,该库还在继续完善中,也欢迎PR。
    的头像 发表于 03-23 20:43 388次阅读

    【鸿蒙】OpenHarmony运行docker详细步骤

    1.环境和设备 系统版本: 3.2release(64 位) OpenHarmony 内核版本:5.10 标准系统设备: DAYU200 Docker:18.03.1 (64 位) s
    的头像 发表于 03-02 15:10 2804次阅读
    【鸿蒙】<b class='flag-5'>OpenHarmony</b>运行docker详细步骤