STM32关于分散加载文件使用的一些备忘

    xiaoxiao2022-07-13  170

    今天在做STM32外挂SRAM的测试,遇到一些问题记录下来

    1 如何让变量定义到外部SRAM里

    最简单的,修改好FSMC的初始化程序后,在option里加上SRAM的地址和大小,将default选项勾上,每个文件用默认设置,定义的变量就全部到SRAM里了

    2 如何将一部分变量定义到SRAM,一部分定义到内部RAM里

    方法一:

    直接修改文件的属性,文件的option选项里选择将ZI变量和RW变量定义到SRAM里,这样这个文件所有的变量就会定义到外部SRAM,而其他文件的变量定义在内部RAM。

    另外我尝试过修改分组的option选项,不知道为什么会警告:

     L6314W: "No section matches pattern xxx.o (ZI)"

    所以保险一些还是每个文件单独设置。

    方法二:

    修改分散加载文件,文件怎么打开自行百度,增加以下内容:

    RW_RAM1 0x68000000 0x00100000 { *(ext_sram) }

    修改完后在options选项卡的linker页面中,去掉“Use Memory Layout frem Target Dialog”选项,否则会以默认的分散加载文件编译。

    然后定义变量是在后面增加 __attribute__((section("ext_sram")))或者 __attribute__((section("ext_sram"),  zero_init))

    第一种是未初始化的变量,第二种是初始化为0的变量。

    最新回复(0)