MCU固件升级系列1(STM32)

news2024/11/26 7:32:35

本系列将从升级流程、boot代码编写、APP代码编写以及固件打包来介绍,硬件选用STM32F407ZGT6(手里只有),来完成这系列教程。

前言

为什么需要固件升级:

功能更新:随着产品的迭代和用户需求的变化,可能需要对产品功能进行优化或扩展。固件升级可以实现这些需求的满足。

Bug修复:在产品开发过程中,可能存在一些未被发现的问题。固件升级可以解决这些问题,提高产品的稳定性和可靠性。

性能优化:软件算法及硬件驱动的优化可以通过固件升级实现,从而提高整体性能。

安全漏洞修补:对于连接到网络的设备,安全问题尤为重要。固件升级可以修补已知的安全漏洞,保障系统安全。

适配新硬件:当产品硬件发生变更时(例如更换传感器类型或接口),可能需要对应的固件修改以适应新硬件。

综上所述,固件升级是一种有效的手段,可以满足产品迭代、修复问题、优化性能等多方面的需求。

FLASH分区

  • 系统存储区:用于存放系统程序代码和数据,如引导程序、操作系统等。
  • 主存储区:用于存放应用程序代码和数据。
  • OTP区域(One-Time Programmable):一次性可编程区域,只能被写入一次,用于存放设备的唯一标识信息,如MAC地址、序列号等。
  • 选项字节:用于存储设备的配置信息,如时钟源选择、外设使能等。选项字节通常位于OTP区域或Flash存储器中,由芯片厂商预先配置并烧录,用户无法修改。在某些情况下,选项字节可以通过特殊的编程工具进行修改。

现在只需要关注主存储区Flash,我们写的代码(固件)将放在主存储区Flash中,先进行分区。


一般固件分区不需要那么多,根据项目需求和功能进行分区,既然是教程,先按简单的做法来做,Bootloader、设备参数、APP1和备份APP2四个分区

为每个分区分配大小

STM32F407ZGT6的flash有1M字节的FLash空间。

暂时先这样分,有人会说有些浪费和不合理,但是本教程初衷希望可以带初学者尽快掌握固件升级步骤和理解,怎么简单怎么来,后续真正掌握,就是顺手拈来。下一篇讲解,MCU固件bootloader编写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DM】达梦数据库与MySQL适配

一、达梦入门技术文档 新手直接看达梦入门技术文档即可 二、达梦数据库 1、介绍 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM,它具有如下特点:通用性、高性能、高可用、跨平台、高可扩展 2、与…

网络安全:windows批处理写病毒的一些基本命令.

网络安全:windows批处理一些命令. echo off一般都写在批处理的最上面,用于关闭回显,意思是 关闭回显: 没有关闭回显: 所以,意思就是将输入指令的过程隐藏起来。 set是设置的意思,作业是打印、创建和修改变…

【算法】求最短路径算法

文章目录 一、迪杰斯特拉算法1.1 算法介绍1.2 算法步骤1.3 应用场景 二、弗洛伊德算法2.1 算法介绍2.2 算法步骤2.3 应用场景 一、迪杰斯特拉算法 1.1 算法介绍 从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短…

Hausdorff distance

