eric2013 发表于 2022-5-30 01:32:52

【实战技能】任何支持SWD接口的单片机都可以方便移植的SPI Flash烧写算法制作,含视频说明(2022-05-30)

之前分享过SPI Flash烧写算法的文档版制作教程,但是网友反馈移植到其它单片机上不是很方便,此贴为此而生,方便大家移植到各种平台。​

SPI Flash烧写算法的应用场景:

1、IDE环境,比如MDK,可以方便的一键下载内部Flash和外部SPI Flash,在UI开发,比如字库,图库,主题或者各种大数据文件需要存储到外部SPI Flash时,用到的地方比较多。
2、批量生产脱机烧录场景,比如我们H7-TOOL,可以方便的实现内部Flash和外部Flash的1拖4,1拖16烧录。

例子下载:

https://pan.baidu.com/s/1gvXKKidCzkD2A0yflVKyRw提取码:xi10

视频说明:

https://www.bilibili.com/video/BV1SU4y1y7ZL

https://www.bilibili.com/video/BV1SU4y1y7ZL?share_source=copy_web









eric2013 发表于 2022-5-30 02:08:47

这次视频审核挺快。

missfox 发表于 2022-5-30 09:11:31

感谢开源,开源让我的事业迎来第2春:lol

eric2013 发表于 2022-5-30 15:19:31

missfox 发表于 2022-5-30 09:11
感谢开源,开源让我的事业迎来第2春

:L

LeMonAudio 发表于 2022-5-31 14:02:52

有没有在G030上做成功的,我的下载时候提示 flash timeout.reset the target and try it again

jeon 发表于 2022-5-31 17:57:02

mark4tomorrow

eric2013 发表于 2022-5-31 18:24:16

LeMonAudio 发表于 2022-5-31 14:02
有没有在G030上做成功的,我的下载时候提示 flash timeout.reset the target and try it again

说明SPI的通信有点小问题,没有正常通信成功。

byccc 发表于 2022-6-1 10:10:10

很及时,整在做这方便东西。

eric2013 发表于 2022-6-2 10:54:21

近期再多做几个型号,助攻下,方便大家对比参考。

byccc 发表于 2022-6-21 14:35:02

eric2013 发表于 2022-6-2 10:54
近期再多做几个型号,助攻下,方便大家对比参考。

做了一个,在TOOL上可以使用,MDK上使用有点问题。

byccc 发表于 2022-6-21 14:35:30

我再查查看是什么地方导致的。

eric2013 发表于 2022-6-22 01:05:48

byccc 发表于 2022-6-21 14:35
我再查查看是什么地方导致的。

用的那款芯片,准备再弄几个方便大家参考。

byccc 发表于 2022-6-22 09:05:27

eric2013 发表于 2022-6-22 01:05
用的那款芯片,准备再弄几个方便大家参考。

解决了,程序有点问题,现在都正常了,用的F0

eric2013 发表于 2022-6-22 11:14:12

byccc 发表于 2022-6-22 09:05
解决了,程序有点问题,现在都正常了,用的F0

好的,手头有F030和F072, 后面我也整理下案例分享下。

byccc 发表于 2022-6-22 11:41:24

eric2013 发表于 2022-6-22 11:14
好的,手头有F030和F072, 后面我也整理下案例分享下。

这个还是很有必要的。

zashel 发表于 2022-7-1 11:22:20

第2步怎么使用生成的FLM文件,视频没有说明呀。比如我生成了FLM,然后又一个数组,怎么让FLM知道要把这个数组烧录到外部Flash。
视频例子是一个字库数组,如果使用Image2Lcd生成的多个字库数组或者生成的多个bin文件,可以弄吗?
比如我有很多字库数组,怎么让工程和FLM将这些数组烧录到外部flash。或者我将多个bin文件合成了一个bin文件,怎么使用你这个工具或者方法烧录到外部Flash。
谢谢。

eric2013 发表于 2022-7-1 11:39:39

zashel 发表于 2022-7-1 11:22
第2步怎么使用生成的FLM文件,视频没有说明呀。比如我生成了FLM,然后又一个数组,怎么让FLM知道要把这个数 ...
这个做了一堆应用案例了,我分享下,有对应的教程文件说明
https://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

