OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 211|回复: 14

有人有stm32F2读写内部Flash的库吗

[复制链接]

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
发表于 5 天前 | 显示全部楼层 |阅读模式
1金钱
类似原子哥那个F1读写内部Flash的,有F2版本的不。有的话可以分享一下不

回复

使用道具 举报

  离线 

489

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
124830
金钱
124830
注册时间
2010-12-1
在线时间
1051 小时
发表于 4 天前 | 显示全部楼层
回复

使用道具 举报

  离线 

11

主题

111

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2017-7-17
在线时间
40 小时
发表于 4 天前 | 显示全部楼层
源文件的flash.c里面不是有读FLASH的函数吗。。。这个是最可靠的,读一个字。
回复

使用道具 举报

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
 楼主| 发表于 4 天前 | 显示全部楼层
candylife9 发表于 2018-4-18 09:26
源文件的flash.c里面不是有读FLASH的函数吗。。。这个是最可靠的,读一个字。

并不是这个问题。。。。。
原子哥在F103的读写Flash的程序里,是进行了数据处理的。
比方说,某个地址已经被写了数据了。如果想要继续写这个地址就需要擦除操作,
然后要计算擦除的起始以及结束page,而且还要将被擦除数据除外,page的数据读出再重新写入,以免破坏其它数据。。。
总之没那么简单
回复

使用道具 举报

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
 楼主| 发表于 4 天前 | 显示全部楼层
正点原子公众号
正点原子 发表于 2018-4-18 01:31
可以去ST官方找找参考例程

我试试看
回复

使用道具 举报

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
 楼主| 发表于 4 天前 | 显示全部楼层
正点原子 发表于 2018-4-18 01:31
可以去ST官方找找参考例程

原子哥,我发现F2好坑。只能擦写sector
而且256K的Flash,有一个sector是128KB的。
这叫我怎么缓冲数据?不可能声明一个128KB的数组的啊,这不是扯淡么
回复

使用道具 举报

  离线 

11

主题

111

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2017-7-17
在线时间
40 小时
发表于 4 天前 | 显示全部楼层
本帖最后由 candylife9 于 2018-4-18 13:43 编辑
a3748622 发表于 2018-4-18 11:11
并不是这个问题。。。。。
原子哥在F103的读写Flash的程序里,是进行了数据处理的。
比方说,某个地址 ...

这个也是调用了flash.c里面的几个函数,只是加了些自己的逻辑。但是实际的FLASH应用都很简单,不需要你判断是不是已经写过了,或者保护不需要擦除的数据之类的,而是要写直接擦了写一遍就可以了。不然的话就不适合用内部FLASH了,因为为了方便,在内部FLASH中保存一个独立的参数,哪怕是一个字节,一般都会分配一个PAGE(1K),擦除也只能按PAGE擦除,参数多了就应该用EEPROM来做。
回复

使用道具 举报

  离线 

11

主题

111

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2017-7-17
在线时间
40 小时
发表于 4 天前 | 显示全部楼层
a3748622 发表于 2018-4-18 11:13
原子哥,我发现F2好坑。只能擦写sector
而且256K的Flash,有一个sector是128KB的。
这叫我怎么缓冲数据 ...

原子的例程只是为了教大家怎么使用FLASH,而不是说适合用到实际的项目中。
回复

使用道具 举报

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
 楼主| 发表于 4 天前 | 显示全部楼层
candylife9 发表于 2018-4-18 13:41
这个也是调用了flash.c里面的几个函数,只是加了些自己的逻辑。但是实际的FLASH应用都很简单,不需要你判 ...

是的,F1确实是这样。。。。但这个是F2啊,内部Flash扇区不一样的,而且它不支持page擦除
回复

使用道具 举报

  离线 

11

主题

111

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2017-7-17
在线时间
40 小时
发表于 4 天前 | 显示全部楼层
a3748622 发表于 2018-4-18 13:46
是的,F1确实是这样。。。。但这个是F2啊,内部Flash扇区不一样的,而且它不支持page擦除

那就更不能用于存储大量独立参数,如果你将这些参数存储到一起,那就需要大量内存来临时保存这些参数。如果你把这些参数分sector存储,就太浪费FLASH资源。所以
回复

使用道具 举报

  离线 

2

主题

71

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2018-3-5
在线时间
26 小时
发表于 4 天前 | 显示全部楼层
说F2坑的显然是还不知道选型是什么意思
看了205的手册,和楼主所描述的Flash相关特性如下:
• 128 bits wide data read
• Byte, half-word, word and double word write
• Sector and mass erase
所以定义128K的数组也没有用,因为并不支持扇区或者页写
如果觉得浪费空间,为何不用16K和64K的扇区,“A main memory block divided into 4 sectors of 16 Kbytes, 1 sector of 64 Kbytes,
and 7 sectors of 128 Kbytes”7楼的方法没有问题,或者干脆外接SPI Flash或者EEPROM,这个也不慢
不清楚楼主的应用场景,所以我只能说在硬件接口的前提之下,去选择最合适的方式
希望可以帮到你
回复

使用道具 举报

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
 楼主| 发表于 3 天前 | 显示全部楼层
动次打次歌 发表于 2018-4-18 16:32
说F2坑的显然是还不知道选型是什么意思
看了205的手册,和楼主所描述的Flash相关特性如下:
• 128  ...

怎么就不支持扇区擦写了呢。。。。。
Sector and mass erase,意思是扇区和整个芯片的擦除

方法我已经找到了,类似IAP,程序存储在后面扇区,前面一个16K扇区存数据。
至于外接Flash什么的,看来你们老板很大方,1000个产品要1000个Flash。。。。

至于选型,原本的F103就支持page擦除,后来改F2了。至于为什么要改,是因为后期的
某些原因。所以,请不要臆断别人好吗。。。。。。
回复

使用道具 举报

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
 楼主| 发表于 3 天前 | 显示全部楼层
candylife9 发表于 2018-4-18 16:27
那就更不能用于存储大量独立参数,如果你将这些参数存储到一起,那就需要大量内存来临时保存这些参数。如 ...

我说的坑并不是你所表达的这个点啊。

我存储用的参数就几个而已,但是存储很频繁,所以我要做一个动态平衡方案。
怎么就做不到用自身Flash存储呢?除了代码我还多出了好几十KB空间呢。

回复

使用道具 举报

  离线 

2

主题

71

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2018-3-5
在线时间
26 小时
发表于 前天 09:30 | 显示全部楼层
a3748622 发表于 2018-4-19 14:28
怎么就不支持扇区擦写了呢。。。。。
Sector and mass erase,意思是扇区和整个芯片的擦除

我没有说擦写哦,我说的是写
回复

使用道具 举报

  离线 

12

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2017-7-26
在线时间
51 小时
 楼主| 发表于 前天 10:17 | 显示全部楼层
动次打次歌 发表于 2018-4-20 09:30
我没有说擦写哦,我说的是写

是不支持扇区写啊。。。。
反正F2这Flash是有点蛋疼,可以擦除page的话管理起来方便多了。
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-4-22 12:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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