我的 RAM 用完了,需要将我的非关键速度代码移动到闪存。需要知道链接器“属性”命令来选择闪存。
我正在使用 mbed 在线 IDE 为 NUCLEO (STM32)f091RC 构建。
但也许 mbed 使用 flash 的通用属性设置。
我在 mbed 链接器上找不到任何帮助。
我不知道你的链接器文件结构,但最有可能的是你有 .text 部分,它是用 FLASH 编写的(99% 肯定)。如果你想强制你的函数部分,你必须在声明和定义之前使用这个属性:__attribute__ ((long_call, section (".text")))
你也可以像这样创建一个宏:
#define FLASH_FUNC __attribute__ ((long_call, section (".text")))
并像这样使用它:
在 .h 文件中:
FLASH_FUNC void MyFoo(void);
国际化 .c 文件
FLASH_FUNC void MyFoo(void)
{
//foo
}