利用物联网操作系统Zephyr实现“连续集成”开源软件的开发

简介:

物联网操作系统是配置在物联网硬件设备上的第一层软件,是对物联网硬件系统的首次扩充。

Zephyr作为一款专门为内存受限的物联网设备而推出的开源实时操作系统,其一大特点就是具有高度开源性。Zephyr操作系统如何进行“连续集成”软件开发?不妨通过一个实例演示来看一看。

这个演示实例是Linaro和Zephyr操作系统基于单片机进行的。它是一个高度开放、高度透明的开发过程,开发者在本地只需要运行一个git工具,其余的集成过程(包括代码检查,测试)完全在云端解决。我们接下来将进行实例演示过程。  

Zephyr 云工作流程和CI

Zephyr 云工作流程和CI

如上图所示,这个演示实例是基于Zephyr操作系统进行的,它向用户展示(软件开发过程)在源代码,工具使用及软件配置方面所能达到的开放程度;并且展示软件协作在深奥的嵌入式RTOS代码工程中所能达到的透明程度。

这个实例从一些工业标准开源工具开始,它们可以帮助用户实现协作处理。如下:

  • Git 源代码管理和协作处理;
  • 基于标准C语言及Make工具的构建设施;
  • 将qemu作为虚拟测试平台;

此外,还要添加一些Linaro已有的和新推出的内容到社区中,如下:

  1. Linaro的开源测试基础-LAVA;
  2. 连续集成工具,此前表现在Linux Kernelci基础设施上;
  3. 基于物联网Editon Cortex-M MCU的开发板;
  4. LITE团队在平台与引导程序方面的创新支持;

基于以上因素,该实例演示了一个“连续集成”循环测试过程,测试过程既可使用远程虚拟目标平台,也可使用本地真实硬件平台IoT-edition Cortex-M4开发板。

本次测试的目标是要展示开源操作系统Zephyr,展示它如何通过最具有实践性的开源开发工具执行目标工程,以此对“连续集成”环境加以推广。

从上图可以看到,在演示中,我们对Zephyr工程源代码做了修改并提交至https://github.com/linaro/zephyr。在此过程中,我在本地只需用到git工具。首先,我对git本地代码仓中的代码进行修改,然后推送这些修改(git push)。注意我是把修改推送至我们的连续集成Zephyr代码仓。git push命令会开启整个测试过程,包括远程构建超过100个测试应用程序,在虚拟设备Qemu上执行这些程序,并实时给开发人员返回结果。

当来自虚拟设备的测试结果被执行后,关键目标应用随后会被构建并且通过云端部署到小型测试场地,程序会在多个真正的硬件平台上实时进行测试。

开发测试部署

开发测试部署

另外,整个构建和测试基础设施在构建过程中,出于可扩充性考虑,采用了容器与分发的设计模式。甚至,在ELC展示的本地测试现场,也在笔记本电脑上运行了一个负责测试分发的容器实例。整个测试过程是完全仿真的实时硬件测试。

关于Zephyr项目

Zephyr 项目是一款小型且可扩展的实时操作系统,尤其适用于资源受限的系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该 系统进行二次开发,以支持最新硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。

关于Linaro

Linaro是一个由成员资助组建的非盈利组织,旨在整合并优化ARM架构的开放源Linux软件和工具。该组织采用多家公司联合投资一个软件工程团队的商业模式,共同在透明的合作环境中开发核心开放源软件。

Linaro是一个以团队为中心的组织,不仅采用开放源,还组织成员在无差异层面上展开有效协作、分享并进行本质创新,从而为行业同仁们提供差异化附加资源。Linaro成为对最新Linux核心程序3.0到3.7贡献最大的公司之一,这说明Linaro的协作方法确实有效。





作者:zephyr
来源:51CTO
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
2月前
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
57 2
|
1月前
|
安全 搜索推荐 Android开发
移动应用与系统:探索开发趋势与操作系统优化策略####
当今数字化时代,移动应用已成为日常生活不可或缺的一部分,而移动操作系统则是支撑这些应用运行的基石。本文旨在探讨当前移动应用开发的最新趋势,分析主流移动操作系统的特点及优化策略,为开发者提供有价值的参考。通过深入剖析技术创新、市场动态与用户需求变化,本文力求揭示移动应用与系统协同发展的内在逻辑,助力行业持续进步。 ####
47 9
|
20天前
|
安全 前端开发 Android开发
探索移动应用与系统:从开发到操作系统的深度解析
在数字化时代的浪潮中,移动应用和操作系统成为了我们日常生活的重要组成部分。本文将深入探讨移动应用的开发流程、关键技术和最佳实践,同时分析移动操作系统的核心功能、架构和安全性。通过实际案例和代码示例,我们将揭示如何构建高效、安全且用户友好的移动应用,并理解不同操作系统之间的差异及其对应用开发的影响。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解和知识。
|
21天前
|
人工智能 搜索推荐 Android开发
移动应用与系统:探索开发趋势与操作系统演进####
本文深入剖析了移动应用开发的最新趋势与移动操作系统的演进历程,揭示了技术创新如何不断推动移动互联网生态的变革。通过对比分析不同操作系统的特性及其对应用开发的影响,本文旨在为开发者提供洞察未来技术方向的视角,同时探讨在多样化操作系统环境中实现高效开发的策略。 ####
19 0
|
1月前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
26天前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
33 1
|
1月前
|
存储 网络协议 物联网
C 语言物联网开发之网络通信与数据传输难题
本文探讨了C语言在物联网开发中遇到的网络通信与数据传输挑战,分析了常见问题并提出了优化策略,旨在提高数据传输效率和系统稳定性。
|
1月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
39 2
|
1月前
|
传感器 前端开发 Android开发
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求。本文深入探讨了插件开发的基本概念、流程、集成方法、常见类型及开发实例,如相机插件的开发步骤,同时强调了版本兼容性、性能优化等注意事项,并展望了插件开发的未来趋势。
42 2
|
1月前
|
人工智能 Android开发 数据安全/隐私保护
移动应用与系统:探索开发趋势与操作系统的协同进化####
当今时代,移动应用不再仅仅是简单的软件工具,它们已成为扩展智能手机及平板等设备功能的关键。本文旨在深入分析当前移动应用的开发趋势,探讨移动操作系统的最新进展及其对应用开发的影响,并阐述两者如何相互促进、协同进化,共同推动移动互联网技术向前发展。 ####

相关产品

  • 物联网平台