wanyisq 发表于 2017-3-10 16:17:59

IAR for ARM编译仿真位域变量值问题

是这样的我定义了几个位域作为标志,在仿真时发现某个标志被语句赋值1之后,变量窗口看此标志的值是ERROR并不是赋值后的1   为什么

wenyangzeng 发表于 2017-3-10 16:31:32

你那个冒号1(:1)只不过是定义变量为1bit数据宽度而已。

wanyisq 发表于 2017-3-10 17:19:17

wenyangzeng 发表于 2017-3-10 16:31
你那个冒号1(:1)只不过是定义变量为1bit数据宽度而已。

是1bit数据啊所以这个标志变量的值只能取0、1   但是我赋值1后 断点运行值是ERROR如图

wenyangzeng 发表于 2017-3-10 19:45:19

本帖最后由 wenyangzeng 于 2017-3-10 19:46 编辑

wanyisq 发表于 2017-3-10 17:19
是1bit数据啊所以这个标志变量的值只能取0、1   但是我赋值1后 断点运行值是ERROR如图 ...
没看到你的图。实际上你这个结构只要这样就够了:
typedef struct
{uint8_t FLAG0:1;
.
.
.uint8_t FLAG15:1;
}BITS;
读某位:BITS.FLAG0
何必弄得那么复杂。

酱哒哒 发表于 2017-3-11 16:07:53

图片不清晰,如果没记错的话,IAR变量值为ERROR是因为变量不具有全局性,非全局变量无法窗口查看。

酱哒哒 发表于 2017-3-11 16:08:15

酱哒哒 发表于 2017-3-11 16:07
图片不清晰,如果没记错的话,IAR变量值为ERROR是因为变量不具有全局性,非全局变量无法窗口查看。 ...

是图片描述不详细,不是不清楚。

wanyisq 发表于 2017-3-12 11:11:01

wenyangzeng 发表于 2017-3-10 19:45
没看到你的图。实际上你这个结构只要这样就够了:
typedef struct
{uint8_t FLAG0:1;


因为这个位域定义了多个地方

wanyisq 发表于 2017-3-12 11:12:14

酱哒哒 发表于 2017-3-11 16:07
图片不清晰,如果没记错的话,IAR变量值为ERROR是因为变量不具有全局性,非全局变量无法窗口查看。 ...

谢谢 这些标志是全局变量的确发现了非全局变量不能查看错误和非全局变量提示一样
页: [1]
查看完整版本: IAR for ARM编译仿真位域变量值问题