STM32 的预处理命令

[复制链接]
 楼主| ninazhou 发表于 2013-7-5 17:26 | 显示全部楼层 |阅读模式
谁有详细的STM32 的预处理命令?

比如 #pragma section 这个命令可以用吗?怎么用?可以把变量直接定义到外部SRAM中吗?

谢谢高手指教。

trumpxp 发表于 2013-7-5 18:37 | 显示全部楼层
这一块不是很了解    楼主   帮你顶一个   希望有高手能够帮你解决这个问题    顶一个
 楼主| ninazhou 发表于 2013-7-8 08:54 | 显示全部楼层
RENESAS系列处理器可以在软件中给特定的地址设置段名,然后用#pragma section来将数据或代码定位到这个特定的段中,不知道这个命令怎么用在STM32上用
thislife 发表于 2013-7-8 15:31 | 显示全部楼层
和处理器无关。
__attribute__ (( section("..."))),当然这个section必须被加载到外部sram。
问一下,定义到外部sram,有什么意义,速度还没内部快。
一般有cache的处理器用的比较多,比如linux内核的.data..read_mostly段。

评分

参与人数 1威望 +1 收起 理由
ninazhou + 1

查看全部评分

reille 发表于 2013-7-9 21:25 | 显示全部楼层
#pragma section,这应该不是stm32的预处理命令,而是编译器上的。可用它创建一个section。

我一般使用__attribute__关键字:
int data __attribute__((section (".sram"))) = 0xFFFFFFFF;
 楼主| ninazhou 发表于 2013-7-11 16:19 | 显示全部楼层
thislife 发表于 2013-7-8 15:31
和处理器无关。
__attribute__ (( section("..."))),当然这个section必须被加载到外部sram。
问一下,定义 ...

因为处理的数据量太大,有几十K,内存不够用。虽说可以用其他的方法实现对SRAM的写入和读出,但因为原程序用的是这个命令,移植起来方便
 楼主| ninazhou 发表于 2013-7-11 16:21 | 显示全部楼层
reille 发表于 2013-7-9 21:25
#pragma section,这应该不是stm32的预处理命令,而是编译器上的。可用它创建一个section。

我一般使用__ ...

int data __attribute__((section (".sram"))) = 0xFFFFFFFF;

在使用以上语句之前需要先定义“.sram” 吗?0xFFFFFFFF是否就是SRAM上分配的地址呢?
cjhk 发表于 2013-7-11 20:39 | 显示全部楼层
问题解决了吗    问题解决了就好    楼主   顶一个    不错哦
reille 发表于 2013-7-12 09:40 | 显示全部楼层
ninazhou 发表于 2013-7-11 16:21
int data __attribute__((section (".sram"))) = 0xFFFFFFFF;

在使用以上语句之前需要先定义“.sram”  ...

.sram,是外部SRAM的段名称,这个应该是要先预定义的!
0xFFFFFFFF,是赋给dta的初始值而已
lyyyuna 发表于 2013-7-12 09:57 | 显示全部楼层
预处理和编译器有关,看你用什么编译器了。
outstanding 发表于 2013-7-12 14:04 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

32

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部