硬汉嵌入式论坛

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

[SRAM] 基于STM32H7的内部SRAM程序调试工程模板(512KB的AXI SRAM存程序,DTCM做主RAM)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2019-3-29 15:01:57 | 显示全部楼层 |阅读模式
基于STM32-V7开发板例程下载(仅作了MDK):
V7-012_串口和PC机通信(驱动支持8串口FIFO).rar (2.69 MB, 下载次数: 640)

直接点击调试按键即可使用。后面大家使用H750时,这个方案很实用,而对于H743来说,内部Flash放心用即可,擦写次数足够用。

几个关键地方的设置:
1、选择CpuRAM
image.png

2、程序空间使用AXI SRAM,大小512KB,主RAM使用DTCM,大小128KB,其它未使用的可以使用DMA或者其它需要大数据量的场合
image.png

3、中断向量表设置到RAM
image.png

4、添加脚本:
image.png

5、这里取消对勾
image.png







回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2019-3-29 15:04:28 | 显示全部楼层
image.png
回复

使用道具 举报

11

主题

91

回帖

124

积分

初级会员

积分
124
发表于 2019-3-31 14:26:13 | 显示全部楼层
这个要怎么下载到片子上去工作呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2019-4-1 03:06:17 | 显示全部楼层
yuangt 发表于 2019-3-31 14:26
这个要怎么下载到片子上去工作呢?

这个适合调试阶段使用。实际工程下载的方法就很多了,你可以存到到任何掉电不丢失的存储器里面,系统上电后读到AXI SRAM即可
回复

使用道具 举报

11

主题

91

回帖

124

积分

初级会员

积分
124
发表于 2019-4-3 09:45:37 | 显示全部楼层
eric2013 发表于 2019-4-1 03:06
这个适合调试阶段使用。实际工程下载的方法就很多了,你可以存到到任何掉电不丢失的存储器里面,系统上电 ...

那就是还要增加boodload程序了是吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2019-4-3 09:47:56 | 显示全部楼层
yuangt 发表于 2019-4-3 09:45
那就是还要增加boodload程序了是吗

bootloader比较简单,设置MSP和PC即可,如果用了RTOS,再设置下CONTROL寄存器。
回复

使用道具 举报

11

主题

91

回帖

124

积分

初级会员

积分
124
发表于 2019-4-3 15:21:18 | 显示全部楼层
各位大大,有没有 stm32h743的IAP例程 呀
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2019-4-3 15:27:36 | 显示全部楼层
yuangt 发表于 2019-4-3 15:21
各位大大,有没有 stm32h743的IAP例程 呀

STM32H750跳转APP的例程
http://www.armbbs.cn/forum.php?m ... 1407&fromuid=58
(出处: 安富莱电子论坛)
回复

使用道具 举报

11

主题

91

回帖

124

积分

初级会员

积分
124
发表于 2019-4-3 15:35:37 | 显示全部楼层
本帖最后由 yuangt 于 2019-4-3 15:37 编辑

H7 有没有 类似于 这样的串口IAP的例程呀?

http://www.armbbs.cn/forum.php?m ... B%2B%B4%AE%BF%DAIAP
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2019-4-3 15:44:29 | 显示全部楼层
yuangt 发表于 2019-4-3 15:35
H7 有没有 类似于 这样的串口IAP的例程呀?
http://www.armbbs.cn/forum.php?mod=viewthread&tid=709 ...

其实不用自己做bootloader这么麻烦了,使用芯片自带的即可

STM32CubeProgrammer升级至V1.2.1,增加H750,F750的QSPI Flash下载支持
http://www.armbbs.cn/forum.php?m ... 9897&fromuid=58
(出处: 安富莱电子论坛)
回复

使用道具 举报

54

主题

145

回帖

307

积分

高级会员

积分
307
发表于 2020-11-18 16:22:29 | 显示全部楼层
eric2013 发表于 2019-4-1 03:06
这个适合调试阶段使用。实际工程下载的方法就很多了,你可以存到到任何掉电不丢失的存储器里面,系统上电 ...

有什么简单的办法把SRAM程序下载到外部FLASH中呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2020-11-19 09:06:41 | 显示全部楼层
mewan 发表于 2020-11-18 16:22
有什么简单的办法把SRAM程序下载到外部FLASH中呢?

调用外部Flash的API写进去就行了。
回复

使用道具 举报

2

主题

75

回帖

81

积分

初级会员

积分
81
发表于 2021-5-12 22:43:08 | 显示全部楼层
对于745这种双核心的版本,该怎么处理,
LOAD ***\***.axf INCREMENTAL
Setup();
g, main

这里g, main是哪个处理器,查了uvision的帮助,没看到能单独控制核心的跳转。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2021-5-13 08:18:01 | 显示全部楼层
eggplant886 发表于 2021-5-12 22:43
对于745这种双核心的版本,该怎么处理,
LOAD ***\***.axf INCREMENTAL
Setup();

