LiteOS

【华为云技术分享】STM32L476移植华为LiteOS系列教程(二)---开发前准备

夙愿已清 提交于 2020-08-16 02:02:50
在进行移植华为LiteOS开发工作之前,我们是需要提前做一些准备工作,如:开发工具、环境、源码等相关事宜。 一、准备开发工具 STM32CubeMX用于生成工程文件:STM32CubeMX下载地址 IoT Studio用于编译、烧写和调试自己的工程文件和硬件: IoT Studio下载地址 最新的LiteOS_SDK,IoT Studio基于LiteOS_SDK来为我们添加各类组件:LiteOS_Lab的github地址 二、安装各类环境和下载最新LiteOS源码 安装STM32CubeMX和IoT Studio的教程特别多,我就不在这里累述了,说下GitHub上克隆仓库/分支。 点击①处,可以切换分支,LiteOS_lab有好多分支,我们一般情况选用默认的即可(主分支),有的分支属于正在开发的,或者是测试的。 点击②处,可以选择克隆或者下载,直接下载一个.zip文件或是将其克隆到我们的电脑上用git来管理。 点击③处,可以查看每一次的提交修改了啥,啥时候提交的(PS.你可以发现华为工程师们都是特别辛苦的)。 点击④处,可以查看每一个发行版本的总结和该版本与上一个版本的差异。 我们一般情况下选择直接下载.zip到桌面即可,如果你想将自己写的LiteOS的一些组件也贡献到仓库中,我建议你使用一个“github桌面”,可以图形化管理你电脑上的github仓库、提交修改、对比差异等。 ①

漫谈Huawei LiteOS五大内核模块

我只是一个虾纸丫 提交于 2020-08-16 01:47:15
【摘要】 Huawei LiteOS是华为面向IoT领域,构建的“统一物联网操作系统和中间件软件平台”,以轻量级(内核小于10k)、低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供“一站式”完整软件平台,有效降低开发门槛、缩短开发周期。下面对LiteOS基础内核的 任务管理、内存管理、中断管理、信号量、互斥锁 五大模块进行简单介绍。 LiteOS内核的任务管理 基本概念和功能 任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。 Huawei LiteOS是一个支持多任务的操作系统,一个任务就表示一个线程,任务之间可以进行切换和通信。LiteOS的任务管理模块提供任务创建、删除、延时、挂起和恢复、更改任务优先级、锁定任务调度和解锁任务调度、根据任务控制块查询任务 ID、根据 ID 查询任务控制块信息等功能。 因为LiteOS内核是抢占式调度内核,所以高优先级的任务可以打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度,同优先级任务会进行时间片轮转调度。优先级表示任务执行的优先顺序,决定了在发生任务切换时即将要执行的任务。 LiteOS中的任务一共有32个优先级 (0-31),最高优先级为 0,最低优先级为31。 任务控制块TCB 每一个任务都含有一个任务控制块(TCB

【华为云技术分享】LwM2M协议的学习与分享

给你一囗甜甜゛ 提交于 2020-08-14 08:23:50
【摘要】 本文主要对于LwM2M协议进行了简单的介绍,包括协议的体系架构以及特性、对象、资源、接口的定义等,希望对你有所帮助。 1协议简介 LwM2M(Lightweight Machine-To-Machine)协议是由OMA提出并定义的一个适用于资源有限的终端设备的轻量级物联网协议,可以用于快速部署客户端、服务器模式的物联网业务。LwM2M为物联网设备的管理和应用建立了一套标准,它提供了轻便小巧的安全通信接口及高效的数据模型,以实现M2M设备管理和服务支持。 2 协议特性 1) 基于资源模型的简单对象 2) 资源操作:创建/检索/更新/删除/属性配置 3) 资源的观察/通知 4) 支持的数据格式:TLV/JSON/Plain Text/Opaque 5) 传输层协议:UDP/SMS 6) 安全协议:DTLS 7) NAT/防火墙应对方案: Queue模式 8) 支持多LwM2M Server 9) 基本的M2M功能:LwM2M Server,访问控制,设备,网络连接监测,固件更新,位置和定位服务,统计 3 体系架构 4 对象定义 首先对象是逻辑上用于特定目的的一组资源的集合。在使用对象功能之前,必须对该对象进行实例化,对象可以有多个对象实例,对象定义的格式如下。 OMA为LwM2M协议内置了8个对象。具体如下 LiteOS SDK端云互通组件配合Huawei Ocean

【华为云技术分享】STM32L476移植华为LiteOS系列教程------背景知识 1

