首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >STM32F746ZG -如何更新闪存中256 KB扇区的某些部分

STM32F746ZG -如何更新闪存中256 KB扇区的某些部分
EN

Stack Overflow用户
提问于 2019-06-01 12:47:52
回答 2查看 285关注 0票数 0

我正在使用STM32F103并将我的代码转移到STM32F746。F103能够在1KB和2KB的基础上以页为单位更新闪存。我有STM32F746ZG核板,我的代码很大,flash占用了0x08038000。我想将其他小应用程序保存在0x08040000(sector_5)上。这个应用程序由几个2KB大小组成。我需要在Sector_5中存储多个应用程序,而M7不能以1KB或2KB为增量使用闪存。

以下是STM32F746ZG的扇区大小。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) // 32 Kbytes
#define ADDR_FLASH_SECTOR_1 ((uint32_t)0x08008000) // 32 Kbytes
#define ADDR_FLASH_SECTOR_2 ((uint32_t)0x08010000) // 32 Kbytes
#define ADDR_FLASH_SECTOR_3 ((uint32_t)0x08018000) // 32 Kbytes
#define ADDR_FLASH_SECTOR_4 ((uint32_t)0x08020000) // 128 Kbytes
#define ADDR_FLASH_SECTOR_5 ((uint32_t)0x08040000) // 256 Kbytes
#define ADDR_FLASH_SECTOR_6 ((uint32_t)0x08080000) // 256 Kbytes
#define ADDR_FLASH_SECTOR_7 ((uint32_t)0x080C0000) // 256 Kbytes

从Sector_5到Sector7,STM32F746由每个256 KB扇区大小的闪存组成。如果我想使用Sector_5,我必须擦除整个扇区。如果我只想更新Sector_5前面的大约2KB,并保持2KB之后的区域不变,该怎么办?这意味着我只将内容从0x08040000更新到0x08042000。我必须保持从0x08042001到0x0807FFFF。

我甚至不能将256KB的闪存复制到RAM中。因为F746只有240KB的内存,而我的许多任务已经使用了内存,所以没有足够的内存来复制一个扇区。在这种情况下,请让我知道如何更新闪存中256KB的一部分。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-01 19:51:13

在ST的闪存技术上,如果不先擦除它,就无法在扇区的任何地方进行更新。因此,如果第一个2KB中有内容,则在不擦除扇区其余部分的情况下无法对其进行更新。

一种可能性是,您可以保留一个扇区作为临时缓冲区,而从不将其用于实际存储。假设你使用扇区7来做这个。因此,当您要更新扇区5时,请擦除扇区7,将扇区5复制到扇区7,然后擦除扇区5并将相关内容复制回来。

另一种可能是为此添加外部EEPROM或SRAM。SPI闪存EEPROM相当便宜,通常有100,000个写入周期,因此也非常适合此用途。

票数 2
EN

Stack Overflow用户

发布于 2019-06-01 14:49:04

这要看情况了。在许多STM32微控制器上,您可以在不擦除闪存的情况下将闪存的位清零。当然,你不能设置这些位--它只能通过擦除操作来完成。一些芯片不允许这样做,因为闪存扇区有自己的CRC。

如果您的芯片允许写入0xff填充的闪存,则可以将数据存储在此扇区的另一个位置。如果没有,您需要将数据复制到另一个扇区,重新创建该扇区,然后将数据写回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56406902

