野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 28793|回复: 8

请教STM32用CODE区存储变量的方法

[复制链接]
发表于 2014-1-23 15:39:06 | 显示全部楼层 |阅读模式
STM32芯片中0x00000000~0x1FFFFFFF为512MB的CODE区,据了解(不肯定),该区域(貌似)是FLASH的存储介质,是掉电后数据不丢的,因为按块进行写操作,所以通常用来保存程序运行的代码。
请教,程序代码是从0x00000000开始的吧,如果编译后计算出来的程序代码大小为N,那是不是N后面的块都可以用来存放运行中需要掉电保持的数据啦?
另外看资料貌似0x08000000~0x0807FFFF的才是FLASH memory,请问这里是放代码的还是干嘛?那CODE区里面,除了这1MB以外的大部分区域是干嘛用的?
假如我有20个连续的WORD型变量想要掉电后仍不丢失,又不想外加E2PROM,该如何是好?如何能利用片上的FLASH memory?
求教育~
回复

使用道具 举报

发表于 2014-1-23 15:45:06 | 显示全部楼层
512MB的code区?想太多了,stm32f103zet6才512KB ,zg型号才有你说的1MB
回复 支持 反对

使用道具 举报

发表于 2014-1-23 15:47:17 | 显示全部楼层
是可以像你说的,在程序运行的时候把数据写入到内部FLASH里的 ,参考st官方固件库有例程20个word只是80个字节,肯定够
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-23 15:47:56 | 显示全部楼层
郑倚云 发表于 2014-1-23 15:45
512MB的code区?想太多了,stm32f103zet6才512KB ,zg型号才有你说的1MB

你看《STM32库开发实战指南》35页,或者《ARM Cortex-M3权威指南》17页,512MB的Code区。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-23 15:49:59 | 显示全部楼层
慕娅娜 发表于 2014-1-23 15:47
是可以像你说的,在程序运行的时候把数据写入到内部FLASH里的 ,参考st官方固件库有例程20个word只是80个字 ...

st官方固件库有例程?在哪?   求链接~
回复 支持 反对

使用道具 举报

发表于 2014-1-23 17:39:57 | 显示全部楼层
yinhao 发表于 2014-1-23 15:47
你看《STM32库开发实战指南》35页,或者《ARM Cortex-M3权威指南》17页,512MB的Code区。

那个是内核设计的可寻址空间,不是芯片有的空间
回复 支持 反对

使用道具 举报

发表于 2014-1-23 17:43:15 | 显示全部楼层
野火的资料好像有原版固件库的,放在初级篇,你找找, 标准的固件库全名是:STM32F10x_StdPeriph_Lib_V3.5.0

flash例子在库的目录是 STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\FLASH
回复 支持 反对

使用道具 举报

发表于 2014-1-23 21:47:05 | 显示全部楼层
yinhao 发表于 2014-1-23 15:47
你看《STM32库开发实战指南》35页,或者《ARM Cortex-M3权威指南》17页,512MB的Code区。

512M是寻址空间,并不是说flash就是512M
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-24 15:45:28 | 显示全部楼层
看了库的例程,知道怎么做了。谢谢楼上各位~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 16:44 , Processed in 0.028557 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表