梦想的初衷 提交于 2020-08-11 10:30:43
一、这篇文章想向大家说明一个问题,我们开发单片机的本质是什么? 在最早的开发中,我们没有Keil、IAR等等一系列好用的单片机集成开发环境,注意这里的“集成”,是指将多个软件其中有 ①编辑器:记事本、NotePad++、vim(Linux中的)这些都是编辑器,可以给我提供关键词高亮、代码补全等等操作。 ②编译器:gcc工具链,我们用的是arm-none-eabi-gcc工具链,注意这里有个“链”,链子???将一系列的工具串在了一块,可以分别使用也可以单独 使用,我们在Linux下输入了gcc -o hello hello.c,就生成了一个hello可执行文件./hello就打印一句hello world!给我们,或者这样说,我们在Keil中编写好了一个输出hello world!的程序,点下“编译”再点下“下载”,单片机的串口就会输出hello world!。 但是大家有没有思考过进行了这么一步,编译器到底做了什么? 相信大家已经知道了最终给机器运行的是0和1组成的二进制文件,但是我们C语言是如何转变为二进制文件的呢? 其中一个hello.c文件经历了“预处理”、“编译”、“汇编”、“链接”、生成hex/bin等可执行文件,其中每一步都是一个不同的软件来操作的。 这些软件都被集成在了工具链之中,这里就不继续说下去了,如果大家感兴趣,可以给我留言,后面给大家详细科普。 ③下载器

解决方案|智能消防预警系统突破高层楼房限制

最后都变了- 提交于 2020-08-08 10:14:41
摘要: 高层建筑越来越多,高楼大厦的消防预警系统就成为了现代高楼设计的重中之重。 一、项目场景 高层建筑越来越多,高楼大厦的消防隐患就更加严峻,加之目前的消防救援车辆对高层的火灾救援仍旧没有很好的解决方案,因此大楼在发生火灾后通常只能等待大火燃尽熄灭,造成的经济损失,社会影响都比较严重。为了避免此类问题的发生,大楼的消防预警系统就成为了现代高楼设计的重中之重。 二、任务目标 某百层以上的摩天大楼即将完工,为提高大楼的安全性需要对大楼的消防设施进行配套。为配合喷淋及大楼报警装置的使用,需要使用火焰传感器对大楼内的明火进行提前预警。请使用火焰传感器对明火信号进行监测,并将监测结果发送至上位等待对明火的进一步处理。 三、火焰传感器介绍 火焰是由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。 火焰传感器检测火焰主要依靠光谱中的特征波长的光线。 火焰传感器类型 火焰传感器检测火焰主要依靠光谱中的特征波长的光线,根据不同特征的光线可将火焰传感器分为远红外火焰传感器和紫外火焰传感器。 红外接收管 火焰传感器之所以能够检测火焰接受到红外信号的原因是由于使用红外接收头做为火焰传感器的眼睛。常见的940nm红外接收管如图。 远红外火焰传感器可以用来探测火源或其它一些波长在700纳米~1100纳米范围内的热源。

stm32F103zet6(战舰开发板v1) 移植liteOS touchGFX

房东的猫 提交于 2020-08-08 02:44:36
刚换了工作,最近接触了一个项目,使用的是stm32低功耗系列,系统是华为的物联网 liteOS操作系统,框架为touchGFX ui框架; 由于之前接触底层较多因此就想自己移植一个liteos 以及touchgfx到自己的stm32开发板上,刚好自己也有个开发板,开发板是stm32f103zet6这款是大二买的买了就凉着了,是战舰的v1版本; 目的:想通过这个过程,让自己更深刻的理解项目的架构,底层与上层,以及底层代码的组织结构,操作系统的代码组织结构,底层代码如何和系统交互,底层如何跟框架衔接,如何跟liteos衔接等等; 从零开始首先建立裸机的工程,使用st公司的软件,不得不说这个软件太强大了,强大到你用了之后你感觉自己成了一个废人(自己做的事情太少),stm32CubeMX直接生成工程,这里不多做介绍, 1,stm32 基于hal库的裸机工程,移植liteos; 这里发现了华为liteos官网有很详细的介绍,觉得完全没必要重写,因此可以直接参考官网; 包括裸机工程的建立和liteos的移植; https://support.huaweicloud.com/bestpractice-LiteOS/zh-cn_topic_0145350106.html 使用stm32CubeMX可以建立基于hal的裸机工程,这里常用的简单分为两种,keil和iar ,我这里使用iar工程;

解决方案|智能消防预警系统突破高层楼房限制

柔情痞子 提交于 2020-07-27 08:54:48
摘要: 高层建筑越来越多,高楼大厦的消防预警系统就成为了现代高楼设计的重中之重。 一、项目场景 高层建筑越来越多,高楼大厦的消防隐患就更加严峻,加之目前的消防救援车辆对高层的火灾救援仍旧没有很好的解决方案,因此大楼在发生火灾后通常只能等待大火燃尽熄灭,造成的经济损失,社会影响都比较严重。为了避免此类问题的发生,大楼的消防预警系统就成为了现代高楼设计的重中之重。 二、任务目标 某百层以上的摩天大楼即将完工,为提高大楼的安全性需要对大楼的消防设施进行配套。为配合喷淋及大楼报警装置的使用,需要使用火焰传感器对大楼内的明火进行提前预警。请使用火焰传感器对明火信号进行监测,并将监测结果发送至上位等待对明火的进一步处理。 三、火焰传感器介绍 火焰是由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。 火焰传感器检测火焰主要依靠光谱中的特征波长的光线。 火焰传感器类型 火焰传感器检测火焰主要依靠光谱中的特征波长的光线,根据不同特征的光线可将火焰传感器分为远红外火焰传感器和紫外火焰传感器。 红外接收管 火焰传感器之所以能够检测火焰接受到红外信号的原因是由于使用红外接收头做为火焰传感器的眼睛。常见的940nm红外接收管如图。 远红外火焰传感器可以用来探测火源或其它一些波长在700纳米~1100纳米范围内的热源。

