硬汉嵌入式论坛

 找回密码
 立即注册
查看: 433|回复: 10
收起左侧

[开发工具] 请教自制FLM下载算法问题

[复制链接]

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2025-8-30 08:45:07 | 显示全部楼层 |阅读模式
我现在使用stm32h723,外挂w25q128,使用ospi dualquad 扩展32M片外flash,在自制下载算法的时候遇到一些问题,请教各位大神

stm32h723里边有1M片内flash,我仅使用了128K制作bootloader,剩余896K我想和片外32M一起制作成一个FLM,一共32M+896K,
但是看到keil下载算法里边可以添加多个flm,这里是什么原理,是keil在下载不同的地址的时候会切换不同的下载算法吗,我有必要制作一个32M+896K的通用下载算法吗
wechat_2025-08-30_084253_300.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-8-30 09:05:08 | 显示全部楼层
仅制作一个外部就行
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2025-8-30 09:08:16 | 显示全部楼层
eric2013 发表于 2025-8-30 09:05
仅制作一个外部就行

大佬,仅制作外部的,同时选择内部跟外部下载算法,app编译使用分散加载,能自动下载到对应地址吗
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2025-8-30 15:43:28 | 显示全部楼层
wechat_2025-08-30_154221_116.png   各位大神,制作好FLM文件以后keil下载到外部flash时出现报错,解决不了了
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2025-8-30 16:15:37 | 显示全部楼层
各位大神,制作flm文件使用的时候遇到报错了,怎么都不好使,有谁见过
wechat_2025-08-30_155858_795.png
wechat_2025-08-30_154221_116.png
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2025-8-30 16:16:54 | 显示全部楼层
制作的flm文件使用的时候遇到报错了,怎么都不好使,有谁见过
wechat_2025-08-30_154221_116.png
wechat_2025-08-30_155858_795.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-9-1 07:09:40 | 显示全部楼层
244141084 发表于 2025-8-30 09:08
大佬,仅制作外部的,同时选择内部跟外部下载算法,app编译使用分散加载,能自动下载到对应地址吗

对,你的程序设置好地址,就可以自动使用对应的算法下载
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-9-1 07:11:30 | 显示全部楼层
244141084 发表于 2025-8-30 16:15
各位大神,制作flm文件使用的时候遇到报错了,怎么都不好使,有谁见过

方便的话,分享你的算法文件到百度云看下。
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2025-9-1 15:41:06 | 显示全部楼层
大佬啊,帮我看看我的工程,在 FlashPrg.c 里边 Init 函数, 初始化了串口,有时候 UartSend(SystemCoreClock); 能过,有时候卡死, OSPI 一直操作不了, 只要操作OSPI就卡死,已经搞了好几天了,能不能帮忙解决下

stm32h723FLM.zip

1.3 MB, 下载次数: 0

回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2025-9-2 08:54:51 | 显示全部楼层
244141084 发表于 2025-9-1 15:41
大佬啊,帮我看看我的工程,在 FlashPrg.c 里边 Init 函数, 初始化了串口,有时候 UartSend(SystemCoreClock); ...

查到原因了,在内存运行需要把初始化变量归零
volatile int i;       
        volatile unsigned char * ptr = (volatile unsigned char * )&hospi1;
        for (i = 0; i < sizeof(hospi1); i++) {
                *ptr++ = 0U;
        }
非常重要
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-9-3 09:29:22 | 显示全部楼层
244141084 发表于 2025-9-2 08:54
查到原因了,在内存运行需要把初始化变量归零
volatile int i;       
        volatile unsigned char * ptr = (vola ...

是的,这个尤其重要
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 16:42 , Processed in 0.049543 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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