阅读:987回复:2
有关固件编程的问题
在SMART板中的MAINLOOP.H头文件中有如下定义:
typedef union _epp_flags { struct _flags { unsigned char timer : 1; unsigned char bus_reset : 1; unsigned char suspend : 1; unsigned char setup_packet : 1; unsigned char remote_wakeup : 1; unsigned char in_isr : 1; unsigned char control_state : 2; unsigned char configuration : 1; unsigned char verbose : 1; unsigned char ep1_rxdone : 1; unsigned char setup_dma : 2; unsigned char dma_state : 2; unsigned char power_down : 1; } bits; unsigned short value; } EPPFLAGS; 麻烦哪位大哥说一下上面那些定义的变量具体代表什么啊! 另外,有些变量我好象没有看到它被赋值就当作条件判断,这是怎么回事啊! 还有,如上变量后面加一个:1或:2是什么意思啊,难道这就是初值吗不象吧,我看了C51的书好象没这样赋值的,第一次使用C51,谢了。 |
|
沙发#
发布于:2003-07-29 08:57
这些都是可以根据你自己的具体需要可以自己定义的,方便你的应用,开发板没有开发的变量,不过需要你比较熟才可以。
|
|
板凳#
发布于:2003-07-29 09:18
这些定义是定义了D12各个动作的标志位,使用联合体结构定义,这种方法使FW结构比较紧凑,代码少,可读性较强。其实这与在C51中定义BIT 变量类型效果是一样的。后面的1,2等数代表这个标志位所占的BIT 数。一般如果是1,表明这个标志位只有两种状态,如SUSPEND,只有SUSPEND / NO SUSPEND;如果是2,则最多可以表示四种状态,如CONTROL_STATE,有 TRANSMIT / RECIEVE / IDLE 三种。
|
|