Hausdorff距离量度度量空间中紧子集之间的距离 定义 设 X X X和 Y Y Y是度量空间 M M M的两个紧子集 d H ( X , Y ) max ⁡ { sup ⁡ x ∈ X inf ⁡ y ∈ Y d ( x , y ) , sup ⁡ y ∈ Y inf ⁡ x ∈ X d ( x , y ) } d_H\left(X, Y\right) \max \left\{\sup_{x\in X} \in…

Linux — 多线程的互斥与同步,信号量

1.线程互斥 进程线程间的互斥相关背景概念 临界资源:多线程执行流共享的资源就叫做临界资源。临界区:每个线程内部,访问临界资源的代码,就叫做临界区。互斥:任何时刻,互斥保证有且只有一个执行流进入临界区…

利用粒子群算法设计无线传感器网络中的最优安全路由模型(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 无线传感器网络(WSN)由数十个、数百个甚至数千个自主传感器组成。这些传感器以无线方式嵌入环境中&…

Day49 5.01 C++刷题

Go不是解释型语言,是编译型语言 Java是混合型语言

MOSFET正向导通,阻断,阈值电压研究

一 设计要求: N-为均匀掺杂、其他均为离子注入所形成的高斯掺杂;P的宽度为10、结深6um;氧化层oxide厚度为0.1um,宽度为10um;氧化层左侧空白需要定义为材料air;所有电极都定义为无厚度;所有的高斯掺杂峰值点…

( 数组和矩阵) 485. 最大连续 1 的个数 ——【Leetcode每日一题】

❓485. 最大连续 1 的个数 难度:简单 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大…

Vision Transformer架构Pytorch逐行实现

前言 代码来自哔哩哔哩博主deep_thoughts,视频地址,该博主对深度学习框架方面讲的非常详细,推荐大家也去看看原视频,不管是否已经非常熟练,我相信都能有很大收获。论文An Image is Worth 16x16 Words: Transformers f…

iOS审核这些坑,腾讯游戏也踩过

WeTest 导读 在App上架苹果应用商店的过程中,相信大多数iOS开发者往往都有过这样的经历:辛苦开发出来的产品,测试验收也通过了,满怀期待的提交App给苹果审核,结果经常被苹果各种理由拒之门外,苦不堪言。 …

Prometheus监控系统存储容量优化攻略,让你的数据安心保存!

云原生监控领域不可撼动,Prometheus 是不是就没缺点?显然不是。 一个软件如果什么问题都想解决,就会导致什么问题都解决不好。所以Prometheus 也存在不足,广受诟病的问题就是 单机存储不好扩展。 1 真的需要扩展容量吗&#xff…

0x80070570文件或目录损坏且无法读取解决方法

第一种解决方法:命令提示符修复。 1、首先按下“Win标R”键,打开运行。 2、然后如果要修复的文件在E盘,那就输入:chkdsk e: /f,h盘就是:chkdsk h: /f,反正是哪个盘就把中间的字幕改成那个盘的…

ecs思考

VPC网络诊断,从router看起,连接公有子网路有一个默认,再新增一条指向igw路由;连接私有子网路由有一个默认,再新增一条指向NAT网关的路由,其中NAT网关一定要在公有子网中,否则,私有子…

Android 10.0 设置默认浏览器后安装另外浏览器后默认浏览器功能修复

1.前言 在10.0的系统rom定制化开发中,当在系统中有多个浏览器的时候,会在用代码启用浏览器的时候,让用户选择进入哪个浏览器,这样显得特别的不方便 所以产品开发中,要求用RoleManager的相关api来设置默认浏览器,但是在设置完默认浏览器以后,在安装一款浏览器的时候,默认…

〔金融帝国实验室〕(Capitalism Lab)v9.0.00官方重大版本更新!

〖金融帝国实验室〗(Capitalism Lab)v9.0.00正式发布! ◎制作发行:Enlight Software ◎发布时间:2023年04月28日 ————————————— ※v9.0.00更新说明: 1.实现6项数据信息双窗口并列显示&#…

兴寿镇“春踏青,兴寿行”特色旅游线路点靓辛庄

记者:云飞 踏着欢乐的节拍,伴着春日的暖阳,2023年4月29日,北京市昌平区兴寿镇,2023党建引领文旅农产业融合发展系列旅游季——“春踏青,兴寿行”特色旅游线路第二站,在兴寿镇辛庄村圆满举办。 此…

【搭建私有云盘】无公网IP,在外远程访问本地微力同步

文章目录 1.前言2. 微力同步网站搭建2.1 微力同步下载和安装2.2 微力同步网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 私有云盘作为云存储概念的延伸,虽然谈不上多么新颖,但是其…

《QDebug 2023年4月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 1.对 qml 基本类型 list 的编辑 在 Qt5 中,QML 的 list 类型只提供了 push 添加数据,或者重新赋值,没法 pop。到了 Qt6,实测可以对 list 调用 pop/shift 等操作。 Qt5 中可以先…

【Liunx】进程的程序替换——自定义编写极简版shell

目录 进程程序替换[1~5]1.程序替换的接口(加载器)2.什么是程序替换?3.进程替换的原理4.引入多进程5.系列程序替换接口的详细解析(重点!) 自定义编写一个极简版shell[6~8]6.完成命令行提示符7.获取输入的命令…