您好~我将一个多核的程序中的一个宏定义值,也就是图片中的ang_xiashi改成一个需要在程序中计算出来的变量,这个值放在自己开的.newsat这个段中,同时在CMD文件中将.newdat指定到MSM中,然后重新编译这个工程,就出现了如图所示的warning,不知道是为什么?在同一个工程中我也有将别的一些变量放在MSM中,让8个核能去同时读到的,但就是提示这个ang_xiashi的warning,而且实在不懂那个overflow是怎么产生的?用的是CCS5.1 。希望各位帮忙解答下!谢谢~~
Adam Yao94020:
这个warning指的是变量ang_xiashi被放在了一个near类型的段中,通过DP-relative的方式进行寻找。
解决的办法是将这个变量强制分配到.far(非初始化)或.fardata(初始化)段中
Adam Yao94020:
回复 Adam Yao94020:
如果用户的段必须要放在自己命名的段里面,可以试着在变量定义前加far关键字,
或者在编译选项的Runtime Model option->Data access model下面强制选择成far
这样所有没有特殊声明的变量都会放在far段内。
hobo Q:
回复 Adam Yao94020:
您好~谢谢回答!这个方法是可以将这些warning给去掉!但是我还有一个疑惑,就是我在同个工程中,还有别的变量和ang_xiashi完全一样的定义,但是每次报warning都是报ang_xiashi这个变量的问题,不管将ang_xiashi这个变量放在哪一个段中!这又是什么呢???什么情况下会出现类似warning呢??谢谢~