ThreadX GUIX





emWin:


zashel 发表于 2022-7-6 10:45:20


感谢,已经在我的深圳中微BAT32G135单片机(最大64M主频,8K ram,64K rom)和25Q40(512KB)上实现了。可实现一起烧录外部Spi Flash和主程序。

eric2013 发表于 2022-7-6 11:00:09

zashel 发表于 2022-7-6 10:45
感谢,已经在我的深圳中微BAT32G135单片机(最大64M主频,8K ram,64K rom)和25Q40(512KB)上实现了。 ...

{:8:}

zdh-kun 发表于 2022-8-31 13:40:11

请问移植到Segger Embedded Studio开发环境上也可以使用么

eric2013 发表于 2022-9-1 11:03:57

zdh-kun 发表于 2022-8-31 13:40
请问移植到Segger Embedded Studio开发环境上也可以使用么

可以,也是类似的方法。

zdh-kun 发表于 2022-9-1 11:40:30

eric2013 发表于 2022-9-1 11:03
可以,也是类似的方法。

你好 最近想在这个Segger 的open flash loader基础上实现通过mcu写入spi flash的功能 https://wiki.segger.com/Open_Flashloader

我使用的是TI AM3357 用了链接里面的Cortex-A project
不太清楚相关的spi操作的代码在哪里可以找到 是starterware里面会有么
谢谢

zdh-kun 发表于 2022-9-1 15:24:21

还有一点想问的是 我如果用jtag连接的话需要做特别的更改么还是无法使用

eric2013 发表于 2022-9-1 17:25:40

zdh-kun 发表于 2022-9-1 11:40
你好 最近想在这个Segger 的open flash loader基础上实现通过mcu写入spi flash的功能 https://wiki.seg ...
没玩过SEGGER的算法制作方式。
只倒腾过MDK和STM32CubeProg的算法文件制作,SEGGER的问题,你可以上他们论坛咨询他们解决下:

SEGGER - Forum

cuiwenchi 发表于 2022-9-2 07:31:03

首先感谢硬汉哥无私分享,我在H750 H743和H7B0上移植各种容量的都是OK的。
最近要移植到G071RBT6上,用的官方nucleo_G071的板子,把宏旺的芯片换成W25Q128JV
折腾3天了就是不行,总是一样的问题

在G0上移植遇到问题

我严格按照您B站上的教程操作的,
1、内部时钟,把cubeMX点灯的时钟代码直接copy过来的
2、改引脚,这也应该没问题
3、把HAL库都改成G0xx.h
4、改FlashDev.c文件,名称、地址为0x90000000、容量16M

5、keil里面改device为G071RBTx
6、TargetLin文件没改,也不会改

生成算法文件后在我的工程里面改分散加载文件
在G0上移植遇到问题

请教 还应该注意些啥呢?感觉这个算法就没加载进去。

eric2013 发表于 2022-9-2 11:27:16

cuiwenchi 发表于 2022-9-2 07:31
首先感谢硬汉哥无私分享,我在H750 H743和H7B0上移植各种容量的都是OK的。
最近要移植到G071RBT6上,用的 ...

先不做成算法文件,直接工程测试这个驱动是否正常。

zdh-kun 发表于 2022-9-2 13:13:00

eric2013 发表于 2022-9-1 17:25
没玩过SEGGER的算法制作方式。
只倒腾过MDK和STM32CubeProg的算法文件制作,SEGGER的问题,你可以上他们 ...

感谢分享和回复。其实之前询问过segger的技术人员。
他们的回答是不提供测试板以外自制板的支持,flash loader的支持也不提供
如果让他们帮忙写的话要4000 dollor......:L

您这个写法对我启发很大 这就去再试试:lol

gua 发表于 2022-10-17 13:58:24

markdown!!

njsssmq 发表于 2022-10-20 22:05:00

按硬汉模板修改,用于GD32F303 spi0 W25Q128下载。总是出现AlgoRamSize too small, out of memory错误,请问如何修改。谢谢!

eric2013 发表于 2022-10-21 01:17:56

