首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何选择STM32闪存中的地址,在那里我想存储一个在关机后仍将保留的变量?

如何选择STM32闪存中的地址,在那里我想存储一个在关机后仍将保留的变量?
EN

Stack Overflow用户
提问于 2021-09-08 08:38:30
回答 1查看 375关注 0票数 0

我想使用函数HAL_FLASH_Program将一些变量(TypeProgram、地址、数据)存储在"flash“中,以便它们在断电后仍能保留。我正在使用STM32G071KB。

我应该将地址设置为什么?也许是SRAM的开始(0x20000000)?

参考手册:https://www.st.com/resource/en/reference_manual/rm0444-stm32g0x1-advanced-armbased-32bit-mcus-stmicroelectronics.pdf

EN

回答 1

Stack Overflow用户

发布于 2021-09-08 12:33:47

您需要将它们保存到主闪存存储器中。在大多数STM32部件上,它从0x8000000开始。但是,这也是向量表和.text部分(您的程序)所在的位置。因此,您需要找到一个未使用的区域,可能在闪光灯的末尾。

为了安全起见,您需要编辑链接器脚本以限制用于.text部分的空闲空间,这样编译器就不会在您计划用于非易失性数据的闪存区域中放置任何内容。

闪存由多个页面组成。将最后几个文件保留为非易失性存储可能是个好主意。

还要记住,在STM32G0系列中,只能写入8字节块,并且只能删除整个2个KiB页面。因此,您不能简单地写入和删除单个字节。

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

https://stackoverflow.com/questions/69099718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档