arm-none-eabi-gcc 不识别__attribute__((at(xxx))命令如何将数据定义到外部SDAM(已验证)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 可以利用__attribute__((section(".xxx")))实现同样的效果
    • 步骤:
    • 1.在linker链接文件中添加指定SDRAM加偏移地址
    • 2 .添加SDRAM自定义section
    • 3. 将数据定义到自定义区



可以利用__attribute__((section(".xxx")))实现同样的效果

步骤:

从STM32H7xx参考手册中可以看到,FMC挂载的外部SDRAM的可访问地址从0xC000 0000-0xDFFF FFFF截止
arm-none-eabi-gcc 不识别__attribute__((at(xxx))命令如何将数据定义到外部SDAM(已验证)_第1张图片


1.在linker链接文件中添加指定SDRAM加偏移地址

MEMORY
{
	rom  (rx)  : ORIGIN = 0x08000000, LENGTH = 2048k - 64k
	ram  (rwx) : ORIGIN = 0x20000000, LENGTH = 128k
	ram1 (rwx) : ORIGIN = 0x10000000, LENGTH = 64k
	SDRAM (rwx)	: ORIGIN = 0xC0100000, LENGTH = 16M 
}
/* SDRAM 前16M给emwin用了*/

2 .添加SDRAM自定义section

	.sdram_data (NOLOAD) : 
	{ 
	. = ALIGN(4); 
	_sdram_data_begin = .; 
	*(.sdram_data) 
	*(.sdram_data*) 
	. = ALIGN(4); 
	_sdram_data_end = .; 
	} >SDRAM

3. 将数据定义到自定义区

__IO __attribute__ (( section (".sdram_data") ))  PARAM_T gp ;

其中有部分语法还需要学习

你可能感兴趣的:(#,C)