【华为云技术分享】基于小熊派STM32芯片的通过MQTT上报JSON数据到华为物联网平台的自动售货机Demo解析

余生颓废 提交于 2020-07-26 14:31:46
【摘要】 STM32的工程在文章末尾,可自行下载。 一、工程配置 1、MCU类型选择STM32L431RC 2、烧录器选择OpenOCD,参数 -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg 3、输出目录选择 LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild 4、编译器Makefile选择 targets\STM32L431_BearPi\GCC\Makefile 5、平台参数配置:LiteOS_Lab_STM32\demos\oc_mqtt_demo\oc_mqtt_demo_static\oc_mqtt_static.c 6、WIFI用户名密码配置: LiteOS_Lab_STM32\iot_link\network\tcpip\esp8266_socket\esp8266_socket_imp.h 7、在物联网平台上创建产品,选择MQTT方式 二、部分代码解析 编译烧录程序之前我们需要修改两处代码 第一处打开oc_mqtt_static.c文件,我们需要配置设备连接华为云,物联网平台所需要的参数, 修改第51行CN_MQTT_EP_NOTE_ID 为在华为云,设备接入服务,注册设备时使用的设备识别码,可以在平台中查看, 修改CN_MQTT_EP_DEVICE

LiteAI 四大杀手锏,解锁物联网智能设备AI开发难关

瘦欲@ 提交于 2020-07-24 10:16:49
【摘要】 IoT设备中嵌入AI能力实现产品的智能升级,已经是AIoT行业发展的重要通道,那怎样才能实现AIoT = AI + IoT呢?如何将AI模型塞到小小的IoT设备里,让它可以轻松运行起来呢?成为了AI开发者遇到的棘手难题。 你知道我们生活中常见的物联网智能设备融合AI技术后,会给我们带来什么样的智能交互体验?在我们指尖触碰的那一刹那背后隐藏的代码世界又是怎么样的呢? 今天就来和大家说说IoT智能设备轻松实现AI的奥秘! AIoT,智能化升级的最佳通道 AIoT,对我们来说已经不是一个陌生的词汇了,随着深度学习的蓬勃发展和5G万物互联时代的到来,越来越多的人将AI与IoT结合到一起,而 AIoT已经成为传统行业智能化升级的最佳通道,是物联网发展的必然趋势。 AI和IoT相互交融产生的魔力,让许多智能产品及智能应用成为无穷想象的“潜力股”。比如智能音箱中的语音唤醒,家庭监控里的人脸识别,可穿戴设备上的AI计步等等,已经验证物联网产品融入人工智能,升级成了智能设备后的“威力”。 但,物联网AI 开发者的“痛”,你遇到过么? 很多AI开发者开发者在训练得到AI模型之后,必须得在设备上实现模型的推理才能获得相应的AI能力,但目前AI模型不能直接在设备上运行起来。这就意味着, 开发者还得有一套对应的推理框架才能真正实现AI与IoT设备的结合。 另外

华为 鸿蒙系统(HarmonyOS)

孤街醉人 提交于 2020-05-01 03:03:38
HarmonyOS Ⅰ. 鸿蒙系统简介 鸿蒙系统(HarmonyOS) ,是第一款基于微内核的全场景分布式OS,是华为自主研发的操作系统。2019年8月9日,鸿蒙系统在华为开发者大会 <HDC.2019> 上正式发布,华为会率先部署在智慧屏、车载终端、穿戴等智能终端上,未来会有越来越多的智能设备使用开源的 鸿蒙OS 。 鸿蒙OS 实现模块化耦合,对应不同设备可弹性部署, 鸿蒙OS 有三层架构,第一层是内核,第二层是基础服务,第三层是程序框架 。可用于大屏、PC、汽车等各种不同的设备上。还可以随时用在手机上,但暂时华为手机端依然优先使用安卓。 鸿蒙 OS 底层由鸿蒙微内核、Linux 内核、Lite OS 组成,未来将发展为完全的鸿蒙微内核架构。 Ⅱ. 鸿蒙系统发展进程 [2012] 2012年华为开始在上海交通大学规划“鸿蒙”操作系统。 [2019] 华为已经对100万部搭载有自研“鸿蒙”操作系统的手机进行了测试。 [2019.5.17] 华为操作系统团队开发了其自主产权的“鸿蒙操作系统”。 [2019.5.24] 注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。 [2019.8.9] 华为官方发布“鸿蒙操作系统”,并且宣布“鸿蒙操作系统”将开源。 Ⅲ . 鸿蒙系统特点 鸿蒙OS的设计初衷是为满足全场景智慧体验的高标准的连接要求