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

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

3天内不再提示

如何用Python开发OpenHarmony设备程序

OpenAtom OpenHarmony 来源:HarmonyOS技术社区 作者:唐佐林 2021-11-12 11:09 次阅读

目前,OpenHarmony 设备开发处于嵌入式开发阶段,并且 C 语言在嵌入式开发的过程中占有十分重要的地位。在与 OpenHarmony 社区的朋友沟通交流中,我萌生了为 OpenHarmony 设备开发提供更简洁的开发方式(简单的编程语言,简单的开发环境)的想法。同时也降低了门槛,使得更多的开发者可以上手 OpenHarmony。这促成了我成立 Python SIG(Special Interest Group,特别兴趣小组,OpenHarmony 社区中最基本的组织形式)的初衷。首先,我需要定位一款编程语言,受众广且学习门槛低。

Python 就进入了我的研究范畴。这几年 Python 借助 AI 的兴起进入大众视野,简单性、易学性深受广大开发者欢迎,很多小学生都能够用它来编程。我调研了 Python 实现(Python 是开源的,可以通过源码了解实现),发现公版 Python 和 MicroPython 都可以作为起点(Baseline),毕竟不需要照着 Python 规范写一个解释器出来!

然而,困难还是有的,这两种实现都有非常多的依赖,而且设计目标又分别不同:公版 Python 是一个大而全的系统(解释器,库等),目标是基于丰富的资源自由发挥;MicroPython 从公版 Python 剪裁而来,并做了扩展,基本定义成了一个微型嵌入式设备上的操作系统。那么,怎么开始呢,做选择真的很难!于是我开始整理思路,我想干什么?!之后有了下面的架构图。

3eb2baec-41d8-11ec-b939-dac502259ad0.png

很显然,我希望提供 OpenHarmony 设备开发的其它方式,而不是用 Python 替换 C 语言!所以,我的第一个里程碑(Milestone)是获得一个可以在 OpenHarmony 设备(Hi3861 开发板)上运行的 Python 解释器!有了这个 Python 解释器,接下来就可以设计 Python 版的 OpenHarmony 系统开发接口了。

确定了目标之后,接下来的问题就是:究竟是用公版 Python 还是 MicroPython?

通过两者代码的对比阅读,我发现 MicroPython 居然在解释器部分对公版 Python 也做了剪裁。我暂时也没有确切答案,不过从代码实现可以看出 MicroPython 是为了适配更多低配置的硬件而做了取舍!显然,很多东西人家都考虑过了!我认为 OpenHarmony 轻量设备和小型设备的定位更适用 MicroPython。

操作过程

通过 2 天的手术的改造,能够运行的版本(DTPython)就有了!!

使用方式如下:

1. 下载文末附件中的 libdtpython.a,并将其拷贝到 code-1.0vendorhisihi3861hi3861uildlibs 目录下,如图:

2. 【可选】编写 Python 代码(目前未提供任何库支持),并使用文末附件中的 Txt2Str 工具将其转换为 C 字符串,用法如下:

3fd1e790-41d8-11ec-b939-dac502259ad0.png

说明:

Txt2Str 将 Python 代码用 C 字符串的形式存储到 C 文件中(如上图中的 test.c)

将转换得到的 C 文件加入工程中即可在 C 代码中使用 Python 代码(可参考文末附件中的示例)

注意:目前还没有简单的方法直接将 Python 源文件烧写到设备中,因此才需要上述步骤。

3. 在设备开发中使用 Python 代码,示例如下:

409e2062-41d8-11ec-b939-dac502259ad0.png

4. 运行结果如下:

415b0ef2-41d8-11ec-b939-dac502259ad0.png

后记

目前仅仅能够运行基本的 Python 代码,大概率还存在很多需要解决的问题。希望大家都来试玩我的这个方案,多找 Bug,多提 Issue。

责任编辑:haq

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

    关注

    56

    文章

    4796

    浏览量

    84668
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2634

    浏览量

    66336
  • HarmonyOS
    +关注

    关注

    79

    文章

    1974

    浏览量

    30173
  • OpenHarmony
    +关注

    关注

    25

    文章

    3721

    浏览量

    16302

