[H8-ML(3251)] Re:割込みによるシリアル通信について(ビットフィールド話)
From: Sawaguchi Yuji <issho21@xxxxxxxxxx>
Date: 2003年05月25日(日)13時43分28秒
澤口@一升金です。

hamayanさんの<200305250204.h4P246w11475@xxxxxxxxxxxxxxxxxxxxx>から
>コンパイラの問題なら、他にも有るし、それはコンパイラメーカーに直
>してもらえば良いだけの話では?
うーん、これは「問題」ではなくて、例えば int のサイズがコンパイラ
毎に違うとか、ビッグエンディアン、リトルエンディアンと同じ、コンパ
イラ仕様そのものですから、コンパイラメーカーが直す義理は無いと思い
ます。ほとんど実行が期待できないわけですから、「良いだけの話」とい
うのはちょっと・・・。

問題とすべきところは、C言語ではもともとメモリの扱いは抽象化されてい
るのに、それを実ハードの物理イメージと無条件に同一視するというプロ
グラマの設計方針ですね。
設計論的には当然、物理層とトランスポート層は区分けされるべきなんで、
そうしないと、例えばプロトコルの移植などにはえらく苦労します。
今回はたまたまメーカーがヘッダを供給しているし、内蔵周辺ですから差
異は目立ちませんが、一般的に外付け周辺用のドライバを作るときはデバ
イス自体がバス幅を8bitとか16bitに変更できたり、LSBとMSBの物理位置が
CPUとは異なっていたりします。
ポーティングを頻繁に行う場合はビット位置をマクロ定義して、ついでに
MSBとLSBの反転やらなにやらもマクロで定義した方が作業が速いのは確か
なようです。
日立の
スレッド概略
[3245(R)](起点)
 └[3248(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]