TI中文支持网
TI专业的中文技术问题搜集分享网站

全局变量初始化问题

hi TIer

    我现在的工作环境是startware,启动模式为uart,通过uart加载了boot代码后,再通过uart加载应用程序。   

应用程序如下:

#include<stdio.h>

static volatile unsigned int debug_num = 0x00;

void main()

{

    UARTPuts("\r\n debug_num:", -1);
    UARTPutHexNum((unsigned int)(debug_num));
    UARTPuts("\r\n", -1);

}

出现一个比较奇怪的问题,串口输出的debug_num值并不为初始化的值,而是一个随机值(每次加载值都是有变化的)

大家可以测试一下。请问一下这是GCC的编译选项设置产生的问题还是什么其他的原因。

BTW:内存肯定是没有问题的,在代码中任何位置对debug_num赋值都是正确的。

Jian Zhou:

把volatile去掉试一下,或者每次加载代码用仿真器跟一下看看赋值情况。

yihao wang:

回复 Jian Zhou:

去掉volatile是一样的。仿真器没有用,用的是uart加载,不是jatg加载。

Steven Liu1:

建议跟一下这个UARTPutHexNum的代码实现,是不是打印成地址了?

赞(0)
未经允许不得转载:TI中文支持网 » 全局变量初始化问题
分享到: 更多 (0)