转:http://blog.csdn.net/yueqian_scut/article/details/50849033 固件空中升级(OTA)与固件二次引导的原理和设计 原创 2016年03月10日 18:31:33 标签: OTA / DA14580 / 二次引导 / 固件空中升级 / 蓝牙 4952 蓝牙固件空中升级(OTA)涉及到蓝牙无线通信.固件外存分布.固件内存分布(定制链接脚本).固件二次引导等技术,需要开发人员深入理解蓝牙单芯片的存储架构.启动引导流程.外存设备驱动和产品电路设计…
目录 一.前言: 二.回顾下OTA的流程: 三.lwip网络框架的知识的使用: 四.如何处理服务器返回的数据? 五.扇区的擦除和烧写? 六.如何调用? 七.好好享用吧! 八.下载: 九.工程截图: 代码地址如下:http://www.demodashi.com/demo/13533.html 一.前言: esp8266实现OTA已经不是什么奇怪的事情了,主要esp8266还有支持裸跑非系统和rtos实时系统之分,导致现在有2个版本的代码,前面我已经料到了在NONOS怎么实现远程升级我们的固件,那…
文件夹 文件夹 概述 make otapackage BUILT_TARGET_FILES_PACKAGE ota_from_target_files WriteFullOTAPackage SignOutput 总结 概述 make otapackage是Android Build系统支持的命令.用来生成Recovery系统能够进行升级的zip包. 因此.想要了解Android的OTA升级机制.我们首先须要学习make otapackage命令的运行过程. 为了防止泄密,下面源代码内容都是基于…
不积跬步,无以至千里: 不积小流,无以成江海. 出自荀子<劝学篇> 1.概念解释 OTA是何物? 英文解释为 Over The Air,既空中下载的意思,具体指远程无线方式,OTA 技术可以理解为一种远程无线升级技术: FOTA:Firmware OverThe Air/固件空中升级,通过云端为具有连网功能的设备:例如手机.平板电脑.移动互联网设备等提供固件升级服务,手机中的固件升级即可称为 FOTA: 在3G.4G网络普遍的今天,很多时候还是要考虑流量限制,如果步入5G时代,虽然流量已不在是…
目录 1.阅读源码之前的思考 2.从 Broker 启动流程看 DLedger 2.1 构建 DefaultMessageStore 2.2 增加节点状态变更事件监听器 2.3 调用 DefaultMessageStore 的 load 方法 3.DLedgerCommitLog 详解 3.1 核心类图 3.2 构造方法 3.3 load 3.4 recover 4.从消息追加看 DLedger 整合 RocketMQ 如何实现无缝兼容 5.从消息读取看 DLedger 整合 RocketMQ…
摘要 Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式(类似于windows PE或DOS).也可以称之为安卓的恢复模式,在这个所谓的恢复模式下,我们可以刷入新的安卓系统,或者对已有的系统进行备份或升级,也可以在此恢复出厂设置(格式化数据和缓存). 1. Recovery相关概念 Recovery: Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式,也指Android的Recovery分区 OTA: Over-the-Air Technology,…
Android OTA 升级之三:生成recovery.img 作者: 宋立新 Email:zjujoe@yahoo.com 前言 得到了ota升级包后,我们就可以用它来升级系统了.Android 手机开机后,会先运行 bootloader. Bootloader 会根据某些判定条件(比如按某个特殊键)决定是否进入 recovery 模式.Recovery 模式会装载 recovery 分区, 该分区包含recovery.img.recovery.img 包含了标准内核(和boot.img中的内…
本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的Framework包括Android Framework.Linux QT.Windows MFC.应用框架抽象并封装实现了一般应用场景的需求,完成应用开发的80%,剩下的20%则以回调(callback)和接口的方式供应用开发人员调用以完成具体的需求. 一般Framework完成的工作包括:任务分…
从底层谈WebGIS 原理设计与实现(三):WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理 1.前言   在上一节中我们知道了屏幕上一像素等于实际中多少单位长度(米或经纬度)的换算方法,而知道这个原理后,接下来我们要怎么用它呢?它和我们前端显示地图有什么关联呢?这一节,我会尽量详细的将这两个问题一一回答.说一个题外话,这一系列的文章我都会少给代码,多画流程图或者UML图来跟大家交流,一来便于没有很多GIS和编程基础的人读懂,二来使大家不局限于某种代码的实现而更关注于原理. 2.影像…
标准的OTA升级流程包括一下几个步骤: 1.Android设备首先会与OTA服务器进行交互,如果有更新会推送给客户.推送的信息常常会包含OTA更新包的下载地址和一些版本信息. 2.Update程序会将更新包下载到cache分区下,并提醒用户安装更新. 3.设备会重启进入recovery模式,同时启动recovery分区下运行环境,不再启动boot分区下的运行环境. 4.recovery运行环境初始化时会启动recovery二进制程序并根据/cache/recovery/command中的命令对更…
在一个电子系统中,CPU.内存.物理存储.IO这些单元必不可少,只不过有的集成在CPU内部,有的分离出来. 这里就针对系统中的内存,此处选用DRAM来进行说明,讲述下基本的原理设计,主要分为以下几个部分: (1)DRAM芯片引用 256Mb大小SDRAM:K4S560432E (2)DRAM引脚类型 A0-A12:地址总线 DQ0-DQ15:数据总线 CLK:系统时钟 CKE:时钟使能 RAS#:行地址锁存 CAS:列地址锁存 WE#:写使能 DQM:数据输入输出屏蔽 BA0,BA1:块地址选择…
https://blog.csdn.net/xh870189248/article/details/80095139 https://www.wandianshenme.com/play/arduino-ota-arduino-ide-ota-upgrade-esp8266-application/ 我这里详细地说下这里包含了啥信息!由下面可得,不同的8266模块,其外部falsh大小决定了编译时候的user.bin路径,所以大家在此OTA升级,必须要摸清楚你买的模块是哪个falsh大小的,注意…
在网上可以搜到很多相关的文章,但是很多文章都是复制粘贴而来的,为了方便后面工作学习,本文会把其中最关键的几个步骤列出来. 首先根据ota升级界面的文字可以确认相关的图片资源的目录在哪里,可以网上搜一下. 升级动画所用的资源张合成的图片:icon_installing.png 准备几张符合屏幕分辨率的图片,用python脚本interlace-frames.py(源码里有该脚本),python icon_installing.png tupian1.png tupian2.png tupian3.…
从底层谈WebGIS 原理设计与实现(六):WebGIS中地图瓦片在Canvas上的拼接显示原理 作者:naaoveGI…    文章来源:naaoveGIS    点击数:1145    更新时间:2014-9-14 摘要:在之前的五个章节中,我们在第一章节里介绍了WebGIS的基本框架和技术,第二章节里介绍了什么是瓦片行列号以及计算它的原因,第三章节里介绍了如何通过地理范围计算出这个范围内瓦片的行列号,第四和第五章节里介绍了在得到瓦片行列号后如何获得离线和在线地图的URL,这个章节里,我们将…
从底层谈WebGIS 原理设计与实现(五):WebGIS中通过行列号来换算出多种瓦片的URL 之在线地图 作者:naaoveGI…    文章来源:naaoveGIS    点击数:2063    更新时间:2014-9-13 摘要:从底层谈WebGIS 原理设计与实现(五):WebGIS中通过行列号来换算出多种瓦片的URL 之在线地图.这篇文章里,我主要针对OGC标准中的WMS.WMTS以及ArcGIS的在线地图服务来进行解析. 1.前言 这篇文章里,我主要针对OGC标准中的WMS.WMTS以…
从底层谈WebGIS 原理设计与实现(四):WebGIS中通过行列号来换算出多种瓦片的URL 之离线地图 作者:naaoveGI…    文章来源:naaoveGIS    点击数:1759    更新时间:2014-9-13 摘要:从底层谈WebGIS 原理设计与实现(四):WebGIS中通过行列号来换算出多种瓦片的URL 之离线地图.我在这里将地图分为离线地图和在线地图.所谓离线地图,即保存在本地而没有发布的地图.在线地图即发布与网上,可以通过浏览器访问的地图. 1.前言 在前面我花了两个篇…
从底层谈WebGIS 原理设计与实现(二):探究本质,WebGIS前端地图显示之地图比例尺换算原理 作者:naaoveGI…    文章来源:http://www.cnblogs.com/naaoveGIS/    点击数:2453    更新时间:2014-9-12 摘要:前面我不厌其烦的给大家说了很多本节的题外话,现在言归正传,我们开始这个系列中的第一个问题,地图比例尺换算原理.想要从底层实现瓦片的显示,我们首先必须了解瓦片本身.我们用arcgis切完图后,打开发布的服务或者打开config…
从底层谈WebGIS 原理设计与实现(一):开篇 作者:naaoveGI…    文章来源:http://www.cnblogs.com/naaoveGIS/    点击数:4773    更新时间:2014-9-12 摘要:我相信大家对百度地图,谷歌地图等相关应用已经是非常熟悉了.通过这些应用,我们可以浏览地图.定位我们自己的位置.查找我们想知道的兴趣点.搜索交通路线等等.而其实,这些功能便是WebGIS的一些最基本的功能.那么什么是WebGIS呢,说到这里,我还是首先给大家讲讲什么是GIS.…
Atitit.字节数组转字符串 base64 base16 Quoted-printable 编码原理设计 attilax 总结 1. Base64编码, 1 2. Base64实现转换原理1 3. Base16 md5编码2 4. Quoted-printable 编码 QP编码2 5. Base64的俩个子模式 urlsafe Or  url unsafe3 6. UUencode编码 3 7. private static char toChar(int index, boolean is…
代码地址如下:http://www.demodashi.com/demo/12994.html 一.前言: 写了这么多的8266博文,一直以满意100%的心态去敲写代码固件烧录,以致很少出现 bug , 目前呢?浏览了网上很多8266的OTA的demo,还特意在某宝上搜了一把,竟然卖的价格为"399"元一个8266的OTA升级方案!天呐!代码这么值钱么?那我之前开源了那么多的工程源码带博文,岂不是无价之宝~~ 其实开心就好,那么本文的话,就带大家共睹8266的OTA的远程升级的整个流程…
除了云端平台这部分,还要有通讯协议层面.云端和汽车端之间指令的接口和协议的制定,不同车厂会有不同诉求.艾拉比既可以支持车厂私有化定制协议的要求,也可以提供基于OMA标准的协议. 第一,它既是云端的工具,也是云端的管理系统.一涉及到管理,就涉及到工作流.角色.人员的管理, 同时OTA的管理平台并不是独立存在,比如跟车厂的信息安全平台.车辆管理的系统进行核心打通, 芮亚楠:从OTA基本流程中的安全防护来说.主要包含了升级包的加密与签名,服务器端对于升级包的安全存储,基于身份验证建立安全链接通道,以及…
本文转载自:http://429564140.iteye.com/blog/2337165 update.zip包整理 一. update.zip包的目录结构           |----boot.img           |----system/           |----recovery/                 `|----recovery-from-boot.p                 `|----etc/                         `|--…
SpringMVC 原理 - 设计原理.启动过程.请求处理详细解读 目录 一. 设计原理 二. 启动过程 三. 请求处理 一. 设计原理 Servlet 规范 SpringMVC 是基于 Servlet 的. Servlet 是运行在 web 服务器上的程序,它接收并响应来自 web 客户端的请求(通常是 HTTP 请求). Servlet 规范有三个主要的技术点: Servlet, Filter, Listener 1. Servlet Servlet 是实现 Servlet 接口的程序.对于…
君子知夫不全不粹之不足以为美也, 故诵数以贯之, 思索以通之, 为其人以处之, 除其害者以持养之: 出自荀子<劝学篇> 终于OTA的升级过程的详解来了,之前的两篇文章OTA升级详解(一)与OTA升级详解(二)主要是铺垫, OTA升级的一些基础知识,那这边文章就开始揭开OTA-recovery模式升级过程的神秘面纱,需要说明的是 以下重点梳理了本人认为的关键.核心的流程,其他如ui部分.签名校验部分我并未花笔墨去描述,主要 还是讲升级的核心,其他都是枝枝叶叶.Android 10 recover…
OTA升级常见问题 问题现象:在进行 OTA 升级测试时,下载成功了升级包,在点击立即更新后,手机一直处于提示“正在更新中”,没能重启进行升级. 问题分析:经过分析发现,因为OTA 应用不具备系统权限.导致其无法在目录/cache/recovery 中创建command 文件并在该文件中写入命令,从而导致 OTA 应用无法通过这种预定的方式重启机器并进入recovery 模式,无法实现正常 OTA 升级. 解决方案:通过在 init.rc 文件中增加 mkdircache/recovery 命令…
Synchronized锁升级原理与过程深入剖析 前言 在上篇文章深入学习Synchronized各种使用方法当中我们仔细介绍了在各种情况下该如何使用synchronized关键字.因为在我们写的程序当中可能会经常使用到synchronized关键字,因此JVM对synchronized做出了很多优化,而在本篇文章当中我们将仔细介绍JVM对synchronized的各种优化的细节. 工具准备 在正式谈synchronized的原理之前我们先谈一下自旋锁,因为在synchronized的优化当中自…
在我们开始前,默认你已经安装好了一些基础工具,如nrfutil,如果你没有安装过请根据官方中文博客去安装好这些基础工具,连接如下:Nordic nRF5 SDK开发环境搭建(nRF51/nRF52芯片平台) - iini - 博客园 (cnblogs.com) 本文只是对整个升级过程进行一次完整操作,以及其中可能出错的地方进行记录,如果你想知道具体原理,那么请你看官方中文博客的两篇文章,如果仅仅只是基于SDK,那么你参考第一篇即可,如果你需要在NCS上进行请参考第二篇,相信你在看了该博客后会对D…
一.前言 最近在看热修复相关的框架,之前我们已经看过了阿里的Dexposed和AndFix这两个框架了,不了解的同学可以点击这里进行查看:Dexposed框架原理解析 和 AndFix热修复框架原理解析,然后还有最近很火的一个是腾讯的Tinker热修复框架,再看他的原理实现的时候,发现了他使用到了开源的文件差分工具bsdiff/bspatch,所以就单独用这篇文章来详细介绍一下这个工具,因为这个工具有一个很大的用途就是增量更新,也就是我们看到现在大部分的应用市场推出的省流量更新应用的效果: 看到…
一: 进入shell命令界面 adb shell 二:创建目录/cache/recovery mkdir /cache/recovery 如果系统中已有此目录,则会提示已存在. 三: 修改文件夹权限 chmod -R 777 /cache/recovery 四: 把ota文件路径写入/cache/recovery/command文件中 echo "--update_package=系统ota升级包文件路径 " > /cache/recovery/command 如我的OTA升级包…
基于ESP-IDF4.1 1 #include "freertos/FreeRTOS.h" 2 #include "freertos/task.h" 3 #include "esp_system.h" 4 #include "esp_event.h" 5 #include "esp_log.h" 6 #include "esp_ota_ops.h" 7 #include "es…