颩色四葉愺 发表于 2017-11-9 16:04:08

ST-LINK Utility编写外部flash驱动问题

      因项目需要,需要在stm32外挂一片SPI flash(华邦32Mbits的),参考官方给的例程,ST-LINK Utility能添加自定义的flash,但是不能正确运行。


官方示例工程在软件安装路径下

一共提供三个示例


我自己编译的stldr文件已经能正确识别了

各种操作都是失败的
编写自定义的驱动,网上没有资料,官方资料也少之又少,希望能得到官方的帮助!
测试源码:

ychf0000 发表于 2018-2-8 22:42:04

您好,您的问题解决了吗?
我的能擦除、读,但是写的时候报错
22:36:48 : Device ID:0x414
22:36:48 : Device flash Size : 512KBytes
22:36:48 : Device family :STM32F10xx High-density
22:38:02 : Erasing external memory success.
22:39:47 : External memory sector 0 erased.
22:40:05 : opened successfully.
22:40:12 : Programming error @ 0x00006A00!

秦秦秦 发表于 2018-2-28 09:47:53

帮顶!

Angel_YY 发表于 2018-2-28 09:58:12

首先判定一下是软件还是硬件问题吧,可以先使用MCU读写SPI的flash,看能否成功,如果能成功应该是软件或者配置问题。

wofei1314 发表于 2018-2-28 10:09:05

本帖最后由 wofei1314 于 2018-2-28 10:13 编辑

我用过支持QSPI的STM32,直接在这个工具里选择,但是编译的时候已经产生好了hex文件...编译之前已经修改过分散加载文件...对于不支持QSPI的STM32来说,没用过....参考5.1,自己修改和添加文件试试

wenyangzeng 发表于 2018-2-28 10:30:52

报错的提示好像是指外部存储器读出错,是否应该检查一下硬件连接问题。

anobodykey 发表于 2018-2-28 10:35:49

首先你得确定你的flash驱动代码可以正常读写外部flash,然后再去编辑stldr的代码,另外我在你的代码里没有看到使能SPI时钟。

feixiang20 发表于 2018-2-28 11:09:43

先根据官方例程实验下看下区别,测试是否可以正确读写FLASH,看看是否配置有误,硬件连接是否有错,可能和SPIflash配置信息有关,如配置方式,另外查验“写”功能是否存在逻辑或时序问题。

jcx0324 发表于 2018-2-28 11:28:29

有指定SPI口的吧?

无薪税绵 发表于 2018-2-28 13:41:39

//StorageInfo 在 Dev_Inf.c 中的定义

struct StorageInfo const StorageInfo={
   "M25P64_STM3210E-EVAL", //设备名称
   SPI_FLASH,            //驱动类型                                                
   0x00000000,             //设备起始位置如果不行,避开内部Flash和RAM的地址,试试改为 0xC0000000
   0x00800000,             //设置的总容量 4M字节 或者 32M位
   0x00000100,             //写页大小 256字节
   0xFF,                   //初始化的值
   0x00000040, 0x00010000, //共有64个扇区 ,每个扇区有256页,每页256字节,即256*256=65536=0x10000
   0x00000000, 0x00000000, //表示结束
};
页: [1] 2
查看完整版本: ST-LINK Utility编写外部flash驱动问题