从裸机到嵌入式Linux——手把手教你实现一个IAP程序

  • 什么是IAP
  • IAP实现过程分析
    • 内存分布及划分
    • IAP更新过程分析
    • 使用方法

什么是IAP

简单讲IAP就是一个用于应用更新的程序,常见于物联网领域应用程序的远程更新。本文以STM32+4G为例,STM32通过串口与4G模块相连,4G模块接收服务器的bin文件完成应用更新。

IAP实现过程分析

背书: 对于STM32而言,只要是经过keil编译链接生成的bin文件都可以被执行。这里我们重点说明STM32端的处理过程。

内存分布及划分

总体而言,一个完整的IAP项目包含两个工程,用于引导升级的工程和用户Application工程(也就是我们正常实现功能逻辑的工程)。以最常见的从内部Flash启动方式为例,两个工程在内存中的划分是这样的。

IAP更新过程分析

使用方法

这里我给大家准备了两个空白的DEMO,基于STM32F103VET6的,可以通过4G(串口3透传)和串口1进行远程和本地升级,需要的朋友直接私信我或者去下载种心找资源进行下载就好了,如果有不清楚的内容,我会在B站同步更新我的代码走读过程。

手把手教你实现一个IAP程序相关推荐

  1. 小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...

    本文基于 webpack 4 和 babel 7,Mac OS,VS Code 小程序开发现状: 小程序开发者工具不好用,官方对 npm 的支持有限,缺少对 webpack, babel 等前端常用工 ...

  2. 【Golang项目实战】手把手教你写一个备忘录程序|附源码——建议收藏

    博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作.目前在学习和分享:数据结构.Go,Java等相关知识. 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标:写好专栏的每一篇文 ...

  3. 手把手教你做一个自己的chrome扩展程序

    手把手教你做一个自己的chrome扩展程序 [目录] first.效果 1.收藏夹修改 (1).鼠标移动到收藏夹上的动作效果 (2).收藏夹框 (3)百度搜索框功能 2.右上文字修改 3.背景图片修改 ...

  4. 手把手教你撸一个Web汇率计算器

    手把手教你撸一个Web汇率计算器 前言 前段时间刚接触到前端网页开发,但是对于刚入门的小白而言,像flask.Django等这类稍大型的框架确实不太适合,今天这个Dash是集众家之长于一体的轻量化We ...

  5. 手把手教你写一个Matlab App(一)

    对于传统工科的学生用的最多的编程软件应该就是matlab,其集成度高,计算能力强,容易上手,颇受大众青睐.今天挖的这个新坑,主要是分享用matlab app designer设计GUI界面的一些方法和 ...

  6. 还没理解微前端?手把手教你实现一个迷你版

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 最近看了几个微前端框架的源码(single-spa[1].qiankun[2].micro- ...

  7. 后端思维篇:手把手教你写一个并行调用模板

    前言 36个设计接口的锦囊中,也提到一个知识点:就是使用并行调用优化接口.所以接下来呢,就快马加鞭写第二篇:手把手教你写一个并行调用模板~ 一个串行调用的例子(App首页信息查询) Completio ...

  8. 手把手教你做一个Java贪吃蛇小游戏

    大家好,我是孙不坚1208,这篇博客给大家分享一下:如何做一个贪吃蛇小游戏(Java版)的exe应用程序,希望能给需要帮助的朋友带来方便. 手把手教你做一个Java贪吃蛇小游戏的exe应用程序 一.J ...

  9. 手把手教你开发微信小程序中的插件

    继上次 手把手教你实现微信小程序中的自定义组件 已经有一段时间了(不了解的小伙伴建议去看看,因为插件很多内容跟组件相似),今年3月13日,小程序新增了 小程序**「插件」 功能,以及开发者工具新增 「 ...

最新文章

  1. Hyperic HQ 应用性能管理解决方案
  2. DLL中导出函数的声明有两种方式
  3. 本人真实经历:面试了20家大厂之后,发现这样介绍项目经验,显得项目很牛逼!...
  4. python cnn模型_ZfNet解卷积:可视化CNN模型( PythonCode可视化Cifar10)
  5. [Python图像识别] 四十九.图像生成之什么是生成对抗网络GAN?基础原理和代码普及
  6. Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解...
  7. 访问权限修饰符( public,protected,default,private )的使用对象和作用域
  8. AngularJS复习小结
  9. MATLAB 撰写word
  10. MasterPage下的FindControl
  11. 微信、QQ防撤回神器,终于被我找到了......
  12. iphone13 Pro的运行内存是6gb
  13. RxSwift极简入门
  14. python+百度地图 实现地址转换为经纬度(全网最简单方法)
  15. 金融经济学期末梳理(王江)第二、三章
  16. 【IT简史】Apple(苹果公司)
  17. 计算机中各成绩所占成绩的比例计算方法,考研总成绩的计算方法和各科分数的比例占多少?...
  18. 国信证券学习系列(2)
  19. 无人驾驶汽车是如何进行行为决策的?
  20. 嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验

热门文章

  1. win10连不上wifi_关于win10系统连接不了隐藏wifi的一种解决办法
  2. 基于arduino的校园灯光控制_使用Arduino和晶闸管(TRIAC)控制交流风扇的速度
  3. 京东搜索引擎技术-Elasticsearch快速入门
  4. 雷达基础之脉冲雷达信号距离模糊与解模糊
  5. SRT编码器传输获取公网IP地址3种解决方案
  6. 新浪微博如何自定义来源尾巴
  7. 记一次VS2013的卸载与重装
  8. 通辽市视频信息共享平台助力智慧城市建设
  9. 经纬恒润位列“2021北京民营企业科技创新百强榜单”第40名
  10. 大学课程 | 《计算机操作系统》详细知识点总结