junxi_jiayou 发表于 2024-3-18 11:52:43

keil spi flash flm加载失败

本帖最后由 junxi_jiayou 于 2024-3-18 11:58 编辑


采用了硬汉大牛在v7中提供的spi flash flm制作的历程,我将之移植到了stm32f407上产生了如上图的所示现象,因为这方面资料网上不多,我想请问一下各位大牛出现上述的可能原因有哪些,以及可能有什么解决方法? (备注程序我只把V7的底层换成了F4的也接受V5,修改了一下容量,spi引脚配置及其时钟其余均未做修改,然后我采用的spiflash是w25q128xx)。谢谢大家

tovinz 发表于 2024-3-18 14:37:16

估计用于加载编程算法的RAM大小不够。在魔术棒选项卡选择编程算法的地方,把RAM for Algorithm的大小加大

junxi_jiayou 发表于 2024-3-18 15:02:04

tovinz 发表于 2024-3-18 14:37
估计用于加载编程算法的RAM大小不够。在魔术棒选项卡选择编程算法的地方,把RAM for Algorithm的大小加大

非常感谢您的回复,加大空间后外部spi flash成功擦除了,但是又出现了新的问题,如图,说校验错误

junxi_jiayou 发表于 2024-3-18 15:05:58

修改后校验错误图片

junxi_jiayou 发表于 2024-3-18 15:40:24

我还发现在keil烧录读条是擦除芯片后说有的都往0xc0000000写入了,也就是外部spi flash的起始地址,录了一下状态但是文件太大,下面的ram的配置

eric2013 发表于 2024-3-18 15:56:48

junxi_jiayou 发表于 2024-3-18 15:05
修改后校验错误图片

MDK Option选项里面测试不勾选校验,然后实际测试下数据是否正确下载了。

junxi_jiayou 发表于 2024-3-18 16:01:46

eric2013 发表于 2024-3-18 15:56
MDK Option选项里面测试不勾选校验,然后实际测试下数据是否正确下载了。

有谁尝试过程序不运行,(若不使用外部flash的flm,程序是可以正常执行,也不会出现校验错误)

tovinz 发表于 2024-3-18 16:05:02

STM32F4应该是不支持QSPI内存映射的。所以分散加载不能把程序放到0xC000_0000。
至于校验错误,不知道你是怎么写的校验,算法如果你的校验算法直接用的V7那一套,估计连烧录都没有成功,硬汉老师的V7文档中用的QSPI的方式擦写的Flash,更别说读出来校验了。

eric2013 发表于 2024-3-19 07:50:43

tovinz 发表于 2024-3-18 16:05
STM32F4应该是不支持QSPI内存映射的。所以分散加载不能把程序放到0xC000_0000。
至于校验错误,不知道你是 ...

他这里做了个特殊用法。

F4实现SPI Flash和EEPROM的外部烧录,由于不支持内存映射,所以FLM算法里面是随意定义了总线地址,然后程序里面针对这个地址做了个要读写的位置偏移处理,是这么来的。

junxi_jiayou 发表于 2024-3-19 09:20:38

非常感谢硬汉老师以及tonviz靓仔的回复,我后面把spi flash与内部flash分开烧录虽然报错但是程序还是按照预计的运行了。再次谢谢大家

tovinz 发表于 2024-3-19 09:27:24

eric2013 发表于 2024-3-19 07:50
他这里做了个特殊用法。

F4实现SPI Flash和EEPROM的外部烧录,由于不支持内存映射,所以FLM算法里面是 ...

明白了。

zlf0216 发表于 2024-3-23 14:46:24

楼主,你好,我用STM32L151加spi flash,RAM for Algorithm加大后程序不能正常烧录,RAM for Algorithm大小合适后又报调用算法错误,这种情况 如何解决

eric2013 发表于 2024-3-25 07:49:53

zlf0216 发表于 2024-3-23 14:46
楼主,你好,我用STM32L151加spi flash,RAM for Algorithm加大后程序不能正常烧录,RAM for Algorithm大小 ...

你这个算法文件正常过吗。

zlf0216 发表于 2024-3-25 16:32:57

eric2013 发表于 2024-3-25 07:49
你这个算法文件正常过吗。

如何检验算法文件是否可使用:handshake

skyshine 发表于 2024-3-26 08:50:46

zlf0216 发表于 2024-3-25 16:32
如何检验算法文件是否可使用

是不是没改库就直接用了,搞算法文件本质就是把正常读写spiflash的程序包装成烧录程序,烧录器调用包装后的烧录程序就是读写spiflash,所以读写spiflash的程序必须要正确,要在对应单片机上先读写成功再去包装这个程序,如果是h7的算法文件直接用到L1上肯定是不行的

zlf0216 发表于 2024-3-26 09:12:40

大佬,FLM算法大于芯片ram了,加载算法一直提示加载错误,更改RAM FOR ALGORITHM为0XF000后原程序下载就会报flash download failed-cortexm3

skyshine 发表于 2024-3-26 10:14:34

zlf0216 发表于 2024-3-26 09:12
大佬,FLM算法大于芯片ram了,加载算法一直提示加载错误,更改RAM FOR ALGORITHM为0XF000后原程序下载就会 ...

程序大于芯片RAM就只能换库了,程序改成LL库或者直接操作寄存器

eric2013 发表于 2024-3-26 10:28:52

zlf0216 发表于 2024-3-26 09:12
大佬,FLM算法大于芯片ram了,加载算法一直提示加载错误,更改RAM FOR ALGORITHM为0XF000后原程序下载就会 ...

这个你得降低下算法大小才能使用了。

zlf0216 发表于 2024-3-26 17:18:15

eric2013 发表于 2024-3-26 10:28
这个你得降低下算法大小才能使用了。

是的直接操作寄存器就可以了

zlf0216 发表于 2024-3-26 17:18:44

skyshine 发表于 2024-3-26 10:14
程序大于芯片RAM就只能换库了,程序改成LL库或者直接操作寄存器

嗯嗯,操作寄存器就可以了:lol
页: [1]
查看完整版本: keil spi flash flm加载失败