私は主に自動車ネットワーク設計を扱うソフトウェア会社の部門で働いています。ネットワーク プロトコル スタックは、主に C で記述します。最近、Freescale の HC12 コントローラを使用する必要のあるプロジェクトを任されました。最初に作成されたプロトコル スタックは、バンクされていない RAM と、バンクされているフラッシュとバンクされていないフラッシュの両方の使用をサポートしていました。私に割り当てられたプロジェクトでは、顧客は非バンク RAM の代わりにバンク RAM を使用することを要求しています (理由は不明です)。このプロジェクトの開発に取り組んでいるときに、far ポインターを使用してバンク RAM にアクセス (読み取り/書き込み) できることに気付きました。
私の質問は、far ポインターを使用してバンク RAM にアクセスしたときに、ライブラリ コードのサイズが 10k バイトも増加したことです。これは正常ですか?私が使用しているコンパイラ (codewarrior) のリファレンス マニュアルでは、通常のポインターのサイズが 2 バイトであるのに対し、far ポインターのサイズは 3 バイトであると記載されています。この余分な 1 バイトが、コード サイズに大きな違いをもたらすのでしょうか? バンクされた RAM にアクセスできる far ポインターの使用を含まない他の方法はありますか?
私の質問に対する有益な回答をいただければ幸いです。