打印

STM32 的预处理命令

[复制链接]
2141|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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
5
reille| | 2013-7-9 21:25 | 只看该作者
#pragma section,这应该不是stm32的预处理命令,而是编译器上的。可用它创建一个section。

我一般使用__attribute__关键字:
int data __attribute__((section (".sram"))) = 0xFFFFFFFF;

使用特权

评论回复
6
ninazhou|  楼主 | 2013-7-11 16:19 | 只看该作者
thislife 发表于 2013-7-8 15:31
和处理器无关。
__attribute__ (( section("..."))),当然这个section必须被加载到外部sram。
问一下,定义 ...

因为处理的数据量太大,有几十K,内存不够用。虽说可以用其他的方法实现对SRAM的写入和读出,但因为原程序用的是这个命令,移植起来方便

使用特权

评论回复
7
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上分配的地址呢?

使用特权

评论回复
8
cjhk| | 2013-7-11 20:39 | 只看该作者
问题解决了吗    问题解决了就好    楼主   顶一个    不错哦

使用特权

评论回复
9
reille| | 2013-7-12 09:40 | 只看该作者
ninazhou 发表于 2013-7-11 16:21
int data __attribute__((section (".sram"))) = 0xFFFFFFFF;

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

.sram,是外部SRAM的段名称,这个应该是要先预定义的!
0xFFFFFFFF,是赋给dta的初始值而已

使用特权

评论回复
10
lyyyuna| | 2013-7-12 09:57 | 只看该作者
预处理和编译器有关,看你用什么编译器了。

使用特权

评论回复
11
outstanding| | 2013-7-12 14:04 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

32

帖子

0

粉丝