实操演示-Proprietary产品的OTA升级实现方法

SiliconLabs 2021-01-21 00:00


为了帮助开发人员提升无线技术应用能力, Silicon Labs (亦称“芯科科技” ) 近期制作了一系列无线 OTA升级的实操演示视频,本则内容主要介绍 Proprietary SoC模式的 OTA升级实现方法,欢迎参阅下方摘要说明,并点击视频链接观看详细的操作流程:

 
Silicon LabsSDK内建的示例代码 Sensor可以作为 OTA的客户端, Sink作为 OTA的服务器端。通过添加功能代码客户端实现通过按键触发自动加入网络,并发起 OTA升级请求。服务器端实现自动建网,允许加网以及发送 OTA升级文件给客户端的功能。硬件上采用 2块功能齐全,支持 BluetoothProprietary协议并拥有 J-Link调试器的 Thunderboard BG22。它们价格亲民,非常适合爱好者做开发使用。
 

首先我们需要把两块Thunderboard通过USB线连接到电脑,运行Simplicity Studio 5开发环境。本次的教学主要分为三个步骤:

  1. Proprietary OTA 客户端的实现方法
  2. Proprietary OTA 服务器端的实现方法
  3. Proprietary OTA 升级的实际过程

 
Proprietary OTA 客户端的实现方法
IDE的左上可以看到两块 Thunderboard列表,选中其中一块,点击右侧的建立新工程按钮。在弹出的视图左侧勾选 Proprietary,然后在右侧列表中找到 SoC Sensor示例代码,按 Next按键,再按 Finish按键 Sensor工程就被生成。
 
接著点开 Sensor工程,双击 Sensor.Slcp打开工程配置文件,然后点击 Software Components标签。在搜索栏键入: “bootloader”安装 OTA相关的几个器件,然后切换回 Overview标签。点击 Force Generation产生 OTA相关的代码,打开 app_process.c文件,其中 sl_button_on_change函数在按键时会被调用添加一个自定义的函数调用 halButtonlsr函数。
 
打开 app_callback.c添加一个按键的事件,并为这个事件分配处理函数。然后再添加 halButtonlsr函数在有按键时激活事件处理函数。接着添加按键事件处理函数进入函数,首先禁止事件活跃避免冲突,然后对 Bootloader接口初始化,并删除用来存放 OTA升级文件的存储区。接着查看网络状态如不在网则执行加网动作等待 2秒再返回处理函数。
 
如果已经入网则向服务器发送 OTA升级请求,这里 OxA5是自定义的 OTA 升级命令。然后还有加网函数,主要是配置好参数调用加网 API 即可。然后点击菜单上的小锤子按钮来编译整个工程,耐心等待编译完成可以看到左侧文件列表中多了一个 debug的目录。打开目录可以看到生成的 Sensor.s37hexbin文件。之后还需要一个 OTA升级的 GBL文件,点击 connect_creategbl_image_bat就会生成 sensor_gbl文件在 debug目录下。至此 ProprietaryOTA Client的部分完成。
 
Proprietary OTA 服务器端的实现方法
当开始生成 sinkserver 的工程时,返回 IDE主界面,选择另一块 Thunderboard点击右侧的建立新工程的按钮。勾选 Proprietary然后找到 SoCSink 示例代码。按 Next 按键再按 Finish按键生成 Sink 工程。点开 Sink 工程并双击 sink.slcp打开工程配置文件,然后点击 Software Component 标签在搜索栏中键入 “bootloader”,安装 OTA相关的几个器件,然后切换回 Overview标签。
 
点击 Force Generation 产生 OTA相关的代码。打开 app_callback.c添加一个 Commission的事件,并为这个事件分配处理函数并在函数运行一秒后激活事件处理函数来处理 OTA 升级需求。之后关于 Commission事件处理函数,首先禁止事件活跃避免冲突,然后对 Bootloader的接口进行初始化,检验存储区里的 OTA升级文件是否有效,接着建立网络并开放网络。建网函数主要配置好参数,调用内部的 API。开发网络打开一个 240秒的窗口,允许 Sensor客户端加入网络。然后在 incomingmessage callback函数里面添加对客户端发起的 OTA升级请求的处理。在收到请求后读取存储区的升级 GBL文件并向客户端发送。
 
这个解析的函数是为了获取其大小传递参数给 API来发送 OTA GBL文件。在 GBL 文件传送到客户端完成后服务器端需要发送一个重启命令给客户端。客户端重新进入 Bootloader的模式 , 把接收到的文件更新到应用程序区。
 
完成 OTA升级这里需要修改一个 SDK内部文件 sl_connect_ota_unicast_bootloader_test.c。添加一个自定义的函数调用 otaUnicastStartDistribution。这个函数负责向客户端发送重启命令,点击菜单上的小锤子开始编译 Sink 工程,耐心等待编译完成后可以看到 Debug目录下生成了 Sink.s37hink bin文件。至此 ProprietaryOTA Server的部分已经完成。
 
Proprietary OTA 升级的实际过程
把编译好的 sensorsink OTA GBLBootloader分别烧录到 Thunderboard上。这里为了方便在不同协议中调试 OTA 功能,采用了 JSON来配置 并且通过 Python解析 JSON文件烧录相应的 image到不同的板子上。上电后服务器端建网并开发网络,按客户端的按钮,客户端加入网络,发起 OTA升级请求。服务器端传送 OTAGBL 文件给客户端。传送完成后客户端重启并更新应用程序完成整个 OTA升级过程。
 
您也可以扫描以下二维码,关注 Silicon Labs社交媒体平台

评论
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 138浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 180浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 140浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 137浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 109浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 40浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 115浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 178浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 604浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 260浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 347浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 230浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 204浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 278浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