LiteOS

漫谈LiteOS之开发板-LiteOS移植(基于GD32450i-EVAL)

柔情痞子 提交于 2020-04-24 13:33:04
1 为什么移植? 嵌入式设备的芯片型号和外设的差异较大,资源有限。而RTOS无法适配集成所有的驱动,因此会先适配部分开发板,然后通过移植使得适配更多的开发板。 可移植性是嵌入式操作系统与普通操作系统的显著区别之一,而所谓移植就是通过一定的代码修改使得该操作系统适配自己的开发板,以使得自己的开发板可以运行一些手头开发板没有配套的编译工程。 2 移植的分类 移植通常分为系统移植和驱动移植,驱动移植需要依赖具体的外设,本文主要介绍操作系统的移植。采用的主要方案是硬中断接管和不接管中断中的更加简便快捷的不接管中断方式。 3 开发环境 软件环境:Windows系统、Keil5、J-Link对应驱动; 硬件环境:GD32450i-EVAL开发板、J-Link下载器、串口线、数据线; 注意:上述环境也可根据自己需求进行修改,如使用IAR、GCC等。 4 移植流程 4.1 准备工作 (1)下载LiteOS源码 在github上下载最新的LiteOS源码,地址: https://github.com/LiteOS/LiteOS ,下载任意版本皆可,其源码核心一致,我这里使用的是dev-deserted,其工程目录详情如图1所示。 图1 LiteOS源码工程目录以及对应描述 (2)提取LiteOS核心移植文件 对LiteOS源码做一个简单的提取便于后续操作的简洁性,当然也可以不提取

华为Liteos移植到stm32F03ZE

徘徊边缘 提交于 2020-04-24 09:19:02
华为Liteos和物联网设备侧sdk移植到stm32F03ZE霸道板子上 推荐官方教程: https://liteos.github.io/ 啥是LIteos “开源免费”的实时操作系统,集成了 LwM2M、CoAP、mbed TLS、LwIP 全套 IoT 互联协议栈,且在 LwM2M 的基础上,提供了 AgentTiny 模块,用户只需关注自身的应用,而不必关注 LwM2M 实现细节,直接使用 AgentTiny 封装的接口即可简单快速实现与云平台安全可靠的连接。属于国产的实时操作系统(RTOS) 基于标准库移植 下载源码, https://github.com/LiteOS/LiteOS \ 往裸机工程添加 LiteOS 源码 打开 LiteOS 源码文件,可以看见里面有 8 个文件夹,下面先来了解一下主要的文件夹及其子文件夹的作用,然后将 LiteOS 源码的核心文件提取出来,添加到工程根目录下的文件夹中,因为工程只需要有用的源码文件,而不是整个 LiteOS 源码, 添加LiteOS 系统的一些配置文件,含原厂芯片驱动 将 OS_CONFIG 文件夹下面的一些配置文件拷贝到刚刚提取的 LiteOS 核心文件夹下面,等下在移植工程的时候大家是需要对这个文件夹下的某些文件进行修改,以适配不同的工程配置,并且可以通过修改这个文件夹下的内核配置头文件来裁剪 LiteOS 的功能。

hi3559v100 sdk中双系统AMP架构的初步了解

不打扰是莪最后的温柔 提交于 2020-04-24 09:18:38
hi3559v100是海思推出的camera soc处理器。采用的是双核处理器。一个是a7,运行的linux3.18内核。一个是a17使用的是huaweiliteos操作系统,Hi3559V100 系统中 Huawei LiteOS 负责系统媒体编解码相关业务。两个操作系统实现amp的构建形式。 首先了解一下sdk中的内容。 分别解压两个sdk包目录如下: 作为嵌入式软件开发来说,重点关注以下两个目录: hardware 主要是一些datasheet,demo板的原理图。 sofaware 板端,pc端,手机端所使用到的开发调试 维护的软件包,工具包和文档 1. sdk的软件架构: OSDRV 层主要提供底层系统支持包,如 Bootloader、OS、Rootfs 模板,关键driver 及交叉编译工具链,双核通信驱动等。 MPP 层和原有监控领域 SDK 保持一致,包含主要的媒体模块驱动相关库,如VI、VPSS、VENC、VO 等,对外提供 MPI 接口。 Hisyslink 为双核双系统通信组件,用于双系统间的消息通信,数据传递。为了简化降低客户在双系统方面的开发难度,SDK 包提供了 NDK 媒体适配参考代码,供客户参考,客户在实际产品开发过程中,也可以在 MPI 接口上,根据目标市场产品形态,对基础音视频业务功能和数据流进行重新封装。 Middleware

