BLE空中升级 谈(一)
BLE 空中升级谈
-- CC2541 的产品开发中OAD注意事项
现在的智能设备(可穿戴,智能家居,智能玩具等)是越来越多了,大公司的产品颜值高,功能强大而完备的应该说是比比皆是,这里不谈论它是满足所谓的刚性需求。许多新(shan)创(zhai)公司做的产品就只能凭一面之缘了,要是喜欢你就买下,反正后面觉得哪里不好,用着不爽就扔掉便是,看官自是不缺这几十一百块钱。比如像小米的一代手机 Mi BNAD(现售69),电子称Mi Scale(现售99)。虽说便宜事实上这确是匠心之作,就本人了解,从空中升级来看,它们就很棒,设备它的目前的程序存在严重问题,或者它的功能在现有硬件资源还能进行合理的扩增,小米会在后续推出相应的firmware,就算产品已经到了用户手上也可以得到升级,这一切都是免费的,甚至是不知不觉的,要不怎么说相信大公司呢。所以有着完美主义情节的在下总觉得空中升级就应该是此类设备必备的功能(之一)。
前言说小米是大公司,产品有带空中升级,话外音就是想说当前市面上许多众筹,或者外贸品牌转内销,一些刚开创的小牌产品,基于快速上市这一当前市场的最高原则,几乎把这个“不(hen)起(zhong)眼(yao)”的功能给选择性忽略了。话说在这里,不怕砖块。事实上这个功能之于产品是非常重要的, 对于这些很容易就被弃之不用的小物件是极重/相当重要的!
这么重要的功能,如何开发呢,以低功耗蓝牙来说,本人最早自TI BLE Stack 1.4.0开始了解,也基于这里开始开发。而这个版本的协议栈,就已经自带了空中升级的例程,并且编写了相当不错的boot,这是从IC原厂的角度来看,也是IC原厂的态度,一个小的智能设备本来就应当具备空中升级。没错,不用怀疑,必须的特性。虽然原厂给了这么大力的支持,还是很遗憾,现在市面还是有不(zhu)少(duo)产品就是没有空中升级的,让人难予置信。除了TI, 其他原厂比如NODIC也有,这是半导体大厂的共识。
有了这么好的基础,想演示空中升级已经是极其容易了,于是应该也出现了按照这个demo水准而推出的“产品”,但我没有去一一验证过,相信找找肯定还是会有的。有的产品根本没有,有的也只是一个demo,这让趟这行浑水的人总觉得世间坑无数,此处再添来的感慨。好了,牢骚发完,谢谢各位的耐心,我再接着讲讲这个空中升级也称Upgarade over the air(简记为OTA), Over Air Download(简记为OAD),大概怎么来做,原谅这里也不会太详细,详细的部分各方案的开发向导中就有,可能是英文的,但也容易读懂。以TI的CC2541为例,对于其他IC请举一反三。
第一条是了解原厂的空中升级方案,作为一线开发者,要达到深入的理解,只是了解还不够的。TI的OAD方案大致是使用 boot + image A + image B这样的方式,boot负责启动系统,image A能更新image B, 反过来image B也能更新Image A,这样设备就可以反复进行OAD了, Image A/B的作用是完全等同的。而通常在实际的开发中, image B才是设备正常使用时运行的程序, Image A仅是用来更新Image B会更好,一来安全,再者可以让Image B有更多的空间。按照后面的设计它们分别占用三个分区,仅image B区域是可以擦除的。另外还有一个区域是前面三者共同使用的,用于存储用户信息等,这个空间是共享的。具体的解读可以找度娘。
STEP BY STEP 1, http://bbs.ednchina.com/BLOG_ARTICLE_3019402.HTM
干货在后面。未完待续。。。
BLE空中升级 谈(一)的更多相关文章
- BLE空中升级 谈(二)
BLE 空中升级谈 -- CC2541 的产品开发中OAD注意事项(续) TI CC2541支持多个硬件,多个软件对它进行空中升级,可以有不同的组合,硬件有 编号 名称 Hex 用法 1 Cc2540 ...
- 如何实现蓝牙空中升级BLE OTA
如何实现BLE OTA?什么叫DFU?如何通过UART实现固件升级?又如何通过USB实现固件升级?怎么保证升级的安全性?什么叫双备份(dual bank)DFU?什么叫单备份(single bank) ...
- iOS蓝牙空中升级(固件升级)
空中升级又叫固件升级,指你手机从服务器下载下来的包或者数据,通过蓝牙传输给你的外设升级固件.如果你能把蓝牙的基础搞懂,其实也并不是很难,我在这里只不过提供一下思路. 空中升级略难的地方在于数据处理和交 ...
- nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级
如何在nRF Connect SDK(NCS)中实现蓝牙空中升级?MCUboot和B0两个Bootloader有什么区别?MCUboot升级使用的image格式是怎么样的?什么是SMP协议?CBOR编 ...
- 详解BLE 空中包格式—兼BLE Link layer协议解析
BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(pa ...
- Android BLE dfu升级
dfu升级适用于nordic nRF51 nRF52 的系统,github上提供了相关升级的库https://github.com/NordicSemiconductor/Android-DFU- ...
- nRF52832 BLE_DFU空中升级OTA(三)准备升级工程(SDK14.2.0)
准备需要加入DFU功能的工程 在工程main文件services_init函数中加入DFU服务 uint32_t err_code; // Initialize the async SVCI inte ...
- NRF51800 空中升级DFU
下面是基础软件的安装:[抄袭他人所得] 1.安装Python软件,建议版本2.7.9及以上,不超过3.0版本[以下安装步骤需要联网]2.安装Python的pip模块,通过命令提示符进入到Python的 ...
- nRF52832 BLE_DFU空中升级OTA(二)编译下载(SDK14.2.0)
上一篇配置好了开发环境,现在就可以试着跑一下例程了,这里需要两个例程,一个是bootloader的,一个是应用程序的,其路径分别为: bootloader:SDK_14.2.0工程\examples\ ...
随机推荐
- laravel框架一种方便的快速填充数据的方法
首先大家都知道在laravel框架里是采用seeder来填充数据的,具体命令如下,请将如下的类名称替换成你具体的seeder类名. 首先创建seeder类 php artisan make:seede ...
- Linux整合Apache和SVN
1.安装APR-1.2.7和APR-util-1.2.7 (下载地址:http://apr.apache.org/) #tar zxvf apr-1.2.7.tar.gz #cd apr-1. ...
- g4e基础篇#2 Git分布式版本控制系统的优势
g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...
- mysql change master导致gtid丢失
change master导致gtid丢失从innobackupex恢复导致binlog的拉取位置会导致主备gtid不一致.此类错误通过构造空事务方式无法修复.此时就需要change master 方 ...
- springBoot系列教程04:mybatis及druid数据源的集成及查询缓存的使用
首先说下查询缓存:查询缓存就是相同的数据库查询请求在设定的时间间隔内仅查询一次数据库并保存到redis中,后续的请求只要在时间间隔内都直接从redis中获取,不再查询数据库,提高查询效率,降低服务器负 ...
- php curl 请求302跳转页面
今天对接支付接口,需要获取支付页面,发现支付商那边给的链接会发送302 跳转,最后发现该方法,绝对给力: <?php $url = 'http://auto.jrj.com.cn/'; $ch ...
- win10 音频服务未响应的解决方法
最近在调试usb audio设备,由于使用的是自己的audio 设备,所以要频繁的更换采样率,可是 在win10中经常出现一些莫名其妙的问题,今天这个问题就是折腾了我好久才搞定的. 当把usb aud ...
- 第五章:大数据 の HBase 进阶
本课主题 HBase 读写数据的流程 HBase 性能优化和最住实践 HBase 管理和集群操作 HBase 备份和复制 引言 前一篇 HBase 基础 (HBase 基础) 简单介绍了NoSQL是什 ...
- 史上最简单的js+css3实现时钟效果
今天我看到百度搜索的时间那个效果不错,于是就产生了模仿一下的效果,不过为了节省时间,就随便布了下局,废话不多说,先看看效果吧,顺便把百度的效果也拿过来. 对比样子差了好多啊,但是基本功能都是实现了的, ...
- 【埃氏筛】洛谷P3383埃氏筛模板
思路: 如果我们要筛出 [1, n] 内的所有素数,使用 [1, √n] 内的素数去筛就可以了 设bool型数组 a,a[i] 表示 i 是否被某个素数筛过 从 2 开始枚举每个数 i: 若 a[i] ...