【开发板试用报告】如何编译并运行第一行代码
这里首先要感谢51cto提供的开发板,19号就收到了,到当前已经一周了,第一个目标,第一行代码已经成功在wifi模块运行起来。进度有点慢,看群里好些模块已经跑通了,内心不免有些着急,可我只有晚上回家时才能搞一会儿。下面就讲一下收到开发板后的经历吧。
收到开发板套件后就迫不急待的拆箱了,发现里面只有开发板,没有板子的说明书不知道从哪儿可以弄到板子的原理图,后来发现社区里已经有贴了下载地址,是连志安老师的贴子https://harmonyos.51cto.com/posts/1234,找到了相关资料。于是在鸿蒙官网仔仔细细的看了几遍关于Hi3861开发板的介绍。
源码下载
打开鸿蒙官网的Hi3861开发板模块界面https://device.harmonyos.com/cn/docs/start/introduce/oem_wifi_start_helloword-0000001051930719,可以找到源码的下载入口,如下图。
链接:https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz
图1(源码下载)
源码编译
源码编译需要适当的环境,当前只能在linux进行编译,当前鸿蒙官网关于编译环境的搭建讲的已经很清楚了(https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998),但实际操作中还是会遇到各种各样的问题,我就卡到了python环境的安装。使用的ubuntu16.04,自带python3.5,测试发现,不能小于3.7,于是安装python3.8,就出现了不能下载https链接库问题,于是重新编译python添加ssl,终于在21号早上把环境安装好了,使用了python build.py wifiiot命令终于成功编译完成。环境安装总体来说还是很简单的,但就是被一些依赖阻塞了,环境安装好后,源码的编译就水到渠成了。这里推荐直接使用连志安老师已经配置好的虚拟机(https://harmonyos.51cto.com/posts/943)
图2 (源码编译成功)
图3 (源码编译成功后的产物)
烧录开发板
源码编译完成,最想做的就是赶紧把编译好的固件烧录到开发板上。但烧录又在windows上进行的,于是拾起好久不用的windows本安装驱动,vscode和HUAWEI DevEco Device Tool。一切安装好,配置烧录信息时发现识别不了com端口,需要使用nodejs安装一个插件。而安装nodejs时,又出现了一系列的问题,nodejs自动安装依赖时,会安装python,.net等,而且还会安装系统补丁,经过了一天多的折腾,最终还是没能安装成功。感觉这烧录也太麻烦了,像其他的,直接就一个烧录工具就可以了,后来在群里听说有Hiburn,于是搜索了一下,找到 了一篇很好的教程(https://blog.csdn.net/xusiwei1236/article/details/108984790),于是从HUAWEI DevEco Device Tool插件中成功分离出了Hiburn工具,并使用此工具成功烧录了固件。烧录时开发板中间两个跳线帽都要接上,烧录完成后不需要去掉跳线帽,按一下reset键直接重启就可以了。开发板自带程序串口输出如下图5,打印出了Hi3861,通过按键可以控制开发板上的蓝色指示灯;使用源码编译后,串口输出如图6
图4(使用HiBurn工具烧录固件)
图5(开发板自带程序运行时串中输出)
图6(wifiiot源码编译后串口输出)
修改代码
看官方的介绍,又分析了一下代码的结构,发现启动应该是从app目录下的BUILD.gn进行配置的,feature数组里只配置了startup,但startup里并没有代码,所以第一个烧录的固件是没有什么功能的。于是把startup删除了,修改成iothardware,却发现编译不了,试了几次都不行,后来又回头看官方教程,发现还是少配置了。iothardware指定了目录,还需要iothware下BUILD.gn里指定的静态库名称,于是写成iothardware:led_example,成功编译。后来又在代码初始化成功后添加了一条打印语句,确认确定是烧录了正确的固件。
图7(源码目录结构)
图8(未配置好,编译失败)
图9(成功打印添加的日志,create LedTask success!)
疑问
wifiiot源码里的demo程序我已经读了几遍,但samgr目录的程序怎么使用还不是很清楚,另外就是TEST_INIT这个如何使用。接下来需要多看下51cto老师们的教程学习一下了