MM32在KEIL环境中实现部分代码在RAM中运行

  • MindMotion
  • LV4工程师
  • |      2018-03-01 16:50:16
  • 浏览量 851
  • 回复:0
本帖最后由 MindMotion 于 2018-3-1 16:56 编辑 来源 灵动MM32一、简介在MCU的实际使用过程中,一般的程序是放在FLASH中运行,但有时候我们需要程序的运行速度更快,系统有更好的实时性,这时我们可以将这部分代码放到RAM中运行。在本文中小编会通过MM32F073的一个实际例子来给大家介绍在KEIL环境中如何让程序运行在RAM上。 二、实验本文的例子建立在一个LED_BLINK 的例程上,通过编译后观察MAP文件来看LED_TOGGE函数的位置。首先看LED_BLINK 例程的主要函数,如下图: 看LED_TOGGE在FLASH中运行的情况, 可看到函数LED_TOGGE编译后的地址在FLASH中。 然后我们将LED_TOGGE放到SRAM中。 操作步骤:A、 紧接上面的编译完成后会有一个.sct文件,现在我们需对这个文件进行修改,在linker的目录下进行如下图设置,点击Edit,我们便可对该文件进行修改。 B、在.sct文件中,定义一个RAMCODE的section,放在RW_IRAM1执行区域(0x20000000-0x00002000)。修改内容如下图所示: C、方法一:用#pragma arm section code = “RAMCODE”和#pragma armsection将需要放到SRAM中的程序包括起来; 方法二:在需要放到RAM中的函数前,用__attribute__((section("RAMCODE")))声明该函数放在RAMCODE section中。 编译时,编译器会自动将这些函数放到RAMCODE所在0x20000000开始的区域。 D、结果如下图,此时LED_TOGGE编译后的地址在SRAM中的0x20000000开始的区域。 注意事项:注意该函数中调用到的所有函数也要放到RAMCODEsection中,#pragma arm section code=“RAMCODE ”和#pragma arm section中可以包含多段代码。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子