In article <NN1516109AA7499998150.020120180447@xxxxxxxxxxxxxxxxxxx>,
<wakky@xxxxxxxxxxxxxxxxxxx> wrote:
>寺脇です。
>
>> #define SSR (*(volatile unsigned char *)0xFFFFB4)
>アドレスの解決は全てリンカで行っているので、この形式には
>なっていません。上記の形式に書き換えが必要というわけですね。
あれ?
extern volatile unsigned char SSR;
なんでしょうか。
だとすれば元記事のコード生成は全く正しいと思いますが。
SSRレジスタのビットの一つをクリアすることを期待していたのだとして
旧版のgccで期待通り動いていたとしたらそっちがおかしいと思いますけれど。
しかし、だとしても、
#define BitClr(reg,bit) asm("bclr %0,@%c1:8" : : "i" ( bit ), "g" (®))
とすれば
; #APP
bclr #2,@_SSR:8
; #NO_APP
というコードが生成されます。もちろんこの場合SSRが0xFFFF00以降に
配置されている必要がありますが。
--
----_--__---_-_-_-__--_-__-__---_-_----_--_-_---_---_----
_/ TANAKA Yoshitomo _//
/ Suginami-ku Tokyo, Japan _// serow@xxxxxxxxxxxxxxxxxx