复制
相关文章
4KB 扇区磁盘上的 Linux:实际建议
为何更改为 4096 字节扇区? 如果您熟悉磁盘结构,就知道磁盘是被分解成扇区 的,大小通常是 512 字节;所有读写操作均在成倍大小的扇区中进行。仔细查看,就会发现硬盘事实上在扇区之间包括大量额外数据,这些额外字节由磁盘固件使用,以检测和纠正每个扇区内的错误。随着硬盘变得越来越大,越来越多的数据需要存储在磁盘的每一单位面积上,导致更多低级别错误,从而增加了固件纠错功能的负担。 解决该问题的一个方法是将扇区大小从 512 字节增加为更大的值,以使用功能更强大的纠错算法。这些算法可使每个字节使用较少的数据,从
小小科
2018/05/02
3.4K2
4KB 扇区磁盘上的 Linux:实际建议
Transformers 如何模仿大脑的某些部分
来源:ScienceAI 本文约2500字,建议阅读7分钟 本文将演示如何通过阈值调优来提高模型的性能。 了解大脑如何组织和访问空间信息「我们在哪里」,「拐角处有什么」,「如何到达那里」,这仍然是一项艰巨的挑战。该过程涉及从数百亿个神经元中调用整个记忆网络和存储的空间数据,每个神经元都连接到数千个其他神经元。 神经科学家已经确定了关键元素,例如网格细胞、映射位置的神经元。但更深入将被证明是棘手的:并不是说研究人员可以移除或研究人类灰质的切片来观察基于位置的图像、声音和气味记忆是如何流动并相互连接的。 人工
数据派THU
2022/10/09
6380
Transformers 如何模仿大脑的某些部分
硬盘对数据库性能的影响
总体来讲,相当于一个i5+4G+500G传统硬盘的配置了,在当时看来还是不错的,但是不用不知道,这个AMD的使用情况不容乐观,散热问题相当严重,感觉比intel的处理器差好多,一打dota就发热,热到手都放不上去,夏天更甚。当时也不怎么卡,因为第一台电脑,我也算比较爱惜,这一用就是6年。刷机刷了无数次,安装过各种各样的软件和各种各样的操作系统,最后实在是无法挽救了。
AsiaYe
2019/11/06
2.4K0
硬盘对数据库性能的影响
[硬件]关于SPI Flash那些你不知道的事儿
以华邦W25Q128为例,详解SPI Flash的特点,读写注意事项,和地址范围等。
单片机点灯小能手
2020/07/17
5.9K0
[硬件]关于SPI Flash那些你不知道的事儿
Windows Server 2008 R2 安装 media Service 部分更新没有安装 KB963697
1、下载安装包 Windows6.1-KB963697-x64.msu 2、安装过程失败,提示未安装更新 我是阿里云的服务器,一直出现下面提示 经过反复研究,确定系统问题,重新恢复了初始系统,再进行安
阿炬
2018/05/11
1.1K0
微软确认Windows 10累积更新KB4482887中的新问题
微软刚刚确认了Windows 10版本1809累积更新KB4482887中存在的一个新问题,公司表示已收到有关游戏性能可能受到影响的报告。在对原始KB4482887页面的更新中,微软表示已经开始修复该问题,它应该包含在即将发布的版本中。
Zip
2019/03/18
5470
微软确认Windows 10累积更新KB4482887中的新问题
微软确认Windows 10累积更新KB4482887中的新问题
微软刚刚确认了Windows 10版本1809累积更新KB4482887中存在的一个新问题,公司表示已收到有关游戏性能可能受到影响的报告。在对原始KB4482887页面的更新中,微软表示已经开始修复该问题,它应该包含在即将发布的版本中。
Zip
2019/04/28
6070
微软确认Windows 10累积更新KB4482887中的新问题
【STM32F407】第5章 ThreadX NetXDUO网络协议栈介绍
本章节介绍 ThreadX NetXDUO网络协议栈,让大家对NetXDUO有一个整体的了解。
Simon223
2021/04/19
6380
【STM32F407】第5章   ThreadX NetXDUO网络协议栈介绍
【STM32F429】第5章 ThreadX NetXDUO网络协议栈介绍
本章节介绍 ThreadX NetXDUO网络协议栈,让大家对NetXDUO有一个整体的了解。
Simon223
2021/04/19
5840
【STM32F429】第5章   ThreadX NetXDUO网络协议栈介绍
FATFS中的NAND FLASH的簇和扇区
最近使用FATFS读写NANDFLASH,研究了一下小型文件系统的中的簇和扇区的具体含义,簇是文件系统使用的单位,扇区是物理介质(FLASH)使用的单位。
用户9736681
2022/05/11
1.9K0
【STM32H7】第5章 ThreadX NetXDUO网络协议栈介绍
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=104619 第5章 ThreadX NetXDUO网络协议栈介绍 本章节介绍 T
Simon223
2021/04/19
9590
【STM32H7】第5章   ThreadX NetXDUO网络协议栈介绍
拆解固态硬盘结构
前面几篇文章,主要围绕的是机械硬盘来说的。目前ssd目前应用也越来越广了,值得我们花精力琢磨琢磨。SSD硬盘是地地道道电子技术下的产品,因为不像机械硬盘IO时依赖两个耗时的机械轴行为:磁盘旋转,以及磁道寻道,SSD硬盘的访问延迟要比机械硬盘要低的多,在随机IO下的表现尤其明显。我们今天从最底层出发,看看SSD的几个内部机理。
开发内功修炼
2022/03/28
2K0
拆解固态硬盘结构
Oracle数据库部分迁至闪存存储方案
环境:Oracle 11.2.0.4 RAC(2 nodes) 说明:假设新增闪存挂载点是/flash(使用了第三方的集群文件系统),如果是使用Oracle的ASM,则本文提及的所有/flash目录都可以认定是新的闪存磁盘组是+FLASH。
Alfred Zhao
2019/05/24
5670
手机卡顿-闪存要担部分责任
手机,电脑越来越卡怎么回事!!! 小提莫粗浅的解答一下。(排除机械硬盘)机械硬盘太慢了
用户1113710
2021/06/09
8450
手机卡顿-闪存要担部分责任
解决android studio 无法更新插件的问题(某些)
我相信很有朋友会像我一样遇到这样的情况:android studio 提示插件需要更新,但是由于网络的原因,无法更新,这里笔者提供GsonFormat和genymotion的最新jar包下载地址,每次提示更新就去这里下载最新的就好了。
103style
2022/12/19
1.3K0
mysql更新字段中的部分内容
在实践中,会出现某些字段中的内容变了,比如三方提供的图标地址变了,那么或许对字段中存储的图片域名进行更新,此时就需要用到mysql更新字段中的部分内容的功能。
程序新视界
2020/05/18
2.4K0
(39)STM32——FLASH闪存
        通过这两个步骤,即可解锁 FLASH_CR,如果写入错误,那么 FLASH_CR 将被锁定,直到下次复位后才可以再次解锁。