自学华为IoT物联网_11 物联网操作系统介绍

一笑奈何 提交于 2020-04-24 08:22:52
点击返回自学华为IoT物流网 自学华为IoT物联网_11 物联网操作系统介绍 1.1 物联网面临的困难 物联网终端发展面临的困难:开发者需要懂硬件和芯片的差异,自行适配硬件接口 物联网开发面临的困难:物联网通信协议多,通信模块更新换代快,彼此是多对多的关系,开发者需要自行选型和对接适配 物联网操作系统面临的困难:    多传感器系统管理复杂    视频场景下性能、功耗要求高    开发语言编程效率低、上手难度大(大而复杂;实现相同的功能耗时长;同时需要更多行代码,开发效率低;编译脚本难编写,问题难发现) 1.2 物联网操作系统需求 连接需求:不同类型通信协议的互通互联 组网需求:自发现、自连接、自组网,网络可快速自愈 管理要求:不同类型传感器接入和算法开发的统一管理 2. Huawei LiteOS介绍 2.1 Huawei LiteOS特点 华为 “1+2+1” IoT架构 以轻量级、低功耗,快速启动等特性为基础 Wifi、Zigbee、NB-IoT等短距、长距协议设备的互联互通 优化的Mesh自组网,组网快、组网稳、组网多 不同类型、不同接口传感器的统一管理,即插即用 端管云协同的安全管理,降低终端被攻击的风险 JS变成语言 2.2 Huawei LiteOS基础架构   1+N架构 2.3 Huawei LiteOS 四大互联网解决方案 2.3.1 华为智能家居解决方案

漫谈LiteOS-Huawei_IoT_Link_SDK_OTA 开发指导

