OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8129|回复: 12

对内部的flash编程, 跨过一页的问题

[复制链接]

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2013-4-10
在线时间
53 小时
发表于 2013-7-8 10:24:36 | 显示全部楼层 |阅读模式
 写flash操作大于一页的数据,, 怎么处理好点。。 例子里面 好像大于一页没有加处理。


有什么好的处理方式么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2013-4-10
在线时间
53 小时
 楼主| 发表于 2013-7-8 10:47:05 | 显示全部楼层

额。。。 原来原子的代码里面有判断是否超过一个扇区,, 之前没仔细看代码。。。

现在弄好了。。 板子的stmflash.C里面有个BUG,


 

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-8 11:59:26 | 显示全部楼层
回复【2楼】nuncle.lee:
---------------------------------
什么bug?
没bug吧...要不我的IAP也无法正常运行才对啊...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2013-4-10
在线时间
53 小时
 楼主| 发表于 2013-7-8 12:58:48 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
标准例程-V3.5库函数版本\实验34 FLASH模拟EEPROM实验\HARDWARE\STMFLASH
这个目录里面的,stmflash.C

在判断越过一个页后,写地址便偏移的计算。

代码里面是WriteAddr+=secremain; //写地址偏移

这里secremain是U16类型数据的个数。 所以应该是
WriteAddr+=secremain*2;
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-8 16:04:07 | 显示全部楼层
这里没问题
你*2,估计就不能用过来.
你*2后,在IAP实验里面,测试下
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2013-4-10
在线时间
53 小时
 楼主| 发表于 2013-7-8 16:14:22 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
IAP我还没用, 
不过这里肯定是有问题的!

secremain变量用来指定u16的个数。
WriteAddr变量用来指定跨过一页后新的地址, 这个新地址显然要是WriteAddr+=secremain*2; 否则根本没有跳到flash的下一页,而是还在本页,覆盖了之前的数据。

我已经单步调试确认了。 看到flash中的数据一目了然
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
发表于 2013-7-8 16:25:28 | 显示全部楼层
回报原子哥,  之前我用按您在Mini上的代码,  针对不同写入地址, 成功率都不同.
当你做大量写入的时候.  例如写入5-10K , 中间有的成功有得失败了..

也许跟这位楼主回报的有关联.    也麻烦再帮我们确认看看.    谢谢啊 !!
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2013-4-10
在线时间
53 小时
 楼主| 发表于 2013-7-8 16:38:03 | 显示全部楼层
回复【7楼】liuje:
---------------------------------
恩。。 这个代码只要超过一页大小就会覆盖掉之前的数据了。。。就是X2的原因, 你可以改了试试。
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
发表于 2013-7-8 16:44:52 | 显示全部楼层
回复【8楼】nuncle.lee:

回复【7楼】liuje:
---------------------------------
恩。。 这个代码只要超过一页大小就会覆盖掉之前的数据了。。。就是X2的原因, 你可以改了试试。

---------------------------------

我之前碰到的情况比较特别,  同一段代码会认写入起始地址,  不同起始位址的写入成功率不相同 .
跟你找到的这个问题好像有些关联.   也许地址刚好处了一个页起始开头.   就会刚好没问题.
如果刚好写入地址一开始就要跨页,  好像就有些小问题.   具体要再试试.     也感谢提供方法 ...
大家也可再试试,   如果验证真有问题,  也算帮原子哥一点忙了~~
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-9 00:32:56 | 显示全部楼层
这个问题,我明天测试下。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2013-4-10
在线时间
53 小时
 楼主| 发表于 2013-8-21 14:58:24 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
新项目里面做了IAP,,通过CAN下载45K的APP, 然后写flash。。。 我用之前自己修改过的stmflash.C 可以成功的。。

建议你再确认下之前我说的flash的跨过一页的问题吧。 

很感谢提供这么全的开发板例子。。。太实用了。。 加快了我项目开发的进度。。 哈哈
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-21 15:22:15 | 显示全部楼层
回复【11楼】nuncle.lee:
---------------------------------
已经确认了,你是对的,我代码那里有问题,新代码已经修改了。谢谢指出。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2013-4-10
在线时间
53 小时
 楼主| 发表于 2013-8-21 15:29:44 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
哈哈 不客气。。。。 一直用你程序的例子学习来着。。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-14 17:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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