ターゲットを実行するプラットフォームがセグメント形式のメモリの場合、VA(変数アドレス)やアプリケーションコードに影響を与えるか?あるいはターゲット開発の際に特殊な実装が必要か?


いいえ。特別な計算やセグメントにあわせるようなアプリケーションコードの差異はありません。
ターゲットのメモリがセグメント化されている場合、ワークベンチもターゲットのカーネルも、セグメントのサイズの情報を持っています(ターゲットの場合、ITGTDEF_SEGMENT の値)。
ターゲットをコンパイルするときは、セグメントの有無を吸収するようなマクロが利用されます。これは、メモリのポインタが次のセグメントを指すようにすべきかどうかをチェックするものです。このため、ターゲットを移植する場合、セグメント化されていてもメモリを連続したものとして(透過的に)扱うことができます。
ただし、セグメントが存在する場合、境界チェックのための演算が必ず行われますので実行速度は低下します。
最終更新:
2008-08-01 13:48
改訂:
1.0
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