(toppers-users 2931) Re: RSK-M16C-62P(ルネサステクノロジ)簡易パッケージについて

kominami yasuo ykominami @ nifty.com
2009年 4月 15日 (水) 10:45:31 JST


岩森さん、はじめまして。

小南と申します.

岩森世司博 さんは書きました:
> 初めて投稿させていただきます。
> 岩森と申します。
> 
> RTOS の勉強のため、とりあえずRSK-M16C-62P(ルネサステクノロジ)簡易パッ 
> ケージをダウンロードして、target_user.txt で示されている手順に従ってビル 
> ドしてみたのですが以下の Warning が発生してしまいます。
> 深刻な Warning ではないようなのでこのままでも大丈夫なのかもしれません 
> が、何分、初心者ですのでアドバイスをいただけると助かります。
> 
私は最近hsb16c29_tm(北斗電子)を使っています.
こちらの方でも同じWarningが発生します.

岩森さんが示されたWarningは無視して構わないものです。

kernelプロジェクトをビルドした時のWarningは、サービスコールの
パラメータの値をチェックするためのマクロの一つで発生しています.
これは引数に渡された値が、(サービスコールが想定している)範囲内
に収まっているかチェックするマクロです.
あきらかにおかしいと言えるほど大きい値でないかをチェックしてい
るところです。
このマクロの調べ方では、m16c(のコンパイラ)でコンパイルする
時には常に真であるというのがWarningの意味です.
エラーチェックの一部が、m16cでは意味のない(調べても常に真に
なる)ということです。
いくつかあるエラーチェックのうちの一つであり、サービスコールの
実行に致命的な影響をあたえるわけではありません。

また、sample1の方も、far pointerのつもりかもしれないけれども
near pointerにキャストされてという意味です.

far pointer, near pointerの意味はここでは省略しますが、その
ポインタでどれぐらいの範囲を指すことが出きるかということが違い
ます。
これも、sample1.cでの使い方では問題ないことです。

これらのWarningは主に32ビットプロセッサ、16ビットプロセッサの
違いにより発生しています.
#より正確には、それぞれのCPUでのCコンパイラの実装によります。

TOPPERSのカーネルのソースやsampleなどの周辺で、32ビット、16
ビットのどちらに対しても共通のソースを用いる部分で、致命的では
ないが、その違いを吸収しきれていない、あるいは吸収しようとする
とかえってソースコードの可読性を落としてしまう箇所だと言えます.



-- 
小南靖雄 ykominami @ nifty.com