你的双核不是两个独立的工程吗,你运行的那个内核工程就往那个跳转。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2021-11-10 12:01:20 | 显示全部楼层
硬汉哥,在第四步中,添加了 "Cpuram.ini"的脚本文件,里面设置了SP和PC。有几个问题想请教一下:
1. 如果不添加脚本,芯片复位后,还是会从0地址处取SP和PC,但是0地址处并没有中断向量表(在SRAM中运行程序时,SRAM没有重映射到启动地址 0x0000_0000),所以程序会跑飞,所以必须要加上配置脚本。 请问我这个理解对吗?
2. 添加了脚本文件后,因为芯片复位后总是从0地址开始启动,所以在启动前,是不是调试器通过调试接口(SW)就已经更新好了SP和PC?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2021-11-10 15:32:01 | 显示全部楼层
lzh666 发表于 2021-11-10 12:01
硬汉哥,在第四步中,添加了 "Cpuram.ini"的脚本文件,里面设置了SP和PC。有几个问题想请教一下:
1. 如果 ...

M7不是从0地址,M7默认就是从0x0800 0000. 没有M0.M3,M4默认需要从0x0000 0000读取的问题了。

帖子末尾:【不是问题的问题】为什么STM32的Flash地址要设置到0x08000000
http://www.armbbs.cn/forum.php?m ... 9321&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2021-11-11 09:17:06 | 显示全部楼层
eric2013 发表于 2021-11-10 15:32
M7不是从0地址,M7默认就是从0x0800 0000. 没有M0.M3,M4默认需要从0x0000 0000读取的问题了。

帖子末 ...

好的明白了。 还有个问题,为啥从ram启动时,要使用 .ini脚本啊,脚本里面设置了SP和PC。 不添加脚本,不能正常启动吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2021-11-11 12:14:34 | 显示全部楼层
lzh666 发表于 2021-11-11 09:17
好的明白了。 还有个问题,为啥从ram启动时,要使用 .ini脚本啊,脚本里面设置了SP和PC。 不添加脚本,不 ...

这个不是从RAM启动的玩法,实际是从Flash跳转到RAM玩的
回复

使用道具 举报

0

主题

30

回帖

30

积分

新手上路

积分
30
发表于 2021-11-16 00:50:48 | 显示全部楼层
硬汉哥,能做一个例程,把程序加载到RAM中运行,实现掉电丢失程序,上电从新升级的功能
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2021-11-16 09:37:05 | 显示全部楼层
BruceWang 发表于 2021-11-16 00:50
硬汉哥,能做一个例程,把程序加载到RAM中运行,实现掉电丢失程序,上电从新升级的功能

直接整个LUA不就行了。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2022-1-5 09:40:52 | 显示全部楼层
请教一下,“这个不是从RAM启动的玩法,实际是从Flash跳转到RAM玩的”
这句话的意思,是不是在调试开始,还是要在FLASH区域写入一部分代码,然后跳转到RAM运行?如果是,怎样才能完全在RAM中调试,而不用消耗FLASH的擦写次数呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2022-1-5 10:55:17 | 显示全部楼层
lb342@163.com 发表于 2022-1-5 09:40
请教一下,“这个不是从RAM启动的玩法,实际是从Flash跳转到RAM玩的”
这句话的意思,是不是在调试开始, ...

什么都不用写,是通过在MDK里面做了个脚本做跳转。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2022-1-5 11:51:20 | 显示全部楼层
好的好的,谢谢。
我现在STM750,使用STM32CUBEMAX生成的TheaDX操作系统,怎么设置也进入不了RAM调试,表现为进入调试后,PC指针和SP指针不在RAM区范围。
是不是有操作系统的,有需要特别设置什么。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2022-1-6 08:48:21 | 显示全部楼层
lb342@163.com 发表于 2022-1-5 11:51
好的好的,谢谢。
我现在STM750,使用STM32CUBEMAX生成的TheaDX操作系统,怎么设置也进入不了RAM调试,表 ...

有可能,有时间了我试试。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2022-1-8 10:50:39 | 显示全部楼层
谢谢。如果可以的话。实验的时候生成一个工程。我实在是太菜了。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2022-7-6 17:03:53 | 显示全部楼层
感谢硬汉分享。
回复

使用道具 举报

2

主题

37

回帖

43

积分

新手上路

积分
43
发表于 2023-6-25 17:07:52 | 显示全部楼层
eric2013 发表于 2021-11-16 09:37
直接整个LUA不就行了。

有这个例程吗?支持lua
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2023-6-26 10:41:31 | 显示全部楼层
风过不留痕 发表于 2023-6-25 17:07
有这个例程吗?支持lua

这个例子基础上改

STM32-V6 LUA简单移植
https://www.armbbs.cn/forum.php? ... id=94757&fromuid=58
(出处: 硬汉嵌入式论坛)


后期针对这个问题,做过一个案例。


制作了一个通过BOOT复制APP程序到AXI SRAM运行的案例,适合H750,H7B0玩
https://www.armbbs.cn/forum.php? ... 2748&fromuid=58
(出处: 硬汉嵌入式论坛)






回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2023-8-3 23:40:49 | 显示全部楼层
硬汉哥,尝试了你这种方法,Debug后可以跳转到SRAM的地址,但是当我在程序中加入SD卡的操作的时候,f_open()会执行不成功报错。这个是因为CPU和SDMMC1的专用DMA都将访问AXI SRAM区吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 23:37 , Processed in 0.420209 second(s), 36 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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