小点点
2022/12/12
1.4K0
(39)STM32——FLASH闪存
基于STM32的Flash擦除方式
本文主要介绍STM32的内部Flash擦除方式和擦除长文件的功能函数怎样编写。并且介绍一些注意事项,如只想擦除当前地址,却发现上下地址都出现了擦除等问题。阅读完本文可以使你能够正常的完成Flash擦除。并对擦除时会影响的地址大小有一个深入的认识,并在对页擦除时,页的起始地址和大小有所了解。
跋扈洋
2022/05/31
3.4K3
基于STM32的Flash擦除方式
常见的非易失存储器简介
非易失存储器(Non-Volatile Memory,NVM)是一种能够在断电后保持存储数据的计算机存储器。
用户10524139
2023/04/22
2K0
fastapi PUT更新数据 / PATCH部分更新
learn from https://fastapi.tiangolo.com/zh/tutorial/body-updates/
Michael阿明
2022/01/07
1.4K0
fastapi PUT更新数据 / PATCH部分更新

相似问题

如何使用带256 on擦除扇区的闪存芯片上的文件系统

12

刻录到闪存的特定扇区

21

如何用C检查闪存设备的坏扇区?

20

256 KB的缓存大小真的是256 KiB吗?

49

在linux中从USB闪存访问扇区

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文