华为如何打造物联网开发新平台—DevCloud和LiteOS的完美结合
华为云软件开发云(DevCloud)是集华为30年研发实践、前沿研发理念、先进研发工具,打造的一站式云端Devops平台,支持互联网开发、移动应用开发、微服务开发等主流研发场景,也同样支持物联网相关嵌入式开发场景。目前,在Devcloud代码托管平台,已经开放了LiteOS示例代码,开发团队或开发者可以申请Devcloud账号,下载该代码,在此基础上增量开发。
LiteOS是华为开源出来的轻量级实时操作系统,由Huawei LiteOS kernel、互联互通中间件、开放API以及安全组成,特性如下:
1.超小内核,基础内核可剪裁至不到10KB
2.低功耗(uA级别)
3.支持多种传输协议,wifi,BT,4G,NB-IOT等
4.从芯片,内核、传输保障E2E安全
5.支持多种芯片
6.开放API
我们可以在LiteOS的基础上进行物联网应用开发,像智能穿戴,车联网等。
环境准备
本文将使用Devcloud平台开发一个LCD显示功能,需要预先准备硬件设备和软件设备:
ØSTM32F4291-DISCO单板 STM32开发板(芯片型号STM32F429ZIT6)
Ø开发板供电(使用Mini USB连接线)
ØSTM32 ST-LINK Utility软件 自带ST-Link驱动,用于加载,烧写代码。
1.项目管理
在Devcloud工作服务下,以思维导图的形式将开发任务细化成story
2.代码托管
如果想将LiteOS在一款新的芯片上运行起来,需要根据芯片硬件参数,修改LiteOS kenerl等等相关文件,Devcloud的示例代码中内核源码已适配好STM32F411芯片,本文将以STM32F429ZI芯片为例,介绍基Cortex M4核芯片的开发过程,本文将在STM32F429ZI单板LCD屏幕上显示文字。
3.代码检查
通过静态代码检查规则,发现代码中是否有内存溢出,全复杂度过高,代码重复率高的问题,该代码发现重复率太高,将部分重复代码抽象成公共接口或函数供各个地方调用,提高代码后期可维护性。
4.编译构建
使用cmake进行一键构建,云端直接打包成bin包。
云端编译构建的好处很多,首先不必下载交叉编译链,如果在本地centos上完成此工程构建,需要增加如下步骤:
i.下载交叉编译工具链
https://launchpad.net/gcc-arm-embedded/+download
ii.安装
a)安装路径
cd opt
b)解压
tar jxvf gcc-arm-none-eabi-5_4-2016q3.tar.bz2 -C /opt
c)修改环境变量
vim /etc/profile
添加export PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin:$PATH
d)使新的环境变量生效
source /etc/profile
reboot(选择)
e)检查路径添加是否成功
echo $PATH
iii.开发环境适配
项目中,嵌入式平台采用32位操作系统,应用服务程序采用64位操作系统,项目开发中,需要将两种开发环境,在同一台物理机上实现。
嵌入式开发环境构建时,安装交叉编译环境,需要32位开发库。
$sudo yum install xulrunner.i686
$sudo yum install libXtst.i686
云上编译就省去了上述麻烦,只需创建一个cmake任务就可以了。
5.软件包归档
6.本地烧写
将云端的软件包下载到本地,连接STM开发板,使用ST-LINK工具加载烧写
7.查看效果