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

全局变量无法赋新值

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

rookiecalf:

请说明你的定义方式,赋值用法,以及赋值时的断点调试前后结果比照情况

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

Yingzhe Luo:

回复 rookiecalf:

你好!一下是程序的和调试结果的截图。

程序运行到第18行,data是全局变量,但data和a赋值都不正确。

谢谢!

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

rookiecalf:

回复 Yingzhe Luo:

是不是开了优化。你可以把这两个变量实际使用一下看看,别只做这两个没有什么意义的操作(就是要把那个警告消除了)。或者看一下汇编到底是什么。

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

Yingzhe Luo:

回复 rookiecalf:

谢谢解答!

我将a这个变量用return返回了一下,但还是没有赋上值。优化和汇编怎么看呢?

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

rookiecalf:

回复 Yingzhe Luo:

优化页面是属性–》ccs build–》c2000 compiler–>optimization。

汇编查看是View–》Disassembly

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

Yingzhe Luo:

回复 rookiecalf:

你好,谢谢答复!

我替换了cmd文件:F28M36x_generic_wshared_C28_RAM.cmd,原来用的是F28M36x_generic_wshared_C28_FLASHcmd。替换后,全局变量就能赋值了,

请问这是什么原因?谢谢!

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

rookiecalf:

回复 Yingzhe Luo:

不会是把用于存放变量的段放在了flash或者其他不可写的RAM的存储区了吧?

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

Yingzhe Luo:

回复 rookiecalf:

你好!

我检查了一下,是把该段放进了shared ram里面了。

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

囧:

回复 Yingzhe Luo:

你所说的share ram具体是哪个型号的哪一段?

TI技术专家:

你好!我用CCS5.5定义了一个全局变量,但下面的函数里对其赋值后,在调试过程中观察全局变量并没有

赋上值,定义时我加了volatile关键字也不行。请专家给予指点,谢谢!

Yingzhe Luo:

回复 囧:

你好,我用的DSP是F28M36x系列,存储段用的是shared rams的s0段

赞(0)
未经允许不得转载:TI中文支持网 » 全局变量无法赋新值
分享到: 更多 (0)