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

仿真状态下,如何执行c_int00()?

我发现:

(1)在仿真状态下,没有赋值的全局变量,在进入main函数前,不会默认赋值为0;

(2)不在仿真状态下时,没有赋值的全局变量,在进入main函数前,会默认赋值为0;

按我的理解,c_int00()进行了一些初始化操作。28069在仿真状态下,在下载完程序后,程序直接跳转到了main()。

我试过进入仿真状态,手动跳转到c_int00(),执行完进入main后,发现没有赋值的全局变量,依旧没有没有自动赋值为0,。很是不理解。

请问,如何能在仿真状态下,跳转到c_int00()先执行?或者说,如何在仿真状态下,在进入main函数前,对没有赋值的全局变量,自动赋0值?

囧:

c_int00()就是一个跳转地址,你可以设定到main的位置,也可以不跳转到main到你bootloader的地方。变量在没初始化之前是一个随机值,建议你在使用前初始化呢一下。

我发现:

(1)在仿真状态下,没有赋值的全局变量,在进入main函数前,不会默认赋值为0;

(2)不在仿真状态下时,没有赋值的全局变量,在进入main函数前,会默认赋值为0;

按我的理解,c_int00()进行了一些初始化操作。28069在仿真状态下,在下载完程序后,程序直接跳转到了main()。

我试过进入仿真状态,手动跳转到c_int00(),执行完进入main后,发现没有赋值的全局变量,依旧没有没有自动赋值为0,。很是不理解。

请问,如何能在仿真状态下,跳转到c_int00()先执行?或者说,如何在仿真状态下,在进入main函数前,对没有赋值的全局变量,自动赋0值?

Johnson Chen1:

没有赋值的全局变量是指定义的不带初始值的变量吗?

如果是的话,你又希望这个变量初始化零的话,那么需要在程序中进行赋初值,或者将其定义为带初始值的变量。否则上电后,这些变量的内容是随机的。

下载完程序,CPU已经自动执行了c_int00(),你也可以点击RESET CPU, 如果这时候你仿真引导模式寄存器(EMU_KEY,EMU_BMODE)里值是对的,CPU会执行c_int00();

我发现:

(1)在仿真状态下,没有赋值的全局变量,在进入main函数前,不会默认赋值为0;

(2)不在仿真状态下时,没有赋值的全局变量,在进入main函数前,会默认赋值为0;

按我的理解,c_int00()进行了一些初始化操作。28069在仿真状态下,在下载完程序后,程序直接跳转到了main()。

我试过进入仿真状态,手动跳转到c_int00(),执行完进入main后,发现没有赋值的全局变量,依旧没有没有自动赋值为0,。很是不理解。

请问,如何能在仿真状态下,跳转到c_int00()先执行?或者说,如何在仿真状态下,在进入main函数前,对没有赋值的全局变量,自动赋0值?

xiang Lee1:

回复 Johnson Chen1:

没有赋值的全局变量是指定义的不带初始值的变量。比如:
int a;

我发现:
(1)要是不使用仿真器,这个没有赋值的全局变量在进到main时,就已经为0了。
(2)但是使用仿真器的时候,这个值是随机的。
我不理解这是为什么?

按C语言的语法,没有赋初值的全局变量,在进到main时,应该就是0值呀。

赞(0)
未经允许不得转载:TI中文支持网 » 仿真状态下,如何执行c_int00()?
分享到: 更多 (0)