ARMベース・システムLSI開発の事例研究 ――CPUの選択,バス構成,グラフィックス処理やビデオ表示制御の取り扱い

山崎尊永

tag: 組み込み

技術解説 2006年7月27日

●○● Column ●○●
ARM926コアの動作設定

 ARM926コアには,TCMやキャッシュ・メモリ,MMUが内蔵されており,システムの立ち上げ時にはそれらの設定が必要です.この設定は,コア内のシステム制御コプロセッサ(CP15)レジスタを介して行います.CP15レジスタは16本あり,非常に多くの動作設定を行えます(図A-1)

 リセット立ち上げ時の手順(スタートアップ・ルーチン処理)の例を以下に示します.

  1. 処理モードごとのスタック・ポインタの設定
  2. ベクタ・エリアやエンディアンなどのCPU基本設定(c1レジスタ).このとき,命令キャッシュ,データ・キャッシュ,MMUは無効にしておく
  3. 基本ハードウェア初期化設定 (クロックてい倍,外部バス制御の設定など)
  4. ITCM/DTCMの設定(c9レジスタ)
  5. MMUの変換テーブル(セクション記述子)をメモリ上に作成
  6. MMUの設定(c2レジスタ,c3レジスタ)
  7. 命令キャッシュ,データ・キャッシュ,MMUを有効化(c1レジスタ)
  8. データ・キャッシュ,ライト・バッファのクリーンアップ(c7レジスタ)
  9. 必要があれば(Cコンパイラ関係),RAM上のbssセクション(初期値なし変数エリア)のクリア
  10. 必要があれば(Cコンパイラ関係),RAM上のdataセクション(初期値付き変数エリア)へのROMからのコピー
  11. メイン・プログラム(main( ))へのジャンプ

 CPU内蔵LSIの機能検証の際には,上記に示したような立ち上げ動作もチェックするので,LSI設計者や検証エンジニアもスタートアップ・ルーチンを作成する必要があります.ARMコアのLSIを設計する場合,CPUそのものの検証は終わっており,個々の命令動作の検証は不要なので,LSIの機能検証用プログラムはC言語を用いて簡単に作成できますが,スタートアップ・ルーチンはアセンブラで記述するので,その習得も必要です.

レジスタ名
リード動作
リード動作
c0
IDコード
禁止
キャッシュ・タイプ
禁止
TCMステータス
禁止
c1
CPU制御
c2
変換テーブル・ベース・アドレス
c3
ドメイン・アクセス制御
c4
(リザーブ)
c5
データ・フォルト・ステータス
命令フォルト・ステータス
c6
フォルト・アドレス
c7
キャッシュ動作
c8
禁止
TLB動作
c9
キャッシュ・ロックダウン
c10
TCM領域
c11
TLBロックダウン
c12
(リザーブ)
c13
(リザーブ)
高速コンテキスト・スイッチ拡張プロセスID
c14
コンテキストID
c15
テスト用

(a)CP15レジスタ

f11_01.gif
(b)アクセス命令

図A-1 システム制御コプロセッサ(CP15)レジスタ
CP15レジスタはmcr命令とmrc命令でアクセスする.各フィールドの指定方法は,アクセス対象とアクセス方法によって個別に定められている.詳細は英国ARM社の「ARM926EJ-S Technical Reference Manual」を参照のこと.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日