做~自己de王妃 提交于 2020-04-24 06:48:09
1概述 在应用升级过程中,无线下载更新(OTA)是一种常用,且方便的升级方式。Liteos采用的OTA升级方案基于LwM2M协议,实现了固件升级(FOTA)和软件升级(SOTA)两种升级方案。用户可根据自己的开发环境选择合适的升级方式。 OTA功能代码结构如下图: 2升级文件二进制文件结构 如图所示,升级压缩包中二进制文件如下图所示,FOTA与SOTA采用相同的固件格式。 签名校验值:长度256字节,对剩余文件进行hash计算后,并进行sha256加密后得到的签名密文。 二进制信息:预留长度32字节,升级文件是全量升级文件或增量升级文件等信息。 升级文件内容:经压缩后的升级文件,升级文件使用hdiffpatch算法对新、旧镜像进行运算生成的差分包,并使用lzma算法进行压缩。 3 存储器接口 存储器结构代码位于iot_link/sotrage目录下。存储器结构被划分为两部分,分别定义为存储设备(storage.c)与设备分区(partition.c)。 存储设备定义的是系统中使用的不同类型存储器及接口,如内部flash,spi flash 或 nandflash等,所使用结构体如下: typedef struct { int id; char *name; uint32_t size; void (*init)(); int (*read)(void *buf, int32_t

物联网操作系统华为超轻量LiteOS解读

不问归期 提交于 2020-03-01 04:58:09
物联网终端设备开发遇到瓶颈 物联网经过这些年的发展,在终端设备开发中显现出诸多问题。 1、终端设备需要低成本、低功耗。由于多为小型便携产品,因而电池寿命和硬件成本就成了关键问题,降低芯片成本、提升电池续航能力成为当下发展瓶颈; 2、连接方式要求多样化。前代连接方式由于功耗和成本仍是问题,在即将到来的5G时代,设备亟需支持更多连接方式; 3、云端安全成为痛点。随着数据量的增大,部分或全部数据上传到云端进行处理已是必然趋势,随着数据泄露事件频发,社会关注度也越来越高,安全性成了不可忽视的问题。 总体来看,现在的物联网设备还不够智能,而这正是华为决定开发操作系统的原因。华为LiteOS运营总监林旅强告诉雷锋网(公众号:雷锋网)编辑,现在的物联网终端设备通常都是不智能的,因此也被称作哑终端。智能化后的设备不仅可以实现数据上传云平台,还要能够实现信息的改变、命令下发、动作执行,这也是华为操作系统要实现的功能。 从自用到开源:华为的布局思考 大部分开发者对华为LiteOS的认知是从2015年华为宣布开源LiteOS,或是在2017年提出“云——管——端”战略开始的,而其实,据雷锋网了解,早在2012年,华为就开始做终端设备OS,也是现在LiteOS的雏形。 研发之初,华为的终端设备OS主要应用在自家消费类产品中;可穿戴市场兴起后,华为又在2014年推广到自家手环、手表等可穿戴设备

LiteOS云端对接教程10-LiteOS使用NB模组基于LWM2M对接华为OC平台实战

谁都会走 提交于 2020-02-28 22:50:16
1. 在云端添加测试设备 打开之前教程新建的LWM2M产品,进入设备管理界面新建真实设备,设备标识符要填写NB模组的IMEI号,可以使用如下命令查看: AT+CGSN=1 测试结果如下: +CGSN:867725038317248 OK 获取到IMEI号之后创建设备: 创建之后会自动进入调试界面,接下来开始调试。 2. NB模组使用LWM2M直接对接华为云 BC35-G模组可以直接对接华为云平台,步骤如下。 设置自动注册模式 使用该命令设置模组开机后自动注册到华为云平台: AT+QREGSWT=1 设置CDP服务器ip和端口 使用该命令设置服务器的ip和端口: AT+NCDP=49.4.85.232,5683 华为云平台LWM2M对接信息可以在平台上查看: 重启模组 第一步设置了模组开机自动连接云平台,所以使用如下命令重启模组: AT+NRB 复位后可以看到设备已经上线: 在串口助手中可以看到,模组返回信息如下: +QLWEVTIND:0 +QLWEVTIND:3 这两个信息表示 设备成功注册,IoT平台已观察到对象19,当模块报告此消息时,数据可以发送到 IoT 平台。 模组向华为云平台发送数据 使用如下指令向华为云平台发送数据,模拟亮度值上报: AT+QLWULDATA=3,000006 在云端可以看到模组上报的数据: 模组接收华为云平台下发数据 在华为云平台点击下发命令“on

小熊派华为物联网操作系统LiteOS裸机驱动移植06-E53_ST1扩展板驱动及使用

久未见 提交于 2020-02-27 10:52:54
1.E53_ST1扩展板及其驱动 关于E53标准接口 E53接口标准的E取自扩展(Expansion)的英文首字母,板子的尺寸为5×3cm,故采用E53作为前缀来命名尺寸为 5cm*3cm 类型的案例扩展板,任何一款满足标准设计的开发板均可直接适配E53扩展板。 E53扩展板是根据不同的应用场景来设计的,以最大的程度在扩展板上还原真实应用场景,不同案例的扩展板根据不同的应用场景来命名后缀。例如:E53_SC1,SC是智慧城市(Smart City)的缩写,SC1表示的是智慧城市中的智慧路灯,再比如SC2则表示的是智慧城市中的智慧井盖。 E53扩展接口在电气特性上,包含了常用的物联网感知层传感器通信接口,比如5V、3.3V、GND、SPI、UART、IIC、ADC、DAC等等,可以适配各种传感器,还留有4个普通GPIO,如图: E53_ST1智慧消防扩展板 E53_ST1扩展板采用了E53标准接口,包含了一个GPS模块L80-R,一个无源蜂鸣器,一个LED,其中无源蜂鸣器使用定时器输出PWM信号控制,LED使用普通GPIO控制,GPS模块的数据使用 USART 读取。 如果你对该扩展板板载的 L80-R GPS模块和无源蜂鸣器的驱动不熟悉,请先阅读嵌入式基础教程 2. 移植E53_ST1驱动到LiteOS 复制裸机驱动文件到LiteOS工程 本文中所使用的驱动文件

LiteOS云端对接教程08-LiteOS基于LWM2M对接华为OC平台实战

我怕爱的太早我们不能终老 提交于 2020-02-26 16:29:46
1. 云端准备工作 —— 注册并登录OC平台 注册并登录 华为OceanConnect平台 ,需要使用华为云账号登录。 进入后界面如下: 2. 云端操作 — 创建云端设备 2.1. 创建项目 点击创建项目: 填写信息之后提交: 创建之后,系统会弹出分配的应用ID和秘钥,应点击下载,及时保存: 接下来点击进入项目,进入之后界面如下: 2.2. 创建产品 选择创建自定义产品: 填写产品信息: 创建产品成功之后如图: 接下来我们需要创建该设备的属性和控制命令。 2.2.1. 创建设备属性 创建一个新的服务: 添加设备亮度值属性Lightness: 编辑属性值的详细信息: 设置完成之后如下: 2.2.2. 创建下发命令 点击添加命令: 然后添加下发命令的字段: 添加完成之后如图: 一个完成的产品创建完成。 2.3. 创建编解码插件 CoAP协议的设备需要完善数据解析,将设备上报的二进制数据转换为平台上的JSON数据格式。 2.3.1. 新增设备消息 点击编解码插件开发,点击新增消息: 填写设备上报数据的基本信息: 添加该消息字段: 首先添加该消息的地址字段: 然后添加该消息的内容字段: 最后添加完成的消息字段如下: 2.3.2. 添加下发命令消息 点击编解码插件开发,点击新增消息,填写下发命令数据的基本信息: 首先添加该消息的地址字段: 然后添加该消息的内容字段:

LiteOS云端对接教程06-华为OC平台创建CoAP产品并使用模拟设备测试

不羁的心 提交于 2020-02-26 15:55:54
1. 云端准备工作 —— 注册并登录OC平台 注册并登录 华为OceanConnect平台 ,需要使用华为云账号登录。 进入后界面如下: 2. 云端操作 — 创建云端设备 2.1. 创建项目 点击创建项目: 填写信息之后提交: 创建之后,系统会弹出分配的应用ID和秘钥,应点击下载,及时保存: 接下来点击进入项目,进入之后界面如下: 2.2. 创建产品 选择创建自定义产品: 填写产品信息: 创建产品成功之后如图: 接下来我们需要创建该设备的属性和控制命令。 2.2.1. 创建设备属性 创建一个新的服务: 添加设备亮度值属性Lightness: 编辑属性值的详细信息: 设置完成之后如下: 2.2.2. 创建下发命令 点击添加命令: 然后添加下发命令的字段: 添加完成之后如图: 一个完成的产品创建完成。 2.3. 创建编解码插件 CoAP协议的设备需要完善数据解析,将设备上报的二进制数据转换为平台上的JSON数据格式。 2.3.1. 新增设备消息 点击编解码插件开发,点击新增消息: 填写设备上报数据的基本信息: 添加该消息字段: 首先添加该消息的地址字段: 然后添加该消息的内容字段: 最后添加完成的消息字段如下: 2.3.2. 添加下发命令消息 点击编解码插件开发,点击新增消息,填写下发命令数据的基本信息: 首先添加该消息的地址字段: 然后添加该消息的内容字段: