请选择 进入手机版 | 继续访问电脑版
搜索
查看: 20462|回复: 37

[原创] 用ST-LINK Utility实现外部spiflash程序下载

  [复制链接]

该用户从未签到

3

主题

41

帖子

2

蝴蝶豆

中级会员

最后登录
2023-4-9
发表于 2018-3-2 22:47:34 | 显示全部楼层 |阅读模式
本帖最后由 ychf0000 于 2018-3-2 22:58 编辑

     在之前的学习中,一直用外部SPI Flash存放字库文件,之前的数据下载方法是用SD卡拷贝到SPIFLASH中,一直觉得在开发板上学习还算方便,如果在项目中应用,不是很方便,偶然机会,发现ST官方工具STM32 ST-LINK Utility可对外部SPIFLASH直接进行读写。于是尝试在原子精英板STM32 ST-LINK U上进行实验,并成功将字库文件下载到外部SPIFLASH,现把实现方法分享出来,方便大家共同学习,不完善之处还请多多指教!

平台:原子精英开发板(SPIFLASH芯片型号W25Q128),STM32F103,ST-LINK/V2

准备工作
1. 官网或社区下载软件STM32 ST-LINK Utility v4.2.0 setup.exe,并安装
2. W25Q128_STM32F1_Elite.stldr文件制作
  源码见附件,该文件需要根据自己的硬件平台做出相应的修改
3.将制作好的文件放在 安装目录\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ExternalLoader下

4.添加LOADER文件
5.在ExternalLoader菜单先对外部SPIFLASH进行读、写、擦除等操作。





SPIFLASH程序下载工程源码.zip

1.4 MB, 下载次数: 994, 下载积分: ST金币 -1

UM0892-User manual.pdf

1021.92 KB, 下载次数: 444, 下载积分: ST金币 -1

STM32 ST-LINK Utility使用手册

评分

参与人数 5ST金币 +31 收起 理由
wxKaoChin Lin + 1 很给力!剛好在做這個,謝謝樓主(請原諒我沒.
songshiqun2010 + 4 赞一个!
tiantiandayou + 1 很给力!
wofei1314 + 20 很给力!
toofree + 5 赞一个!(拿自己的金币为你点赞).

查看全部评分

回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

初级会员

最后登录
2020-1-30
发表于 2019-4-7 17:19:55 | 显示全部楼层
正想看看怎么生成自己板子的stldr,很有参考作用,谢谢!!
这些代码应该是ST-LINK写外部FLASH的时候临时装入CPU运行的,效率最重要,可能直接操作寄存器最快
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

3

主题

41

帖子

2

蝴蝶豆

中级会员

最后登录
2023-4-9
 楼主| 发表于 2018-3-2 23:00:20 | 显示全部楼层
本帖最后由 ychf0000 于 2018-3-15 23:28 编辑

第一次发帖,折腾的比较费劲,先将就看吧。
正在尝试基于HAL库实现工程编写,进展不是很顺利,实现了再和大家分享吧。。。

2018年3月15日 经测试 基于HAL,对外挂SPIflash的下载速度较慢,时间差一倍以上,就不发源码了,推荐用标准库或直接操作寄存器方式。

2018年3月10日最新进展      在规避全局变量的情况下,基于HAL库已实现对外挂SPIflash的读写擦除等操作。

2018年3月8日进展
经过一段时间的排查发现代码中不能有全局变量,不知道什么原因?实在是没头绪了,希望有各位网友给予指点,实在不行就只有规避全局变量了
      为查找原因,编写了测试代码,当在软件ST-LINK Utility开始执行读取外部SPIFLASH时,从Init()函数,为此编写了测试代码,正常情况下,开始读时,开发板先看到红灯闪烁5次,紧接着绿灯闪烁5次,再红绿灯同时闪烁(表示进入read()函数),属正常现象。
       当加入全局变量赋值语句tempdata_test=1后,先是红灯闪烁,间隔约6秒后(程序运行不正常),再红灯闪烁5次,绿灯闪烁5次,再红绿灯同时闪烁。
(1)测试代码如下:
  1. static void SetSysClockToHSI64(void);
  2. int tempdata_test=0;

  3. //初始化测试代码 , 读SPIFLASH前调用
  4. int Init (void)
  5. {     
  6.     SystemInit();
  7.     SetSysClockToHSI64();   //操作寄存器实现时钟配置

  8.     //测试代码=========================================
  9.     GPIO_DS0_DS1_Init();    //初始化LED显示IO口
  10.     //MX_SPI2_Init();        
  11.     LED_TOGGLE0(2);         //红灯闪烁5次        
  12.     tempdata_test=1;                //
  13.     LED_TOGGLE1(2);         //绿灯闪烁5次
  14.     //=================================================
  15.         return 1;
  16. }
复制代码
(2)Target.lin文件代码
  1. FLASH_LOADER 0x20000004 PI   ; FlashLoader Functions
  2. {
  3.   PrgCode +0           ; Code
  4.   {
  5.     * (+RO)
  6.   }
  7.   PrgData +0           ; Data
  8.   {
  9.     * (+RW,+ZI)
  10.   }
  11. }

  12. DEVICE_INFO +0               ; Device Info
  13. {
  14.   DevInfo +0           ; Info structure
  15.   {
  16.     dev_inf.o
  17.   }
  18. }
复制代码

   


回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 2018-3-2 23:38:04 | 显示全部楼层
    不错,解决了问题,来发贴分享,为你点赞
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    41

    帖子

    2

    蝴蝶豆

    中级会员

    最后登录
    2023-4-9
     楼主| 发表于 2018-3-3 06:30:50 | 显示全部楼层
    toofree 发表于 2018-3-2 23:38
    不错,解决了问题,来发贴分享,为你点赞

    谢谢大师的热心帮助和鼓励
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    蝴蝶豆

    新手上路

    最后登录
    2018-3-4
    发表于 2018-3-4 14:45:56 | 显示全部楼层
    可以
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    蝴蝶豆

    新手上路

    最后登录
    2018-3-5
    发表于 2018-3-4 15:44:17 | 显示全部楼层
    正在学习
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
    发表于 2018-3-9 14:40:42 | 显示全部楼层
    感谢分享,已汇总到3月技术原创:
    https://www.stmcu.org.cn/module/forum/thread-615031-1-1.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25

    主题

    486

    帖子

    63

    蝴蝶豆

    金牌会员

    最后登录
    2021-5-12
    发表于 2018-3-9 16:05:11 | 显示全部楼层
    这个要顶,很实用。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    15

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2018-8-2
    发表于 2018-3-10 17:35:43 | 显示全部楼层
    好东西, 必须顶
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    蝴蝶豆

    初级会员

    最后登录
    2018-12-8
    发表于 2018-4-17 17:36:00 | 显示全部楼层
    下载1m数据大于时间是??
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-3-29 04:15 , Processed in 0.198719 second(s), 47 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表