昨天在B站上突然看到了一个短视频,是在正点原子的战舰V3开发板上移植华为的Huawei LiteOS操作系统,就是这个视频:看完鸿蒙OS发布会,试用华为的物联网操作系统Lite OS(B站),于是呢,心血来潮,想在自己现有的开发板上移植Huawei LiteOS操作系统,在操作之前想要考清楚一些基本知识。 首先,什么是Huawei LiteOS,百度搜索Huawei LiteOS,可以搜到很多关于Huawei LiteOS的信息,并且还有官网,进入官网:华为Huawei LiteOS官网。稍微做一说明,Huawei LiteOS是一款针对物联网领域的轻量级操作系统,也就是说这是一种可以安装到单片机上的操作系统软件,并且是开源项目,用户可以从GitHub上获取该项目的源码:Huawei LiteOS源码,
除此之外,该项目支持ARM Cortex-M0、M3、M4、M7等芯片架构。这也就说明了在正点原子的战舰V3开发板上移植华为的Huawei LiteOS操作系统是可行的,战舰V3开发板是用的STM32F103ZET6,芯片内核架构是ARM Cortex-M3。
我手头上现有的板子是秉火的挑战者开发板,芯片是STM32F429IGT6,内核架构是ARM Cortex-M4,按说明是可以正常移植的。那么现在开始进行移植,参考资料:Huawei LiteOS移植指南,因为这个指南写的非常的详细,本帖子不会一步一步再重新写一篇,而是做一个总结型的归纳以及一些关键误区的提醒。
【第一步】做好相关的软件、驱动准备
准备的软件有:
(1)STM32CubeMX ST官方推出的图形化编程软件 下载链接:STM32CubeMX下载
(2)Keil uVision5 德国Keil公司开发的编译软件 下载链接:Keil uVision5下载
(3)串口驱动CH340 嵌入式开发必备驱动,网上有很多
(4)程序下载器驱动ST-Link或者J-Link等
(5)Git 用于克隆GitHub上边的源码 下载链接:Git forWindows
【第二步】构建裸机工程
下载好STM32CubeMX软件并安装好相应的库,然后就可以开始搭建相应的裸机工程。STM32CubeMX运行依赖Java1.7及以上的环境,所以如果主机上未安装Java1.7及以上环境的需要安装相应的环境。查看主机Java是否安装及查看Java版本号的DOS指令为:
java 查看是否安装java环境
java -version 查看java版本
需要注意的是:STM32CubeMX随着版本的更新,界面都有所改变,但是核心的东西是大体不变的。
最后的配置如图所示:
配置完成后点击生成源代码按钮:
最后生成的裸机工程如图所示:
【第三步】获取Huawei LiteOS源码
源码地址:Huawei LiteOS源码
教程里面要用到一个叫做Git的工具,这个工具可以从GitHub上Clone源码,如果不知道都是直接按如下图所示的步骤直接下载了。
我做了对比,按教程上下载方式和我们小白下载的方式下载文件还确实有点不太一样,对比如下:
LiteOS(Git下载) LiteOS-master(小白萌新直接下载)
其实发现,光从文件名上来看,其实差别并不是很大,但是时间关系,我没有用LiteOS-master这份源码文件做测试。
这一步中需要注意的是Git工具的使用,刚注册GitHub的账户是无法使用SSH下载的,需要填写秘钥。
(1)先下载Git这个软件:Git for Windows,并安装。
(2)然后在任意目录,右键选择Git Bash Here,它会打开一个黑框框,
(3)输入指令:ssh-keygen -t rsa -b 4096 -C "GitHub用户注册邮箱" 回车,需要正确填写我们注册的GitHub用户的注册邮箱,然后就会自动生成一对秘钥,一对是指两个,一个是公钥,一个是私钥。公钥用于开通GitHub的SSH服务。
输入这个指令之后会有三步是需要我们来填写和确认,如图所示:
这两个密钥都存放在C盘的的User目录下的Administrator下的.ssh里面。先去如该目录,指令为:
cd ~/.ssh
然后查看公钥和私钥的指令分别为:
cat id_rsa 查看私钥
cat id_rsa.pub 查看公钥
复制公钥指令为:
clip < id_rsa.pub
然后就可以在GitHub中开通SSH服务了。
下载源码指令为:
git clone -b develop git@github.comiteOS/LiteOS.git
等待下载完成即可
【第四步】Huawei LiteOS源码移植
这一步要细心,跟着教程一步一步来,需要注意的是我们下载的源码可能和教程的不太一样,我们用的OS_CONFIG文件是在LiteOS argetsSTM32F103VET6_NB_GCC这个目录下面,其它跟着教程该就可以了。