njsssmq 发表于 2022-10-20 22:05
按硬汉模板修改,用于GD32F303 spi0 W25Q128下载。总是出现AlgoRamSize too small, out of memory错误,请问 ...

应该跟这个坛友的问题一样。

H7-TOOL 下载算法显示内存不够
https://www.armbbs.cn/forum.php?mod=viewthread&tid=115915&fromuid=58
(出处: 硬汉嵌入式论坛)

njsssmq 发表于 2022-10-21 21:09:11

谢谢硬汉。调整算法内存后,问题解决。
现将调试好的GD32F303 SPI0挂W25Q128的算法工程分享给需要的坛友

还有一个问题,就是如何将W25Q128内的数据读出保存。

eric2013 发表于 2022-10-22 13:13:35

njsssmq 发表于 2022-10-21 21:09
谢谢硬汉。调整算法内存后,问题解决。
现将调试好的GD32F303 SPI0挂W25Q128的算法工程分享给需要的坛友
...
谢谢分享。TOOL上位机可以在这里直接读取。每次读取别太大,太大容易失败。
操作前先执行一次前面的一键下载。目的是保证相关的配置信息下载到TOOL的eMMC里面了




njsssmq 发表于 2022-10-23 17:34:12

我的需求是:在W25Q128中建little filesystem。出厂前需要存放很多小文件,但我并不清楚little files是如何组织数据的。我是在一块板子中,通过CAN 下载这些文件。在下载完成后,想通过H7 TOOLS将这些数据读出来用于生产时烧写。STM32 ST-LINK Utility有这个功能,但不想再去调试一块MCU了。

估计许多小白都会用到这个功能。

eric2013 发表于 2022-10-23 19:07:29

njsssmq 发表于 2022-10-23 17:34
我的需求是:在W25Q128中建little filesystem。出厂前需要存放很多小文件,但我并不清楚little files是如何 ...
没问题,TOOL是直接读取并以bin文件方式存储到电脑的。

njsssmq 发表于 2022-10-23 23:04:58

为什么我的不行呢?
下载成功


点“读芯片”,点下载LAU(不烧录),只加载内部flash算法,SIP flash算法没有被加载

下载成功load "GD32F30x_HD_256K.lua" ok
dofile :         0:/H7-TOOL/Programmer/Device/GigaDevice/Lib/GD32F10x_Lib_M3.lua
load "GD32F10x_Lib_M3.lua" ok
load "fix_data.lua" ok. version =         1.5
load "prog_lib.lua" ok. version =         3.2
load "machine_if.lua" ok. version =         1.8
检测烧录接口板:
--CH2电压: 0.00V
--

将基地址改为0xC0000000,点“读取1K”,提示“error”。

读MCU内部flash没问题

eric2013 发表于 2022-10-24 02:18:46

njsssmq 发表于 2022-10-23 23:04
为什么我的不行呢?
下载成功


没问题,这个是你前面31楼做SPI Flash算法文件读函数不行。

下面这个是我们做的,给我们V7板子做的SPI Flash算法读取里面数据操作。



gua 发表于 2022-11-9 10:42:01

本帖最后由 gua 于 2022-11-9 16:39 编辑

:D:D:D:D:D

eric2013 发表于 2022-11-10 09:15:34

gua 发表于 2022-11-9 10:42


忘了及时回复了,你把问题改了?

hello_word 发表于 2022-11-15 09:52:17

你好我想搞个F1的SPIFLASH加载算法 算法是生成了,然后下载程序的时候,一直下载不进去,0XC0000000可以加载,到0x0800 0000这部分就直接下载失败,不知道什么原因,硬汉可以指点下不

hello_word 发表于 2022-11-15 09:58:25

eric2013 发表于 2022-5-30 02:08
这次视频审核挺快。

这个是F103的算法工程,SPI通信那块没问题,单独测SPIflash的读写函数也是正常的,就是生成了算法之后,F103在下载0X0800 0000那部分的时候直接下载失败,有空帮忙看看谢谢
页: [1] 2 3
查看完整版本: 【实战技能】任何支持SWD接口的单片机都可以方便移植的SPI Flash烧写算法制作,含视频说明(2022-05-30)