原文标题:用Python开发OpenHarmony设备程序——初体验

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于ArkTS语言的OpenHarmony APP应用开发:HelloOpenharmony

    1、程序简介该程序是基于OpenHarmony标准系统编写的UI应用类:HelloOpenHarmony。本案例是基于API9接口开发。本案
    的头像 发表于 09-15 08:09 384次阅读
    基于ArkTS语言的<b class='flag-5'>OpenHarmony</b> APP应用<b class='flag-5'>开发</b>:Hello<b class='flag-5'>Openharmony</b>

    OpenHarmony 明星开发板和应用招募启动,等你来!

    板能够量产>1000pcs 报名企业至少有1款开发板或者商用设备通过OpenHarmony兼容性测试 报名企业可持续投入南向设备开发
    发表于 09-14 15:21

    第二届大会回顾第25期 | OpenHarmony上的Python设备应用开发

    Python以其简单、易学和功能强大而闻名,有着广泛的用户群体。采用Python开发有助于降低OpenHarmony的学习门槛。如何在OpenHar
    的头像 发表于 08-27 11:53 696次阅读
    第二届大会回顾第25期 | <b class='flag-5'>OpenHarmony</b>上的<b class='flag-5'>Python</b><b class='flag-5'>设备</b>应用<b class='flag-5'>开发</b>

    【迅为RK3568开发板】OpenHarmony学习开发系列教程(第1期 北向基础篇一)

    P5P4_OpenHarmony支持设备类型3:47 P6p5_南向开发和北向开发的区别1:49 P7P6_OpenHarmony应用
    发表于 08-16 15:27

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

    P2_OpenHarmony功能框架 P3_OpenHarmony技术特性 P4_OpenHarmony支持设备类型 p5_南向开发和北向
    发表于 07-23 10:44

    华为云开发者桌面全新发布 CodeArts IDE for Python,极致优雅云原生开发体验

    Python 编码体验。 Python 是一种编程语言,广泛用于 Web 应用程序、软件开发、数据科学和机器学习 (ML)。Python
    的头像 发表于 05-10 00:27 1238次阅读
    华为云<b class='flag-5'>开发</b>者桌面全新发布 CodeArts IDE for <b class='flag-5'>Python</b>,极致优雅云原生<b class='flag-5'>开发</b>体验

    鸿蒙OpenHarmony【标准系统编写“Hello World”程序】 (基于RK3568开发板)

    源码],创建RK3568开发板的源码工程。 示例目录 拉取openharmony项目代码,在代码根目录创建sample子系统文件夹,在子系统目录下创建hello部件文件夹,hello文件夹中创建
    的头像 发表于 04-24 17:32 799次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【标准系统编写“Hello World”<b class='flag-5'>程序</b>】 (基于RK3568<b class='flag-5'>开发</b>板)

    鸿蒙开发实例:【配置OpenHarmony SDK】

    在设置OpenHarmony应用开发环境时,需要开发者在DevEco Studio中配置对应的SDK信息。
    的头像 发表于 04-22 15:24 1981次阅读
    鸿蒙<b class='flag-5'>开发</b>实例:【配置<b class='flag-5'>OpenHarmony</b> SDK】

    OpenHarmony南向开发案例:【智能油烟机】

    基于Hi3516开发板,使用开源OpenHarmony开发的应用。
    的头像 发表于 04-18 15:54 1052次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>案例:【智能油烟机】

    OpenHarmony南向开发案例:【智能中控屏】

    基于Hi3516开发板,使用开源OpenHarmony开发的应用。通过控制面板可以控制同一局域网内的空调,窗帘,灯等智能家居设备
    的头像 发表于 04-17 16:12 387次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>案例:【智能中控屏】

    OpenHarmony内核编程实战

    编写程序,让开发板在串口调试工具中输出”Hello,OpenHarmony“。▍操作在源码的根目录中有名为”applications“的文件,他存放着应用程序样例
    的头像 发表于 03-27 08:31 830次阅读
    <b class='flag-5'>OpenHarmony</b>内核编程实战

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

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

    【六】Purple Pi OH开发板带你7天入门OpenHarmony

    今天我们来从OpenHarmony简介、环境搭建、创建第一个OpenHarmony项目等方面开始OpenHarmony应用开发的第一步。一.Open
    的头像 发表于 03-14 08:31 546次阅读
    【六】Purple Pi OH<b class='flag-5'>开发</b>板带你7天入门<b class='flag-5'>OpenHarmony</b>!

    如何使用linux下gdb来调试python程序

    如何使用linux下gdb来调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的调试工具,可以帮助
    的头像 发表于 01-31 10:41 2618次阅读

    鸿蒙设备-开发板基础学习(BearPi-HM Micro)

    theme: minimalism 每当学习一门新的编程语言或者上手一款新的开发板,在学习鸿蒙设备开发过程中,带大家写的第一个程序,通过这个程序
    发表于 01-08 21:54