你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ST-LINK Utility外部spi flash写报错

[复制链接]
ychf0000 提问时间:2018-2-8 22:47 /
本帖最后由 ychf0000 于 2018-2-10 06:53 编辑

参照官方提供的模板进行移植,单独对int Write (uint32_t Address, uint32_t Size, uint8_t* buffer)进行测试正常,ST-LINK Utility擦除外部flash,读正常均正常,写的时候报错。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 : [UNIGBK.BIN] opened successfully.

22:40:12 : Programming error @ 0x00006A00!
哪位大侠有过类似经验,Programming error @ 0x00006A00!代表什么意思?给指导指导,谢谢!
问题已解决
原因:最初代码在ST-LINK Utility自带例程M25P64_STM3210E-EVAL基础上移植,和keil的例程对比后,发现两个flash配置方式不同,按keil的修改了一下,可以正确写入,不知道是ST的bug还是我没有移植好。SPIflash配置代码如下:
  1. struct StorageInfo const StorageInfo  =  {
  2. #endif
  3.    "W25Q128_STM32F1xx",             // Device Name + version number
  4.    SPI_FLASH,                          // Device Type
  5.    0x00000000,                        // Device Start Address
  6.    0x01000000,                         // Device Size in Bytes (16MBytes/128Mbits)
  7.    256,                             // Programming Page Size 256Bytes        
  8.    0xFF,                               // Initial Content of Erased Memory
  9. // Specify Size and Address of Sectors (view example below)
  10.    4096, 0,                     // Sector Size: 4KBytes//ST例程和MDK有区别,需更改        
  11.    SECTOR_END                        // SECTOR_END//ST例程和MDK有区别,需更改
  12. };
复制代码





收藏 评论11 发布时间:2018-2-8 22:47

举报

11个回答
ychf0000 回答时间:2018-2-9 22:11:40
22:07:54 : [SONGTI32_32.bin] opened successfully.
22:08:54 : Erasing external memory success.
22:09:48 : Memory programmed in 43s and 259ms.
22:09:48 : Verification...OK

写入1.1M的字库,43s
ychf0000 回答时间:2018-2-9 00:03:36
和SPIflash配置信息有关,目前可以写入数据了,但是有数据丢失,继续查找原因
七哥 回答时间:2018-2-9 01:15:56
本帖最后由 toofree 于 2018-2-9 09:56 编辑

虽然我也没这么玩过。但是从你的描述来看,能“擦”,能“读”,说明SPI的总线是通的,那么接下来就是“写”可能存在逻辑或时序问题。

我觉得,你可以在keil下,打开几个工程看看算法。
傲游截图20180209011426.jpg

傲游截图20180209011516.jpg

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

ychf0000 回答时间:2018-2-9 06:13:36
非常感谢您的指点,我再仔细查一下,有进展再更新
ychf0000 回答时间:2018-2-9 06:14:18
toofree 发表于 2018-2-9 01:15
虽然我也没这么玩过。但是从你的描述来看,能擦,能读,说明SPI的总线是通的,那么接下来就是写可以存在逻 ...

非常感谢您的指点,我再仔细查一下,有进展再更新
七哥 回答时间:2018-2-9 09:16:53
本帖最后由 toofree 于 2018-2-9 09:56 编辑
ychf0000 发表于 2018-2-9 06:14
非常感谢您的指点,我再仔细查一下,有进展再更新

是的,有进展说一声。虽然我目前项目没用到。但是这个功能还是蛮实用的,比如在外部SPI Flash中存放字库或图片等比较大的文件的时候,直接用仿真器往里烧是最好的。
要不然就得开USB或UART IAP了,占用本身资源不说,还提高了应用工程的复杂度,同时也会带来潜在的风险隐患。
ychf0000 回答时间:2018-2-9 22:04:06
toofree 发表于 2018-2-9 09:16
是的,有进展说一声。虽然我目前项目没用到。但是这个功能还是蛮实用的,比如在外部SPI Flash中存放字库或 ...

白天一直没时间,又仔细查了一下,现在可以实现了,我再制作一个稍微大点的字库试试能不能写成功。
我是在ST-LINK Utility自带例程M25P64_STM3210E-EVAL基础上移植,和keil的例程对比后,发现两个flash配置方式不同,按keil的修改了一下,可以正确写入,不知道是ST的bug还是我没有移植好。

再测试一下上传源码。
七哥 回答时间:2018-2-10 00:06:55
ychf0000 发表于 2018-2-9 22:11
22:07:54 : [SONGTI32_32.bin] opened successfully.
22:08:54 : Erasing external memory success.
22:09: ...

成功了就好,
pingting_2005 回答时间:2018-6-26 18:16:24
问下这个spi flash是怎么和stlink接线的?
ychf0000 回答时间:2018-7-3 21:13:07
pingting_2005 发表于 2018-6-26 18:16
问下这个spi flash是怎么和stlink接线的?

stlink正常接单片机,单片机再与SPIFLASH连接
youhu520 回答时间:2020-6-4 18:41:55
请问这个问题的根本原因找到了吗?我的出现跟你的情况差不多,可以读,可以整片芯片擦除也可以扇区擦除,烧录小的文件不会有问题,但是大一点的烧录过程中出错!  Programming error @: 0x0000E600   

详细如下18:35:16 : ST-LINK SN : 48FF6A064978545247481087
18:35:16 : ST-LINK Firmware version : V2J29S7
18:35:16 : Connected via SWD.
18:35:16 : SWD Frequency = 4,0 MHz.
18:35:16 : Connection mode : Normal.
18:35:16 : Debug in Low Power mode enabled.
18:35:16 : Device ID:0x411
18:35:16 : Device flash Size : 512KBytes
18:35:16 : Device family :STM32F2xx
18:35:19 : Erasing external memory success.
18:35:31 : [STM32F.bin] opened successfully.
18:35:31 : [STM32F.bin] checksum : 0x013B0214
18:35:51 : Programming error @: 0x0000E600   

还请大侠帮忙看下,谢谢!

烧录过程中出错!

烧录过程中出错!

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版