[文章]龙芯与开源鸿蒙的故事

阅读量0
0
2

1、缘于龙芯1C300

2021年11月,当时我自己还是一个自由职业开发者,已经接触OpenHarmony有1年多。
坚持了1年,也曾迷茫过,不知道接下来该怎么坚持下去。直到有一天接到李传钊电话,说广州有一个公司准备搞龙芯+鸿蒙,问我是否有兴趣。
当时我正好在21年10月份的时候完成了OpenHarmony移植到GD32单片机上,稍微有一点移植经验。但是对于一个全新指令集架构的移植,说实话,当时心里没有太多的把握。
不过我对龙芯倒是相当感兴趣。龙芯作为我国自己的芯片,承载了太多人对于“中国芯”的梦想。
image.png

抱着一种试一试的心态,我加入了龙芯和开源鸿蒙的适配工作中,当时正好是21年12月1日。
第一天基本上在看龙芯的相关开发手册,尝试在裸机上跑hello world程序。之后花了2天时间开始在OpenHarmony上把龙芯相关代码、编译工具链、编译脚本移植过去。
但是此时最困难的问题来了,OpenHarmony内核最底层代码是用汇编写的,对于我这种很少接触汇编的C语言程序员来说,不是完全不懂,只能说有点像难啃。
好在之前读大学的时候,看过一点ARM指令集架构的书籍和自己尝试写过一个操作系统,对于内核的原理以及需要使用到相关汇编代码略知一二。
好在当时,广东龙芯特别支持这个事情,接下来2天时间一边看龙芯1C300的汇编手册,一边研究OpenHarmony关于任务上下文切换的代码,一边与广东龙芯技术交流。
终于在12月7日的时候,OpenHarmony轻量系统在龙芯1C300芯片上跑起来了,那一刻我终于长舒一口气。
那时候我才发现,原来我们只用了7天时间就完成了这个事情,比原先计划的30天要少得多。
之后,我们也是把1C300适配OpenHarmony的相关代码开源出来。
image.png

2、成立OpenHarmony LoongArch SIG

2022年3月份,我来到了我现在所在的公司(润和软件),负责生态技术这一块。
由于前面龙芯1C300适配OpenHarmony的事情在社区传得比较开,引起了一些开发者的讨论。
2020年,龙芯中科基于二十年的CPU研制和生态建设积累推出了龙架构(LoongArch™)。指令系统是软件生态的起点,只有从指令系统的根源上实现自主,才能打破软件生态发展受制于人的锁链。龙架构的推出,是龙芯中科长期坚持自主研发理念的重要成果体现,是全面转向生态建设历史关头的重大技术跨越。
image.png

当时我在社区看到很多开发者希望LoongArch架构能适配OpenHarmony。于是乎,我觉得有必要拉上龙芯、OpenHarmony一起来做这个事情。
前面虽然适配了1C300,但是还只是适配了OpenHarmony轻量系统。对于小型系统、标准系统的适配,还是需要有龙芯的支持才能更快地将这个事情做起来,时间不等人。
2022年3月,我给广东龙芯总经理江山总发了一条信息,说我想过去拜访他。当时我心里还是没谱的,虽然之前已经跟广东龙芯合作适配了1C300芯片,但是一直没见过江山总。
image.png

当天下午交流非常顺畅,我跟江总提出了想要把OpenHarmony和LoongArch结合起来。江山总是一个非常有情怀的人,对这一块非常认可,并给予了很大的支持。
最终,在广东龙芯的支持下,我拉上润和软件、慧瑞思通、龙芯俱乐部等共同发起成立了OpenHarmony LoongArch SIG组,并通过了PMC的评审。正式开始了OpenHarmony与LonngArch的适配之路。

3、适配初见成效

虽然成立了OpenHarmony LoongArch SIG,但是前面由于开发板未到,以及其它工作的安排,导致适配进展比较缓慢。
不过还是克服了各种苦难,最终OpenHarmony LoongArch SIG跟龙芯一起完成了2K0500、2K1000LA的芯片适配。并且得到了龙芯中科的官宣。
image.png

其中润开鸿(润和软件子公司)与广东龙芯一起完成了广东龙芯2K0500先锋板、2K1000LA星云板、润开鸿DAYU400(芯片为2K0500)共计3个开发板的适配。
image.png

鸿湖万联与龙芯嵌入式事业部一起完成了乘风1000(芯片为2K1000LA)开发板的适配。

4、圆梦胡伟武老师

很早之前就在书本上见过胡老师的事迹,心里一直很敬佩胡老师。胡老师是我国第一颗通用处理器龙芯的总设计师,始终坚持自主研发,主持研制了“龙芯”系列芯片,实现了我国CPU关键核心技术的突破。
终于在2022年11月的时候,龙芯中科在南京举行了2022年信息技术自主创新高峰论坛。

当时得知胡老师会过去做分享,于是一大早就赶去会场看看能不能碰到胡老师。最终,在人海中见到了胡老师,并且还要到了合照。手里拿着的板子正式最早适配支持OpenHarmony轻量系统的1C300开发板。

4、展望未来

龙芯与OpenHarmony的故事还将继续下去,我们将与龙芯一起实现全芯片OpenHarmony全系列组合,推动OpenHarmony对LoongArch架构的全覆盖支持;同时也会逐步开源相关代码,吸引发动更多的开发者参与到OpenHarmony+龙芯生态中去,以多样化的芯片及产品来推动OpenHarmony的万物互联。

回帖

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