打印
[STM32H7]

程序直接下载到 STM32H7 内部 RAM

[复制链接]
415|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的牙白|  楼主 | 2025-3-27 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想将程序直接下载到 STM32H7 内部 RAM。不想在 Flash 中存储代码,想直接加载到H7的 RAM。
我已经链接了可执行文件并将函数映射到 RAM 中。
还将 .elf 转换为 .hex 并检查代码确实位于 @ 0x24000000。
当通过 STM32CubeProgrammer 下载 .elf 时,可以看到 RAm 已正确下载。
但是当我通过 STM32CubeIDE 下载时,RAM 没有加载。
应该是怎样的操作步骤呢?





使用特权

评论回复
沙发
meeagle| | 2025-3-27 17:23 | 只看该作者
放到RAM不是断电就丢失了吗?这是想存储核心算法用?

使用特权

评论回复
板凳
lvuu| | 2025-3-31 22:36 | 只看该作者
需要确认 链接脚本(.ld 文件)正确地配置了程序映射到 RAM 中

使用特权

评论回复
地板
公羊子丹| | 2025-4-1 07:34 | 只看该作者
检查链接脚本,确保你的链接脚本(.ld 文件)将所有代码正确地映射到 RAM 中,并且正确设置了 load address 和 entry point。

使用特权

评论回复
5
周半梅| | 2025-4-1 07:35 | 只看该作者
STM32CubeIDE 的启动配置问题,确保你的 IDE 配置正确,特别是下载时是否选中了加载到 RAM 的选项。有时 IDE 默认会将程序加载到 Flash 中,而不是 RAM。

使用特权

评论回复
6
帛灿灿| | 2025-4-1 07:36 | 只看该作者
确认 STM32CubeIDE 里是否启用了内存映射调试,查看 debug configuration 中是否有针对 RAM 调试的设置,比如选择 “Load to RAM” 选项。

使用特权

评论回复
7
童雨竹| | 2025-4-1 07:37 | 只看该作者
手动设置 RAM 启动,你可以通过修改启动文件(如 startup_stm32h7xx.s)来确保从 RAM 启动而不是从 Flash 启动。

使用特权

评论回复
8
万图| | 2025-4-1 07:38 | 只看该作者
查看 STM32CubeIDE 的下载设置,在 IDE 中进行下载时,确保你选择了 “Program” 而不是 “Erase & Program”。并且确认 “Program to RAM” 被启用了。

使用特权

评论回复
9
Wordsworth| | 2025-4-1 07:38 | 只看该作者
检查 STM32CubeProgrammer 与 STM32CubeIDE 之间的差异,CubeProgrammer 可能自动识别加载到 RAM,而 CubeIDE 可能需要手动设置。你可以先通过 CubeProgrammer 下载,再使用 CubeIDE 调试。

使用特权

评论回复
10
Bblythe| | 2025-4-1 07:39 | 只看该作者
检查是否启动了“RAM Boot”模式,有时在下载到 RAM 后,还需要通过硬件配置或者在调试模式下进行启动。

使用特权

评论回复
11
Pulitzer| | 2025-4-1 07:40 | 只看该作者
通过 STM32CubeMX 配置 RAM 启动,有时候在 CubeMX 中未启用正确的启动模式,导致 STM32CubeIDE 不能正确加载到 RAM。

使用特权

评论回复
12
Uriah| | 2025-4-1 07:41 | 只看该作者
调试模式下的 RAM 加载问题,如果你在调试模式下尝试加载到 RAM,检查 debugger settings 是否配置了适当的 RAM 地址。

使用特权

评论回复
13
Clyde011| | 2025-4-1 07:42 | 只看该作者
尝试手动从 RAM 启动,可以在启动过程中手动将程序从 RAM 地址复制到目标位置,然后开始执行,这样可以绕过 IDE 的问题,确保 RAM 加载正确。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

7

帖子

0

粉丝