[文章]linkboy编程语言已初步支持鸿蒙操作系统

阅读量0
0
0
鸿蒙副本2.jpg
linkboy是一门面向物联网、边缘计算、工业控制等领域的自研编程语言,近期已初步完成对鸿蒙操作系统(OpenHarmony)的支持,实现了编译器后端工具链和相关组件在鸿蒙平台上的移植工作,且前端语法不需要做任何修改,保证了linkboy生态的各类组件可以无缝迁移到鸿蒙操作系统上运行。

鸿蒙操作系统包含南向编程(设备开发)和北向编程(APP开发),本次移植工作主要是设备开发方向,即用linkboy编程语言对各类鸿蒙开发板(海思芯片Hi3861)进行编程。由于鸿蒙底层架构是通用的,后续将根据用户反馈,对北向编程(APP开发)进行调研和适配支持。

鸿蒙系统目前采用Java、JS、C/C++作为指定开发语言,需要安装多个对应版本的开发工具链和插件,并通过文本命令行的方式对工程进行设置,对于初学者来说稍显复杂。因此将linkboy语言引入鸿蒙系统是有意义的,通过linkboy的一站式平台,用户不需要安装华为官方的各类编译构建环境也能开发鸿蒙南向应用。

为了方便开发者快速入手,我们还提供了arduino兼容函数库(基础IO部分),接下来给大家展示基于linkboy编程语言进行鸿蒙设备开发的一些案例。要体验这些案例,用户只需要到官网下载最新版本的linkboy软件,并准备一个hi3861芯片的鸿蒙开发板即可。目前软件里已内置润和/小熊派两个厂家的板卡,可直接使用:
1 开发板.jpg

1)第一个是物联网项目的经典入门案例——blink。让一个LED灯不断循环亮灭:
2 LED1-blink.jpg

2)多任务并行:loop是循环任务,可以有多个,如loop1,loop2,loop3… 下边这个案例展示了操作系统的多线程功能,3LED分别按照0.1秒、0.5秒和0.9秒的时间闪烁,互不影响:
3 LED3-blink-v2.jpg

3)通过外接按钮控制外接LED——按钮每次按下时,让LED闪一次(点亮0.1秒),如果一直按着按钮,LED只闪一次:
4 按钮控制LED.jpg

除了包含自研编程语言/编译器/运行环境以外,实际上linkboy更是一个综合性的低代码开发平台。对于入门用户来说,可以完全通过图形化的方式来开发,不需要编写文本程序代码也能完成各类项目。
另外值得一提的是,华为官方的北向编程平台DevEco Studio支持各类交互式(手机、手表等)设备的仿真,但南向编程平台DevEco tool目前还暂不支持嵌入式设备的仿真。因此本次移植工作引入了linkboy自研的仿真模拟器系统作为辅助,可以实现鸿蒙开发板与各类嵌入式模块(按键、LED、屏幕、通信等)的模拟仿真,便于程序调试。
下面展示用纯图形化的拖放方式完成的一些作品及其仿真效果。
1)读取环境光照强度显示到数码管上:
5 数码管显示光照.jpg
5.jpg

2)通过红外遥控器的1,2,3数字键控制彩灯显示红绿蓝3种颜色:
6 红外遥控.jpg
6.jpg

3)一个稍微复杂的例子,俄罗斯方块:
7 俄罗斯方块.jpg
8 俄罗斯方块屏幕.jpg
8-A.jpg
8-B.jpg

4)以上是基于鸿蒙HAL(硬件抽象层)的案例,最后我们看一个对鸿蒙通信应用层能力调用的案例,一行程序创建一个路由器热点WIFI,手机可以搜索到:
9 wifi.jpg

有了wifi连接,就能很方便做一些物联网的编程作品了,相关课程会陆续更新到官网。以上所有案例的程序文件位于linkboy根目录下,在软件中打开后就可以进行仿真和实物开发板运行验证。
A 示例.jpg

后续工作展望
由于时间有限,目前完成的是鸿蒙操作系统的硬件抽象层HALGPIO、UART、ADC、Flash、Timer...)以及一部分内核功能的封装。从测试来看,已可以支持常见的程序开发。后续将逐步完善鸿蒙各个框架API的封装,开放出通信、分布式软总线、图像显示、音频等接口给用户调用,充分发挥出鸿蒙系统的服务能力。
此外还有一些方向需同步去做,比如linkboy语言的编译和执行效率,与国外主流编程语言相比还有一定的差距。我们会听取用户反馈和建议,不断更新迭代。
如果您对linkboy感兴趣请到官网下载试用: www.linkboy.cc

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友