[STM32L4] 如何通过将代码放入RAM来加快执行速度。

[复制链接]
 楼主| WHALEE 发表于 2025-8-2 11:54 | 显示全部楼层 |阅读模式
如何通过将代码放入RAM来加快执行速度。
我从STM32CubeIDE用户手册的2.5.7.2节了解到,可以通过修改.ld文件和.s文件,
并使用__attribute__((section(".RAM_Code")))声明函数来实现。
如何将这些代码添加到.s文件中


52379688cd54085d4e.png





pl202 发表于 2025-8-4 10:25 | 显示全部楼层
使用默认的分散加载文件(.sct)
tifmill 发表于 2025-8-4 12:47 | 显示全部楼层
通过__attribute__指定代码段
usysm 发表于 2025-8-4 13:44 | 显示全部楼层
创建.sct文件来定义RAM区域
alvpeg 发表于 2025-8-4 14:52 | 显示全部楼层
程序默认存储在 Flash 中并直接从 Flash 执行。若要从 RAM 执行,需先将代码复制到 RAM,再跳转到 RAM 中的代码地址运行。
backlugin 发表于 2025-8-4 16:29 | 显示全部楼层
在链接脚本(.sct 文件)中定义一个RAM区域。
tifmill 发表于 2025-8-4 17:39 | 显示全部楼层
修改SCT文件,将代码放到SRAM执行
olivem55arlowe 发表于 2025-8-4 22:23 | 显示全部楼层
点击APP中的想要放置在RAM中的文件,右键然后单击烟花棒(Options for File ‘main.c’) 2、 点击Code/Const,选择IRAM1[0x20000000-0x20004FFF]
qiufengsd 发表于 2025-8-5 09:59 | 显示全部楼层
在链接脚本(.sct 文件)中定义RAM区域,并将所有代码段放入RAM。
sdCAD 发表于 2025-8-5 10:40 | 显示全部楼层
在需要放入RAM的代码(如函数、变量)前添加__attribute__((section("ram_code")))属性,告知编译器将其放入自定义的.ram_code段。
wwppd 发表于 2025-8-5 14:07 | 显示全部楼层
使用#pragma arm section指令
mattlincoln 发表于 2025-8-7 10:27 | 显示全部楼层
将代码放入RAM的核心是通过​​链接脚本自定义段​​和​​编译器属性标记
averyleigh 发表于 2025-8-7 11:53 | 显示全部楼层
RAM起始地址:0x200000002.在xx.sct文件中,定义一个RAMCODE的section,放在RW_IRAM1执行区域(0x20000000-0x00002000)。
gygp 发表于 2025-8-7 16:24 | 显示全部楼层
编辑修改stc文件: stc文件在ARM的上下文中,散列控制表(或称为分散加载描述文件)是一个文本文件,它告诉链接器如何将编译后的代码和数据放置到目标硬件的内存中。
pl202 发表于 2025-8-8 13:05 | 显示全部楼层
在代码中使用 __attribute__((section("section_name"))) 将特定的函数或代码段放入RAM。
bartonalfred 发表于 2025-8-8 14:21 | 显示全部楼层
RAM的容量通常远小于Flash,因此应谨慎选择放入RAM的代码,避免超出RAM的存储范围
everyrobin 发表于 2025-8-8 17:10 | 显示全部楼层
工程中新建一个分散加载文件(.sct),并定义一个RAM区域(如 RAM_CODE),指定其起始地址和大小。
bestwell 发表于 2025-8-11 21:30 | 显示全部楼层
让Keil代码在内嵌SRAM中执行
robertesth 发表于 2025-8-12 02:04 | 显示全部楼层
编译后打开.map文件,确认函数被分配到RAM_CODE段。
primojones 发表于 2025-8-12 05:29 | 显示全部楼层
在 Keil 的链接脚本(如STM32F103RETX_FLASH.sct)中,为.RAMCODE段分配 RAM 地址空间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

38

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部