ST-LINK Utility编写外部flash驱动问题
因项目需要,需要在stm32外挂一片SPI flash(华邦32Mbits的),参考官方给的例程,ST-LINK Utility能添加自定义的flash,但是不能正确运行。官方示例工程在软件安装路径下
一共提供三个示例
我自己编译的stldr文件已经能正确识别了
各种操作都是失败的
编写自定义的驱动,网上没有资料,官方资料也少之又少,希望能得到官方的帮助!
测试源码:
您好,您的问题解决了吗?
我的能擦除、读,但是写的时候报错
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! 帮顶! 首先判定一下是软件还是硬件问题吧,可以先使用MCU读写SPI的flash,看能否成功,如果能成功应该是软件或者配置问题。 本帖最后由 wofei1314 于 2018-2-28 10:13 编辑
我用过支持QSPI的STM32,直接在这个工具里选择,但是编译的时候已经产生好了hex文件...编译之前已经修改过分散加载文件...对于不支持QSPI的STM32来说,没用过....参考5.1,自己修改和添加文件试试
报错的提示好像是指外部存储器读出错,是否应该检查一下硬件连接问题。 首先你得确定你的flash驱动代码可以正常读写外部flash,然后再去编辑stldr的代码,另外我在你的代码里没有看到使能SPI时钟。 先根据官方例程实验下看下区别,测试是否可以正确读写FLASH,看看是否配置有误,硬件连接是否有错,可能和SPIflash配置信息有关,如配置方式,另外查验“写”功能是否存在逻辑或时序问题。 有指定SPI口的吧? //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