Zephyr应用笔记:mcuboot引导程序简单介绍

本文对mcuboot(version 1.1.0)做一个简单介绍供参考,Github地址:https://github.com/runtimeco/mcuboot

以下内容都是针对(version 1.1.0)做介绍:


目前支持三种操作系统:

Zephyr

Mynewt

RIOT


镜像跳转方式支持两种:

1、两块镜像区域image_0和image_1;

2、三块镜像区域image_0、image_1和scratch;


两种方法都是app永远在image_0地址运行


第1种情况的基本思路:

运行在image_0,如果需要升级app,则将app存储于image_1,重启装置,mcuboot检测到image_1有镜像,step1:擦除image_0,step2:将image_1的内容搬运到image_0,step3:跳转到image_0地址启动程序;

第2种情况的基本思路:

运行在image_0,如果需要升级app,则将app存储与image_1,重启装置,mcuboot检测到image_1有镜像,step1:image_0内容搬运到scratch中,step2:擦除image_0,step3:将image_1的内容搬运到image_0,step4:跳转到image_0地址启动程序;


对比两种方式各有优缺点:

第一种方式:

优点:镜像只有两个区域,对FLASH要求较低,镜像程序可以大一点;

缺点:如果升级一个错误的镜像则程序将无法运行,即装置会变砖,只能通过例如ST-LINK等工具重新刷固件;

第二种方式:

优点:即使升级的镜像有问题,那么还可以恢复到原来的固件,稳定性更强;

缺点:镜像有三个区域,对FLASH要求较高,镜像程序小的可以用这种方式;


2018年3月8日


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Zephyr开发一个应用,首先需要了解Zephyr是一个开源的嵌入式操作系统,专为物联网设备设计。它支持多种硬件平台,并提供丰富的功能和API,用于开发各种物联网应用。 要在Zephyr上开发应用,需要进行以下几个步骤: 1. 硬件选择:Zephyr支持多种硬件平台,包括常见的硬件开发板和处理器架构。根据应用需求选择适合的硬件平台。 2. 环境搭建:安装并配置Zephyr开发环境,包括交叉编译工具链、开发板支持包等。可以借助Zephyr的文档和社区来完成环境搭建。 3. 应用设计:根据应用需求,设计应用的功能和架构。考虑到Zephyr的特点,可以使用事件驱动的方式进行应用设计,利用Zephyr提供的线程、队列、信号量等功能。 4. 编码实现:使用C语言或C++语言编写应用代码。可以利用Zephyr的API调用硬件功能或者实现自定义功能。 5. 编译和烧录:使用Zephyr提供的编译工具链进行应用代码编译,生成可执行文件。然后将可执行文件烧录到目标硬件平台上。 6. 测试和调试:在硬件平台上运行应用程序,进行测试和调试。借助Zephyr的调试工具和日志功能,进行应用程序的问题排查和修复。 7. 应用发布:经过测试和调试后,可以将应用程序部署到目标设备上,完成应用的发布。 总之,在Zephyr上开发应用需要关注硬件平台选择、环境搭建、应用设计、代码实现、编译和烧录、测试和调试、应用发布等步骤。掌握Zephyr的API和工具,结合物联网应用的需求,可以开发出高效稳定的应用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值