今天又碰到一个问题,与之前的情况类似。
我在一个C文件中定义了一个unsigned short 型的全局变量,编译链接后发现
Program Size: Code=167538 RO-data=4818 RW-data=1316 ZI-data=48348
如果不定义这个全局变量:
Program Size: Code=167538 RO-data=4818 RW-data=1312 ZI-data=48344
如果定义一个unsigned int型的全局变量:
Program Size: Code=167538 RO-data=4818 RW-data=1320 ZI-data=48344
unsigned short型变量为什么同时占用了RW-data和ZI-data?而且,如果我定义了这个unsigned short型变量,即使完全不使用它,系统启动一会后就会进hardfault,而不定义或者定义为unsigned int型变量则不会.
我的编程环境是Keil uVision V3.90,MCU为STM32F103RCT6,跑ucos-ii,堆栈是默认四字节对齐。哪位牛人能指点一下?
|