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\ ...
随机推荐
- C#扩展(2):Random的扩展
在.net中关于Random一共也只有这几个方法 // // 摘要: // 表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备. [ComVisible(true)] public ...
- C#中Abstract和Virtual[转载]
原文:http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的使用 ...
- 学习Object.assign()
Object.assign()用于将所有可枚举的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法 Object.assign(target, ...source); var obj = { ...
- ASP.NET网页发布以及相关问题的解决
今天做了一个统计站点的网页,想要发布一下,中间碰到不少问题,现在和大家分享一下! 这是我想要最终的网页结果: 1.发布站点到桌面(任意路径) 2.安装IIS 3.安装好后,打开IIS, ...
- Oracle PL/SQL Developer集成TFS进行团队脚本文件版本管理
对于传统的使用关系型数据库的大型软件产品,后台数据库的持续开发和维护可能会产生大量的脚本文件,针对这些脚本文件应该怎样比较方便的进行版本管理,以及如何快捷的在团队之间进行权限等协作管理呢?不同的数据库 ...
- RAID常用级别的比较
[转]RAID常用级别的比较 特点 硬盘及容量 性能及安全 典型应用 raid 0 用于平行存储,即条带.其原理是把连续的数据分成几份,然后分散存储到阵列中的各个硬盘上.任何一个磁盘故障,都将导致数据 ...
- Python入门-数据类型
一.变量 1)变量定义 name = 100(name是变量名 = 号是赋值号100是变量的值) 2)变量赋值 直接赋值 a=1 链式赋值 a=b=c=1 序列解包赋值 a,b,c = 1,2,3 ...
- 初用MssqlOnLinux 【1】
https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat 使用 Centos7,NetCore2.0, ...
- python安装第三方库的三种方法
使用pip 大多数库都可以通过pip安装,安装方法为,在命令行窗口输入 pip install libname libname为库名 某些库通过pip安装不了,可能是因为没有打包上传到pypi中,可以 ...
- vue+Element实现静态旅游网站
页面效果: 1.用vue脚手架:vue-cli,新建一个vue项目. 2.npm run dev后,给小颖了一句提示:Your application is running here:http://l ...