WHALEE 发表于 2025-8-2 11:54

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

如何通过将代码放入RAM来加快执行速度。
我从STM32CubeIDE用户手册的2.5.7.2节了解到,可以通过修改.ld文件和.s文件,
并使用__attribute__((section(".RAM_Code")))声明函数来实现。
如何将这些代码添加到.s文件中








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

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 地址空间
页: [1]
查看完整版本: 如何通过将代码放入RAM来加快执行速度。