本帖最后由 heart蓝色CD 于 2020-10-23 13:09 编辑
福利来了!!!
STM32H750内置FLASH官宣128KB,实际竟然2MB。
一、 前言有网友发现STM32H750小批量芯片内部竟有2MB FLASH,并非官宣的128KB。因此这将给一些用不习惯外部FLASH的小伙伴或者嫌弃外部FLASH性能差的小伙伴带来了一个重磅福利。 万万没想到ST竟然如此地慷慨,有网友猜测其原因应该是目前STM32H750的用量较少,舍不得去开晶元,当然将来如果STM32H750的用量起来后,可能就会重新开晶元,把2MB的内部FLASH降到128KB,毕竟内部FLASH是整个芯片价格占比最大的部分。此消息一出不知友友们有否有一种要赶快入手的冲动了。那么该消息是真是假,是不是真的有2MB的内部FLASH呢,下面我将以iCore4T(STM32H750IBK6)为例进行测试。
二、 测试平台1、 iCore4T双核心板 2、 JLINK(或相同功能)仿真器 3、 MicroUSB线缆 4、 KeilMDK 开发平台 5、 STM32CubeMX开发平台 6、 装有WINXP(及更高版本)系统的计算机
三、 FLASH读写测试
为了快速完成测试,我找到了与STM32H750IBK6相同封装(BGA176)的同系列芯片STM32H743III6,其内部FLASH即为2MB,那么这2MB的FLASH存储是怎么组成的呢,大家请看下图: 从上图可以看出,2MBFLASH共分两个BANK,每个BANK共8个扇区。 现在打开工程配置软件 STM32CubeMx(我用的是最新版本Version 6.0.1) 配置芯片为STM32H743III6,进行基本的配置后生成最简工程(这里我不再详细介绍,大家可参考银杏知识库:http://gkwiki.cn了解更详细教程)。
在向FLASH写入数据的时候,目前我发现只能32字节对齐方式写入,我们暂且先这样将数据写入。由于工程代码需要占用一定的FLASH空间,我将FLASHBANK1的第一个扇区存放代码,剩余的空间用于读写测试。 测试方法:向一个扇区写入连续的数据0~255,读出数据并判断是否正确。以此方法连续对剩余的15个扇区进行测试,然后通过iCore4T的USBUART将测试结果输出到电脑终端,扇区测试通过显示绿色,扇区测试失败显示红色。 我们也可以通过J-FLASH直接将数据读出进行查看,这里我以最后一个扇区为例,将数据读取出来,截取最后一部分如下图: 果然没有让人失望,确实为写入的数据,至此说明,STM32H750内置FLASH确实为2MB。
有网友说,STM32H750出厂时,仅对前128KB的存储空间进行了测试,并没有全部测试,后面的空间有的能用,有的不能用;2MB空间有的有,有的没有。现在我将上面的测试代码贴在下面,有兴趣的小伙伴赶紧拿起手中的iCore4T进行测试吧,相信不会让你失望的。 没有入手的小伙伴趁着ST现在的慷慨赶紧下手啦!!!
FLASH读写测试工程: 链接:https://pan.baidu.com/s/1H7i8VgkxoylylGjtStYh2Q
四、 如何配置2MB FLASH适应STM32H750我们提供的工程都是以STM32H750为例,那么怎样才能使用到剩余的FLASH呢? 现在我们以iCore4T出厂测试V3.1为例给大家介绍一下: 打开iCore4T出厂测试V3.1中的ARM工程,将优化等级修改为0,然后进行编译,编译之后我们发现会出现错误,如下图,其原因就是代码容量已经超出了128KB。
现在我们修改如下配置: 将0x20000(128KB)修改为0x200000(2MB)
将0x00020000(128KB)修改为0x00200000(2MB) 以上两个地方修改完毕后,重新编译下载,发现已经编译通过并可以成功下载。
在终端键入TEST,发现已经成功运行。这样2MBFLASH就可以成功使用了。
|