OpenEdv-开源电子网

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

关于精英版W25Q128读写问题

[复制链接]

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
发表于 2018-4-13 15:52:10 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 刺猬ZDYZ 于 2018-4-13 15:53 编辑

做字库的时候,想要把GBK12、GBK16、GBK24、GBK32都写入spi flash(W25Q128)大致算了一下spi flash的空间,128Mb = 16M字节,而fatfs+unigbk+字库信息+4个字库  加起来有18M,按理应该是不能全部写进入
不过我还是打算试试看看结果会怎么样,没想到最终都写进去了,而且扫描字库的时候都是正常的,这是为啥,求大牛帮忙解释下,谢谢部分代码:
//WarShip STM32F103 V3是从12M地址以后开始存放字库
//前面12M被fatfs占用了.

#define FONTINFOADDR         1024*1024*12

附图:
下面是4个字库的大小:
QQ截图20180413153057.png

执行到f_close(fftemp),查看offx+flashaddr = 0x002EC200+0x00F16B31 = 18M(理论上是越界了)
QQ截图20180413153422.png
结果显示:
QQ截图20180413154132.png
显示正常,扫了一遍看了下,20000多个汉字都正常


最佳答案

查看完整内容[请看2#楼]

1.程序中是从12m开始保存,当超过16M时,字库写入到了00开始的位置; 2.fatfs其实已经被程序给占用了,只是没有用到,所以没发现错误;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6549
金钱
6549
注册时间
2018-6-27
在线时间
551 小时
发表于 2018-4-13 15:52:11 | 显示全部楼层
1.程序中是从12m开始保存,当超过16M时,字库写入到了00开始的位置;
2.fatfs其实已经被程序给占用了,只是没有用到,所以没发现错误;
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5141
金钱
5141
注册时间
2014-8-26
在线时间
1317 小时
发表于 2018-4-13 18:18:31 | 显示全部楼层
超过部分被写到flash其他地方去了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-16 01:54:40 | 显示全部楼层
你看了2W多个汉字???看了多久?
回复

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
 楼主| 发表于 2018-4-20 11:09:16 | 显示全部楼层
正点原子 发表于 2018-4-16 01:54
你看了2W多个汉字???看了多久?

我把扫描速度调快了,10分钟把
回复

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
 楼主| 发表于 2018-4-20 11:10:33 | 显示全部楼层
login_FAE 发表于 2018-4-13 18:18
超过部分被写到flash其他地方去了

能举个例子吗?为啥会这样
回复

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
 楼主| 发表于 2018-4-20 11:14:54 | 显示全部楼层
正点原子 发表于 2018-4-16 01:54
你看了2W多个汉字???看了多久?

QQ截图20180420111313.png
20ms左右扫一个,10分钟左右
回复

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
 楼主| 发表于 2018-4-20 11:16:18 | 显示全部楼层
正点原子 发表于 2018-4-16 01:54
你看了2W多个汉字???看了多久?

原子哥的理解是什么,为啥能超出
回复

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
 楼主| 发表于 2018-4-20 11:19:46 | 显示全部楼层
刺猬ZDYZ 发表于 2018-4-20 11:10
能举个例子吗?为啥会这样

最怕出现安全隐患了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-21 02:13:23 | 显示全部楼层
刺猬ZDYZ 发表于 2018-4-20 11:09
我把扫描速度调快了,10分钟把

关键是你如何确定这个字有没有重复。这个很关键。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
 楼主| 发表于 2018-4-21 10:29:33 | 显示全部楼层
正点原子 发表于 2018-4-21 02:13
关键是你如何确定这个字有没有重复。这个很关键。

因为我是GBK12 GBK16 GBK24 GBK32  4种字体一起扫描显示的,4个字一直都是显示一样的,如果有重复,只能说明前面的3种字体也有重复,事实上,整个扫描过程中,4个字体显示的字都是一样的,我觉得应该没重复的问题 155339h8yjp63j2mbjdyjm.png


回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-22 01:57:58 | 显示全部楼层
那不是捡到宝了?
可以把128当256用?
你可以再做一个实验:
每4K字节,写入一个数据,用u32的类型。
这样,你从0扇区开始写,比如写到 100000000。
然后按照规律,依次读取,只要读到和预设值不一样,就可以停止了。说明超过容量了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-7-5
在线时间
20 小时
 楼主| 发表于 2018-4-24 16:46:38 | 显示全部楼层
正点原子 发表于 2018-4-22 01:57
那不是捡到宝了?
可以把128当256用?
你可以再做一个实验:

嗯嗯,我试试
回复

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2018-4-6
在线时间
43 小时
发表于 2018-5-4 16:03:01 | 显示全部楼层
楼主你的GBK32是如何弄出来的,我导进去W25Q128,显示出来就死机,求方法
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6549
金钱
6549
注册时间
2018-6-27
在线时间
551 小时
发表于 2019-1-19 14:39:36 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 04:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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