硬汉嵌入式论坛

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

[SRAM] STM32H7关键代码在ITCM执行的疑问

[复制链接]

8

主题

5

回帖

29

积分

新手上路

积分
29
发表于 2023-7-5 20:32:05 | 显示全部楼层 |阅读模式
今天在看第28章STM32H7 时间关键代码在 ITCM 执行的超简单方法的内容有些理解和疑问:


1、
程序都是存放在起始地址0x8000000的flash里面,指定某个.c文件的程序从IROM1拷贝到IRAM2(ITCM)中执行,RW-data段数据都默认存放在IRAM1(DTCM)中执行。是这样不

1.png

2、没有指定ITCM的.c文件还是默认在IROM1中执行,是这个意思不,程序在IROM1中执行的话时钟频率是200Mhz吗

2.png

3、如果DTCM的128K不够怎么办?怎么让关键程序在ITCM中执行,同时一部分RW-data在DTCM,其余的都在AXI-SRAM
4、
这是threadX的例程的配置,代表的意思是不是说,程序在flash中执行,RW-data都是被搬运的到AXI-SRAM执行。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2023-7-6 09:11:24 | 显示全部楼层
1、对
2、H7系列的程序执行有指令Cache加速,指令Cache速度这主频速度一样。
3、分散加载设置
4、是。
回复

使用道具 举报

8

主题

5

回帖

29

积分

新手上路

积分
29
 楼主| 发表于 2023-7-7 10:35:26 | 显示全部楼层
eric2013 发表于 2023-7-6 09:11
1、对
2、H7系列的程序执行有指令Cache加速,指令Cache速度这主频速度一样。
3、分散加载设置

1、如果不设置TCM,那么程序是默认在IROM1中执行的,这个IROM1是不是D1域挂在AXI总线上的FlashA,他的速度是200Mhz。
2、如果采用了分散加载sct方式,那么在mdk中如下图,设置指定.c文件在ITCM中执行的方式还有效吗
下载 (1).png
回复

使用道具 举报

19

主题

234

回帖

291

积分

高级会员

积分
291
发表于 2023-7-7 11:22:06 | 显示全部楼层
aqwtyyh 发表于 2023-7-7 10:35
1、如果不设置TCM,那么程序是默认在IROM1中执行的,这个IROM1是不是D1域挂在AXI总线上的FlashA,他的速 ...

可以了解一下加载地址和执行地址,如果执行地址是在RAM中,系统启动后会将代码从加载地址复制到执行地址指定的RAM位置。
但是负责复制功能的这个代码执行地址等于加载地址,其他的大部分都可以是执行地址不等于加载地址,这时候这个复制功能就起作用了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2023-7-8 08:28:53 | 显示全部楼层
aqwtyyh 发表于 2023-7-7 10:35
1、如果不设置TCM,那么程序是默认在IROM1中执行的,这个IROM1是不是D1域挂在AXI总线上的FlashA,他的速 ...

1、Flash这个,在H7参考手册的Flash章节有个表格Flash速度和延迟周期表格。
2、如果开了手动分散加载设置,这里就不起作用了。

如果是MDK设置这里,本质也是分散加载设置,只是比手动设置省事。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 04:51 , Processed in 0.171148 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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