我正在使用 CodeSourcery GCC 4.5.2 for ARM 为 STM32 编写 C 代码。我在初始化全局结构时遇到问题。代码如下。
在 struct.h
typedef struct
{
int foo;
...
int bar;
} mystruct;
extern mystruct example;
在 struct.c 中
mystruct example = {100,200 ..., 1000};
在 Main.c 中
#include "struct.h"
int temp;
temp = example.foo;
代码编译没有任何问题。但是在调试的时候,我发现这个结构已经被所有的垃圾值初始化了!!temp 的值应该是 100,但它总是被证明是一个垃圾值。我在 PC 上使用 eclipse + openOCD + GDB 硬件调试,在硬件端使用 Olimex JTAG。
这是编译器的问题吗?或者我在这里错过了什么?