#1楼主:问一下STM32 { .__ptr = __sfe( "CSTACK" ) }的具体意思是什么?
文章发表于:2008-08-28 05:04
首先不好意思说一声,由于以前没有用IAR,所以用起来问题多多啊?老是问STM32,还请诲人不倦吖!呵呵
问题即如题,不知道是什么意思?——SFE()是IAR的库函数吗?STM32可否将那个启动全过程详细介绍一下?我看了那些macro.s里面申明的那些比如void __WFI(void);void __WFE(void);什么的,在中断响亮里面没有定义啊?他们不是应该处于中断向量表的前十六个异常之一吗?憋得慌,还望明示!
#2
文章发表于:2008-09-01 09:46
__sfe是IAR的“段操作符”segment operator。表示取某个段的后一个字节的地址。
比如"CSTACK"定义为0x20001000~0x20001fff。那__sfe( "CSTACK" ) 就得到0x20002000这个值,刚好用来初始化msp堆栈指针。
注意使用segment operator前,需要先定义段名如下:
#pragma segment="CSTACK"
#3
文章发表于:2008-09-01 14:42
多谢,明白一些了,但是还有个问题啊?
#pragma language="extended是什么意思呢"?extended不是申明是C++语言吗?是不是这样 ?
#4
文章发表于:2008-09-05 23:34
IAR对C语言作了很多扩展,但你可以选择使能扩展,或是遵循C语言标准。
比如允许变量在函数体中间声明,而不是必须在函数体开头声明等。
你也可以在Option->C/C++ Compiler选项卡里头的Language conformance处选择。
#7
文章发表于:2008-09-10 01:29
请教一下,我采用的是Ekstm32开发板,IAR,接到外部电路(液晶屏)后调试出现如下问题:The stack 'CSTACK' is filled to 100% (1024 bytes used out of 1024). The warning threshold is set to 90.%
不能继续调试
请问是怎么回事?如何解决?