我想使用函数HAL_FLASH_Program将一些变量(TypeProgram、地址、数据)存储在"flash“中,以便它们在断电后仍能保留。我正在使用STM32G071KB。
我应该将地址设置为什么?也许是SRAM的开始(0x20000000)?
发布于 2021-09-08 12:33:47
您需要将它们保存到主闪存存储器中。在大多数STM32部件上,它从0x8000000开始。但是,这也是向量表和.text部分(您的程序)所在的位置。因此,您需要找到一个未使用的区域,可能在闪光灯的末尾。
为了安全起见,您需要编辑链接器脚本以限制用于.text部分的空闲空间,这样编译器就不会在您计划用于非易失性数据的闪存区域中放置任何内容。
闪存由多个页面组成。将最后几个文件保留为非易失性存储可能是个好主意。
还要记住,在STM32G0系列中,只能写入8字节块,并且只能删除整个2个KiB页面。因此,您不能简单地写入和删除单个字节。
https://stackoverflow.com/questions/69099718
复制相似问题