カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10811012
FAQカテゴリ(大) その他
最終更新日 2016-07-19

質問内容

icfファイルで外部RAM空間の設定をしましたがチップセレクト信号の設定はどこで設定すれば良いのでしょうか?

回答内容

1. 先に、icfファイルとデバイスのチップセレクトの関連について整理します

(1) icfファイル(およびILINKリンカ)は、プログラムやデータを、メモリ空間上のどこに配置するかを設定し、実際に配置し、オブジェクトファイル(.out)ファイルを作成します。

(2) チップセレクト信号は、プログラムの実行位置やアクセスしているデータのアドレスにしたがって、ハードウェアより自動的に作成されますが、通常のマイコンでは、そのための初期設定が必要です。

(3) EWARMには、上記 (1) に続いて (2) を自動的にを自動的に行うしくみはありません。

 

2. 外部RAMの使用するための設定

(1) 外部RAM以外にフラッシュROMを持つシステムの場合、外部RAMアクセス用のチップセレクト信号を発生させるための初期化関数を実装し、これを実行後、RAMを初期化すれば良いことになります。

(2) フラッシュROMは使用せず、ICEから直接プログラムやデータをダウンロードする場合 (この場合、ターゲットはスタンドアロンで動きまませんが)ICEから直接、「外部RAMアクセス用のチップセレクト信号を発生させるための初期化」を行う必要があります。また、この初期化関数は、(1) と同じくicfファイルで設定したマッピングを意識したものになります。

実際には、C-SPYデバッガに付属する、C-SPYマクロのexecUserPreloadという関数を使用します。この関数で、icfで設定したメモリアドレスで、チップセレクト信号が生成されるように、ハードウェアの設定を行います。 

C-SPYマクロ、execUserPreloadについては、

EWARMヘルプメニュー > C-SPYデバッグガイド
パート3. 高度なデバッグ
C-SPYマクロ

また、スタックポインタなどのレジスタの初期設定ですが、プログラムカウンタ以外は、ダウンロードしたプログラム側で設定することができますが、C-SPYマクロでも行うこともできます。

参考資料URL