|
我今天也遇到了同樣的問題,IMPROPER FIXUP,研究了半天終于解決了,原來這個問題是因為Keil4和Keil5不支持bdata的問題導(dǎo)致的,所以退回Keil2,新建工程,加入文件,重新編譯就OK了,你這個上面也有bdata所以也可以用我的辦法來成功解決的.
參考資料:
The variables ibase and bary are bit-addressable. Therefore, the individual bits of these variables may be directly accessed and modified. Use the sbit keyword to declare new variables that access the bits of bdata variables. For example:
sbit mybit0 = ibase ^ 0; /* bit 0 of ibase */
sbit mybit15 = ibase ^ 15; /* bit 15 of ibase */
sbit Ary07 = bary[0] ^ 7; /* bit 7 of bary[0] */
sbit Ary37 = bary[3] ^ 7; /* bit 7 of bary[3] */
The above example represents declarations, not assignments to the bits of the ibase and bary bdata variables. The expression following the carat symbol ('^') in the example specifies the position of the bit to access with this declaration. This expression must be a constant value.
The range depends on the type of the base variable included in the declaration. The range is:
0-7 for char and unsigned char, 0-15 for int, unsigned int,
short, and unsigned short, and
0-31 for long and unsigned long.
并沒有定義bit類型的bdata。因此定義成char。
OFDM_PHY_ext char bdata bLib_RxPlcEnd;
OFDM_PHY_ext char bdata RX_BUSY;
OFDM_PHY_ext char bdata TX_BUSY;
Comm_ext char bdata bCommRxEnd;
Comm_ext char bdata bCommRxstart; |
|