cortex-m4 テクニカルリファレンス...

125
Copyright © 2009, 2010 ARM Limited. All rights reserved. ARM DDI 0439CJ (ID050813) Cortex ® -M4 リビジョン r0p1 テクニカルリファレンス マニュアル こ こに記載される内容は英語原文よ り抄訳されたものです。 抄訳が原文に 相違する場合はすべて原文が優先し ます。 また、 英語版の改訂版が発行さ れた場合には、 最新の情報は英語版を ご覧 く だ さ い。

Upload: others

Post on 28-Oct-2019

97 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

Cortex®

-M4 リビジ ョ ン r0p1

テクニカルリファレンス マニュアル

Copyright © 2009, 2010 ARM Limited. All rights reserved.ARM DDI 0439CJ (ID050813)

ここに記載される内容は英語原文より抄訳されたものです。 抄訳が原文に相違する場合はすべて原文が優先します。 また、 英語版の改訂版が発行された場合には、 最新の情報は英語版をご覧く ださい。

Page 2: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

Cortex-M4テクニカルリファレンス マニュアル

Copyright © 2009, 2010 ARM Limited. All rights reserved.

リ リース情報

本書には次の変更が加えられています。

著作権

® または™ の付いた用語と ロゴは、 本著作権条項で特に明記されていない限り、 EU および他諸国におけるARM® Limited の登録商標または商標です。 本書に記載されている他の商標その他の名前は、 対応する所有者の商標の場合があ り ます。

本書に記載されている情報の全部または一部、 ならびに本書で紹介する製品は、 著作権所有者の文書による事前の許可を得ない限り、 転用 ・ 複製するこ とを禁じます。

本書に説明されている製品は、 継続的に開発と改良が行われています。 本書に含まれている製品およびその利用方法についての情報は、 ARM Limited が利用者の利益のために提供するものです。 したがって当社では、 製品の商品性または目的への適合性を含め、 黙示的 ・ 明示的に関係なく一切の保証を行いません。

本書は、 本製品の利用者をサポートするこ とだけを目的と しています。 本書に記載されている情報の使用、 情報の誤り または省略、 あるいは本製品の誤使用によって発生したいかなる損失や損害についても、ARM Limited は一切責任を負いません。

本書における ARM とい う用語は、 「ARM、 または該当する場合にはその子会社を含む」 とい う意味で使用されています。

本書に記載されている情報の一部は、 IEEE 規格 754-2008、 『IEEE Standard for Binary Floating-Point Arithmetic』 に基づいています。 IEEE は、 本書に記載されている方法による設置および使用から生じるいかなる問題についても責任を負いません。

機密保持ステータス

本書は非機密扱いであ り、 本書を使用、 複製、 および開示する権利は、 ARM および ARM が本書を提供した当事者との間で締結した契約の条項に基づいたライセンスの制限によ り異なり ます。

製品ステータス

本書には 終情報 (完成製品に関する情報) が記載されています。

Web アドレス

http://www.arm.com

改訂履歴

日付 変更箇所 公開の有無 変更内容

2009 年 12 月 22 日 A 公開版、 限定アクセス r0p0 用の 初のリ リース

2010 年 3 月 2 日 B 公開 r0p0 用の 2 番目のリ リース

2010 年 6 月 29 日 C 公開 r0p1 用の 初のリ リース

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. iiID050813 Non-Confidential

Page 3: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

目次Cortex-M4 テクニカルリファレンス マニュアル

序章本書について .............................................................................................................. ixご意見 ・ ご質問 ......................................................................................................... xii

第 1 章 はじめに1.1 このプロセッサについて ......................................................................................... 1-21.2 機能 .......................................................................................................................... 1-31.3 インタフェース ....................................................................................................... 1-41.4 構成可能なオプシ ョ ン ............................................................................................. 1-51.5 製品説明書 ............................................................................................................... 1-61.6 製品リビジ ョ ン ....................................................................................................... 1-9

第 2 章 機能の説明2.1 機能について ........................................................................................................... 2-22.2 インタフェース ....................................................................................................... 2-5

第 3 章 プログラマモデル3.1 プログラマモデルについて ..................................................................................... 3-23.2 動作と実行のモード ................................................................................................ 3-33.3 命令セッ トの概要 .................................................................................................... 3-43.4 システム アドレスマップ ...................................................................................... 3-153.5 ライ トバッファ ..................................................................................................... 3-183.6 排他モニタ ............................................................................................................. 3-193.7 ビッ トバンド ......................................................................................................... 3-203.8 プロセッサコア レジスタの概要 ........................................................................... 3-223.9 例外 ........................................................................................................................ 3-24

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. iiiID 0 5 0 8 1 3 Non-Confidential

Page 4: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

目次

第 4 章 システム制御4.1 システム制御について ............................................................................................. 4-24.2 レジスタの概要 ....................................................................................................... 4-34.3 レジスタの説明 ....................................................................................................... 4-5

第 5 章 メモリ保護ユニッ ト5.1 MPU について ......................................................................................................... 5-25.2 MPU の機能の説明 .................................................................................................. 5-35.3 MPU のプログラマモデル ....................................................................................... 5-4

第 6 章 ネスト型ベクタ割り込みコン ト ローラ6.1 NVIC について ......................................................................................................... 6-26.2 NVIC の機能の説明 .................................................................................................. 6-36.3 NVIC のプログラマモデル ....................................................................................... 6-4

第 7 章 浮動小数点ユニッ ト7.1 FPU について .......................................................................................................... 7-27.2 FPU の機能の説明 ................................................................................................... 7-37.3 FPU のプログラマモデル ........................................................................................ 7-9

第 8 章 デバッグ8.1 デバッグについて .................................................................................................... 8-28.2 AHB-AP について .................................................................................................... 8-68.3 フラッシュパッチおよびブレークポイン トユニッ ト (FPB) について .................... 8-9

第 9 章 データウォッチポイン トおよびト レースユニッ ト9.1 DWT について ......................................................................................................... 9-29.2 DWT の機能の説明 .................................................................................................. 9-39.3 DWT のプログラマモデル ....................................................................................... 9-4

第 10 章 計装トレースマクロセル ユニッ ト10.1 ITM について ......................................................................................................... 10-210.2 ITM の機能の説明 .................................................................................................. 10-310.3 ITM のプログラマモデル ....................................................................................... 10-4

第 11 章 トレースポート インタフェースユニッ ト11.1 Cortex-M4 TPIU について ..................................................................................... 11-211.2 TPIU の機能の説明 ................................................................................................ 11-311.3 TPIU のプログラマモデル ..................................................................................... 11-5

付録 A リビジ ョ ン

用語集

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. ivID 0 5 0 8 1 3 Non-Confidential

Page 5: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

表目次Cortex-M4 テクニカルリファレンス マニュアル

改訂履歴 .......................................................................................................................................... ii表 1-1 オプシ ョ ン実装コンポーネン ト .................................................................................................. 1-5表 3-1 Cortex-M4 の命令セッ トの概要 .................................................................................................. 3-4表 3-2 Cortex-M4 の DSP 命令セッ トの概要 ......................................................................................... 3-9表 3-3 メモリ領域 ................................................................................................................................ 3-16表 4-1 システム制御レジスタ ................................................................................................................ 4-3表 4-2 ACTLR のビッ ト割り当て .......................................................................................................... 4-5表 4-3 CPUID のビッ ト割り当て ........................................................................................................... 4-6表 4-4 AFSR のビッ ト割り当て ............................................................................................................. 4-7表 5-1 MPU レジスタ ............................................................................................................................. 5-4表 6-1 NVIC レジスタ ............................................................................................................................ 6-4表 6-2 ICTR のビッ ト割り当て .............................................................................................................. 6-5表 7-1 FPU の命令セッ ト ...................................................................................................................... 7-4表 7-2 デフォルト NaN 値 ..................................................................................................................... 7-6表 7-3 QNaN と SNaN の処理 ............................................................................................................... 7-7表 7-4 Cortex-M4 (FPU 付き) の浮動小数点システムレジスタ .......................................................... 7-9表 8-1 Cortex-M4 ROM テーブルの識別値 ............................................................................................ 8-3表 8-2 Cortex-M4 ROM テーブルのコンポーネン ト .............................................................................. 8-4表 8-3 SCS 識別値 ................................................................................................................................. 8-5表 8-4 デバッグレジスタ ....................................................................................................................... 8-5表 8-5 AHB-AP レジスタの概要 ............................................................................................................ 8-6表 8-6 CSW のビッ ト割り当て .............................................................................................................. 8-7表 8-7 FPB レジスタの概要 ................................................................................................................. 8-10表 9-1 DWT レジスタの概要 .................................................................................................................. 9-4表 10-1 ITM レジスタの概要 .................................................................................................................. 10-4表 10-2 ITM_TPR のビッ ト割り当て ..................................................................................................... 10-5表 11-1 TPIU レジスタ .......................................................................................................................... 11-5表 11-2 TPIU_ACPR のビッ ト割り当て ................................................................................................ 11-6表 11-3 TPIU_FFSR のビッ ト割り当て ................................................................................................. 11-7

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. vID050813 Non-Confidential

Page 6: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

表目次

表 11-4 TPIU_FFCR のビッ ト割り当て ................................................................................................ 11-8表 11-5 TRIGGER のビッ ト割り当て .................................................................................................... 11-9表 11-6 統合 ETM データのビッ ト割り当て .......................................................................................... 11-9表 11-7 ITATBCTR2 のビッ ト割り当て ............................................................................................... 11-10表 11-8 統合 ITM データのビッ ト割り当て ......................................................................................... 11-11表 11-9 ITATBCTR0 のビッ ト割り当て ............................................................................................... 11-12表 11-10 TPIU_ITCTRL のビッ ト割り当て ........................................................................................... 11-12表 11-11 TPIU_DEVID のビッ ト割り当て ............................................................................................. 11-13表 A-1 A 版 ............................................................................................................................................. A-1表 A-2 A 版と B 版の相違点 ................................................................................................................... A-1表 A-3 B 版と C 版の相違点 ................................................................................................................... A-1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. viID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 7: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. viiID050813 Non-Confidential

図目次Cortex-M4 テクニカルリファレンス マニュアル

図 2-1 Cortex-M4 のブロック図 ............................................................................................................. 2-2図 3-1 システム アドレスマップ ......................................................................................................... 3-15図 3-2 ビッ トバンドのマッピング ....................................................................................................... 3-21図 3-3 プロセッサのレジスタセッ ト ................................................................................................... 3-22図 4-1 ACTLR のビッ ト割り当て .......................................................................................................... 4-5図 4-2 CPUID のビッ ト割り当て ........................................................................................................... 4-6図 4-3 AFSR のビッ ト割り当て ............................................................................................................. 4-7図 6-1 ICTR のビッ ト割り当て .............................................................................................................. 6-4図 7-1 FPU のレジスタバンク ............................................................................................................... 7-3図 8-1 CoreSight の検出 ........................................................................................................................ 8-2図 8-2 CSW のビッ ト割り当て .............................................................................................................. 8-7図 10-1 ITM_TPR のビッ ト割り当て ..................................................................................................... 10-5図 11-1 TPIU のブロック図 ................................................................................................................... 11-3図 11-2 TPIU_ACPR のビッ ト割り当て ................................................................................................ 11-6図 11-3 TPIU_FFSR のビッ ト割り当て ................................................................................................. 11-7図 11-4 TPIU_FFCR のビッ ト割り当て ................................................................................................ 11-7図 11-5 TRIGGER のビッ ト割り当て .................................................................................................... 11-8図 11-6 統合 ETM データのビッ ト割り当て .......................................................................................... 11-9図 11-7 ITATBCTR2 のビッ ト割り当て ............................................................................................... 11-10図 11-8 統合 ITM データのビッ ト割り当て ......................................................................................... 11-11図 11-9 ITATBCTR0 のビッ ト割り当て ............................................................................................... 11-11図 11-10 TPIU_ITCTRL のビッ ト割り当て ........................................................................................... 11-12図 11-11 TPIU_DEVID のビッ ト割り当て ............................................................................................. 11-13図 11-12 TPIU_DEVTYPE のビッ ト割り当て ....................................................................................... 11-14

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 8: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

序章

本章では、 Cortex-M4 テクニカルリ ファレンス マニュアル (TRM) の概要を紹介します。本章は次のセクシ ョ ンで構成されています。

• 「本書について」 (ページ ix)

• 「ご意見 ・ ご質問」 (ページ xii)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. viiiID050813 Non-Confidential

Page 9: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

序章

本書について

本書は、 Cortex-M4 プロセッサ用のテクニカルリ ファレンス マニュアルです。

製品リビジ ョ ンステータス

rnpn 識別子は、 本書に記載されている製品のリ ビジ ョ ンステータスを示しており、それぞれの意味は次のとおりです。

rn 製品が大幅に修正されたこ とを示しています。

pn 製品に小さな修正または変更が加えられたこ とを示しています。

対象読者

本書は、 Cortex-M4 プロセッサをベース と したシステム オンチップ (SoC) デバイスの実装を計画しているシステム設計者、 システムインテグレータ、 検証技術者、 ソフト ウェアプログラマを対象と しています。

本書の使用法

本書は以下の章に分かれています。

第 1 章 はじめに

プロセッサのコンポーネン トおよび製品説明書について説明します。

第 2 章 機能の説明

プロセッサの機能について説明します。

第 3 章 プログラマモデル

プロセッサのレジスタセッ ト、 動作モード、 その他プロセッサのプログラ ミ ングに関する情報について説明します。

第 4 章 システム制御

システム制御用のレジスタおよびプログラマモデルについて説明します。

第 5 章 メモ リ保護ユニッ ト

メモ リ保護ユニッ ト (MPU) について説明します。

第 6 章 ネス ト型ベクタ割り込みコン ト ローラ

割り込みの処理と制御について説明します。

第 7 章 浮動小数点ユニッ ト

浮動小数点ユニッ ト (FPU) について説明します。

第 8 章 デバッグ

プロセッサコアのデバッグおよびテス トについて説明します。

第 9 章 データウォ ッチポイン トおよびト レースユニッ ト

データウォ ッチポイン トおよびト レース (DWT) ユニッ トについて説明します。

第 10 章 計装ト レースマクロセル ユニッ ト

計装ト レースマクロセル (ITM) ユニッ トについて説明します。

第 11 章 ト レースポート インタフェースユニッ ト

ト レースポート インタフェースユニッ ト (TPIU) について説明します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. ixID050813 Non-Confidential

Page 10: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

序章

付録 A リ ビジ ョ ン

本書の各版における技術的な変更点について説明します。

用語集 本書で使用されている用語の定義について説明します。

表記規則

本書では次の表記規則が採用されています。

• 「書体の一般的な規則」

書体の一般的な規則

本書で使用されている書体の一般的な規則は次のとおりです。

斜体 重要な注釈の強調、 特別な用語の初出時、 本書内での相互参照と引用に使用されます。

太字 メニュー名などのインタフェース要素を強調するために太字が使用されます。 信号名を示すためにも使用されています。 また、 必要に応じて説明表の用語にも太字が使用されています。

monospace コマンド、 ファ イル名、 プログラム名、 ソースコードなどの、キーボードから入力可能なテキス ト を示しています。

monospace コマンドまたはオプシ ョ ンに使用可能な略語を示しています。 コマンドやオプシ ョ ンの名前を全部入力する代わりに、 下線部分のテキス トだけを入力してこれらを指定できます。

monospace italic 具体的な値に置き換えられる引数を示しています。

monospace サンプルコード以外で使用されている場合、 言語のキーワードを示しています。

< および > コードまたはコード片の中で不等号の括弧で囲まれている部分は、 アセンブラ構文内で置き換え可能なこ とを示しています。 次に例を示します。

ADD Rd, Rn, <op2>

参照資料

このセクシ ョ ンでは、 ARM Limited やサードパーティが発行している出版物を紹介します。

ARM ドキュ メン トは、 Infocenter(http://infocenter.arm.com) でご覧になれます。

ARM の刊行物

本書には、 この製品に固有の情報が記載されています。 他の関連情報については、以下の出版物を参照して下さい。

• ARMv7-M アーキテクチャ リ ファレンスマニュアル (ARM DDI 0403)

• ARM Cortex-M4 統合および実装マニュアル (ARM DII 0239)

• ARM ETM-M4 テクニカルリ ファレンス マニュアル (ARM DDI 0440)

• ARM AMBA® 3 AHB-Lite プロ ト コル (v1.0) (ARM IHI 0033)

• ARM AMBA™ 3 APB プロ ト コル仕様 (ARM IHI 0024)

• ARM CoreSight™ コンポーネン ト テクニカルリ ファレンス マニュアル (ARM DDI 0314)

• ARM デバッグインタフェース v5、 アーキテクチャ仕様 (ARM IHI 0031)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. xID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 11: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

序章

その他の刊行物

このセクシ ョ ンでは、 サードパーティが発行している関連出版物を紹介します。

• IEEE 規格 『Test Access Port and Boundary-Scan Architecture 』 1149.1-2001 (JTAG)

• IEEE 規格 『IEEE Standard for Binary Floating-Point Arithmetic』 754-2008

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. xiID050813 Non-Confidential

Page 12: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

序章

ご意見 ・ ご質問

ARM では、 製品と本書に関するご意見 ・ ご質問などをお待ちしており ます。

製品に関するご意見

本製品に関するご意見 ・ ご質問などがございましたら、 次の情報と と もに製品購入元までご連絡下さい。

• 製品名

• 製品のリ ビジ ョ ンまたはバージ ョ ン

• できるだけ詳細な説明。 該当する場合には、 現象や診断手順もご記載下さい。

本書に関するご意見

内容に関してのご意見は、 次の情報をご記載のうえ、 電子メールで [email protected] へお寄せ下さい。

• 題名

• 文書番号 (ARM DDI 0439C)

• ご意見のあるページ番号

• ご意見についての簡潔な説明

補足または改善すべき点についての一般的なご意見もお待ちしており ます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. xiiID050813 Non-Confidential

Page 13: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 1 章 はじめに

本章では、 プロセッサとその命令セッ トの概要を紹介します。 本章は次のセクシ ョ ンで構成されています。

• 「このプロセッサについて」 (ページ 1-2)

• 「機能」 (ページ 1-3)

• 「インタフェース」 (ページ 1-4)

• 「構成可能なオプシ ョ ン」 (ページ 1-5)

• 「製品説明書」 (ページ 1-6) .

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-1ID050813 Non-Confidential

Page 14: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

1.1 このプロセッサについて

Cortex-M4 プロセッサは、 少ないゲート数、 短い割り込みレイテンシ、 低コス トのデバッグの特徴を持つ低電力プロセッサです。 Cortex-M4 (FPU 付き) は Cortex-M4 プロセッサと同じ機能を持ち、 浮動小数点算術演算機能を含むプロセッサです(第 7 章 浮動小数点ユニッ ト を参照)。 どちらのプロセッサも、 高速な割り込み応答機能を要求する組み込み用途に適しています。

本書を通じて、 Cortex-M4 とい う用語は、 特に記載がなければ Cortex-M4 とCortex-M4 (FPU 付き) の両方のプロセッサを指して使用されています。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-2ID050813 Non-Confidential

Page 15: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

1.2 機能

Cortex-M4 プロセッサは次の部分で構成されます。

• プロセッサコア

• ネス ト型ベクタ割り込みコン ト ローラ (NVIC)。 NVIC は密接にプロセッサコアに統合されているため、 割り込み処理レイテンシが短縮されています。

• 複数のハイパフォーマンス バスインタフェース

• 次のよ うなオプシ ョ ン機能を持つ、 低コス トのデバッグソ リ ューシ ョ ン

— ブレークポイン ト と コードへのパッチの実装

— ウォッチポイン ト、 ト レース、 システムプロファイ リ ングの実装

— printf() 形式のデバッグのサポート

— ト レースポート アナライザ (TPA) とのブリ ッジ

• メモ リ保護ユニッ ト (MPU) オプシ ョ ン

• Cortex-M4 (FPU 付き) のみ、 浮動小数点 (FPU) ユニッ ト

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-3ID050813 Non-Confidential

Page 16: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

1.3 インタフェース

プロセッサには次の外部インタフェースがあ り ます。

• 複数のメモ リおよびデバイス バスインタフェース

• ETM インタフェース

• ト レースポート インタフェース

• デバッグポート インタフェース

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-4ID050813 Non-Confidential

Page 17: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

1.4 構成可能なオプショ ン

Cortex-M4 実装の構成には、 表 1-1 に示す次のオプシ ョ ンコンポーネン ト を含めることができます。

注 ト レース機能は、 次の組み合わせでのみ構成可能です。

• ト レース機能なし

• ITM と DWT

• ITM、 DWT、 ETM

• ITM、 DWT、 ETM、 HTM

DWT で提供される機能は個別に構成可能です。

表 1-1 オプシ ョ ン実装コンポーネン ト

コンポーネン ト 説明

MPU 第 5 章 メモ リ保護ユニッ ト を参照

FPB 第 8 章 デバッグを参照

DWT 第 9 章 データウォッチポイン トおよびト レースユニッ ト を参照

ITM 第 10 章 計装ト レースマクロセル ユニッ ト を参照

ETM 『ETM-M4 テクニカルリ ファレンス マニュアル』を参照

AHB-AP 第 8 章 デバッグを参照

HTM インタフェース

「AHB ト レースマクロセル インタフェース」 (ページ 2-7) を参照

TPIU 第 11 章 ト レースポート インタフェースユニッ トを参照

WIC 「低電力モード」 (ページ 6-3) を参照

デバッグポート 「デバッグポート AHB-AP インタフェース」 (ページ 2-7) を参照

FPU 第 7 章 浮動小数点ユニッ ト を参照

ビッ トバンド 「ビッ トバンド」 (ページ 3-20) を参照

AHB の継続的な制御

「バスインタフェース」 (ページ 2-5) を参照

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-5ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 18: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

1.5 製品説明書

このセクシ ョ ンでは、 プロセッサの説明書、 設計フローとの関係、 および関連するアーキテクチャの標準とプロ ト コルについて説明します。

このセクシ ョ ンに記載されている説明書の詳細については、 「参照資料」 (ページ x)を参照して下さい。

1.5.1 説明書

Cortex-M4 の説明書は次のとおりです。

テクニカルリ ファレンス マニュアル

『テクニカルリ ファレンス マニュアル』 (TRM) には、 Cortex-M4 プロセッサの機能と、 動作に対する機能オプシ ョ ンの影響が記載されています。 設計フローのすべての段階で必要となり ます。 Cortex-M4 プロセッサの実装と統合の方法によっては、 TRM に記載されている動作の一部が適用されない場合があ り ます。 Cortex-M4 プロセッサのプログラ ミ ングに関してのお問い合わせ先は次のとおりです。

• 次の事項を決定するには、 実装者へお問い合わせ下さい。

— 実装のビルド構成

— プロセッサの実装前に統合が行われたか、 行われた場合はその内容

• 使用する SoC のピン構成を決定する場合は、 インテグレータにお問い合わせ下さい。

統合および実装マニュアル

『統合および実装マニュアル』 (IIM) には、 次の内容が記載されています。

• 利用可能なビルド構成オプシ ョ ンと、 それらのオプシ ョ ンの選択に関連する考慮点

• ビルド構成オプシ ョ ンでレジスタ転送レベル (RTL) を構成する方法

• プロセッサを SoC に統合する方法。 これには、 統合キッ トの説明と、 必要な統合を実現するよ うにマクロセルを構成するため、 インテグレータが固定する必要のあるピンについての説明が含まれています。

• プロセッサを設計に組み入れる方法。 これには、 基本設計のガイド ライン、 テス ト設計 (DFT) に関する情報、 およびネッ ト リ ス トの動的な検証をプロセッサで実行する方法についての説明が含まれています。

• 設計の統合と実装をサインオフする手順

ARM 製品の配布物には、 リ ファレンススク リプ ト と、 それらを使用して設計を実装する方法についての説明が含まれています。

EDA ツールのベンダから入手できる リ ファレンス手法の説明書は、 この IIM を補完するものです。

IIM は非公開書籍で、 ライセンスによってのみ入手できます。

ETM-M4 テクニカルリ ファレンス マニュアル

『ETM-M4 テクニカルリ ファレンス マニュアル』 (TRM) には、Cortex-M4 のエンベデッ ド ト レース マクロセルの機能と動作が記載されています。 設計フローのすべての段階で必要となり ます。 一般にETM-M4 は、 単一のマクロセルと して実装される前に、 Cortex-M4 プロセッサと統合されます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-6ID050813 Non-Confidential

Page 19: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

Cortex-M4 ユーザガイ ド リ ファレンスマニュアル

このドキュ メン トには、 ARM パートナーが構成でき、 ARM Cortex-M4プロセッサのユーザガイ ドに含めるこ とができる参照資料が記載されています。 一般に、 次のよ うに対応させるこ とができます。

• この参照資料の各章が、 ユーザガイ ドのセクシ ョ ンに対応する。

• この参照資料の各ト ップレベル セクシ ョ ンが、 ユーザガイ ドの章に対応する。

ただし、 ARM がこの資料を提供する と きのライセンス契約の条件によっては、 この資料をどのよ うに編成するこ と もできます。

1.5.2 設計フロー

プロセッサは、 合成可能な RTL と して配布されます。 プロセッサを製品で使用する前に、 次の手順を実行する必要があり ます。

実装

実装者は RTL を構成し、 合成します。

統合 インテグレータは、 実装された設計を接続して SoC にします。 これには、 メモ リシステムおよびペリ フェラルへの接続も含まれます。

プログラ ミ ング

システムプログラマは、 プロセッサの構成と初期化に必要なソフ ト ウェアを開発し、 必要なアプリ ケーシ ョ ンソフ ト ウェアをテス ト します。

プロセスの各段階は、 それぞれ別の団体が行ってもかまいません。 実装と統合での選択は、 プロセッサの動作と機能に影響します。

MCU では多くの場合、 完全な設計を合成する前に、 1 つの設計チームがプロセッサを統合します。 または、 チームがプロセッサを自分たちだけで合成するか、 部分的に統合して、 マクロセルを生成し、 別のチームが統合するこ と もできます。

終的なデバイスの運用は、 次の要素に依存します。

ビルドの構成

実装者は、 RTL ソースファイルの事前処理方法に影響するオプシ ョ ンを選択します。 これらのオプシ ョ ンには通常、 1 つ以上の領域に影響するロジッ クを含めるかど うか、 大周波数、 および結果と して作成されるマクロセルの機能が含まれます。

構成入力

インテグレータは、 入力を特定の値に固定するこ とで、 プロセッサの機能の一部を構成します。 これらの構成は、 ソフ ト ウェア構成が行われる前の、 起動時の動作に影響します。 構成によ り、 ソフ ト ウェアで使用可能なオプシ ョ ンを制限するこ と もできます。

ソフ ト ウェア構成

プログラマは、 レジスタに特定の値をプログラムして、 プロセッサを構成します。 この操作は、 プロセッサの動作に影響を与えます。

注 本書には、 ビルド構成オプシ ョ ンに適用可能な実装定義の機能が記載されています。機能が含まれている と記載されている場合、 適切なビルドおよびピン構成オプシ ョンが選択されているこ とを意味します。 機能が稼働している / 可能である と記載されている場合、 その機能がソフ ト ウェアでも構成されているこ とを意味します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-7ID050813 Non-Confidential

Page 20: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

1.5.3 アーキテクチャとプロ ト コルの情報

プロセッサは、 次に示す各仕様に準拠、 またはこれらの仕様を実装します。

• 「ARM アーキテクチャ」

• 「バスアーキテクチャ」• 「デバッグ」• 「エンベデッ ド ト レース マクロセル」

本書は、 アーキテクチャ リ ファレンスマニュアル、 アーキテクチャ仕様、 プロ ト コル仕様、 および関連する外部標準を補完するものです。 これらのソースに記載されている情報は、 本書で繰り返し言及されていません。

ARM アーキテクチャ

プロセッサには、 ARMv7-M アーキテクチャプロファイルが実装されています。『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

バスアーキテクチャ

プロセッサには、 3 つのプライマ リ バスインタフェースが存在し、 AMBA 3 AHB-Lite プロ ト コルのバリ アン トが実装されています。 CoreSight 用のインタフェース と、 AMBA 3 APB プロ ト コルを使用する他のデバッグコンポーネン ト も実装されています。 次に示す仕様を参照して下さい。

• 『ARM AMBA 3 AHB-Lite プロ ト コル (v1.0)』

• 『ARM AMBA 3 APB プロ ト コル仕様』

デバッグ

プロセッサのデバッグ機能には、 ARM デバッグインタフェース アーキテクチャが実装されています。 『ARM デバッグインタフェース v5、 アーキテクチャ仕様』 を参照して下さい。

エンベデッ ド ト レース マクロセル

プロセッサの ト レース機能には、 ARM エンベデッ ド ト レース マクロセルアーキテクチャが実装されています。 『ARM エンべデッ ド ト レース マクロセルアーキテクチャ仕様』 を参照して下さい。

浮動小数点ユニッ ト

Cortex-M4 (FPU 付き) プロセッサには、 ARMv7-M アーキテクチャの一部であるFPv4-SP アーキテクチャで定義された単精度浮動小数点データ処理が実装されています。『ANSI/IEEE Std 754-2008, IEEE Standard for Binary Floating-Point Arithmetic』 に準拠した浮動小数点計算機能を使用できます。 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 および第 7 章 浮動小数点ユニッ ト を参照して下さい。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-8ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 21: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

はじめに

1.6 製品リビジ ョ ン

こ こでは、 製品リ ビジ ョ ン間の機能の相違点について説明します。

• 「r0p0 と r0p1 の機能的な違い」

1.6.1 r0p0 と r0p1 の機能的な違い

機能面の相違点の概要は、 次のとおりです。

• ウェイ ト ステートが挿入される転送中に、 継続的な AHB の制御を保証するための新しい実装オプシ ョ ン

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 1-9ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 22: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 2 章 機能の説明

本章では、 プロセッサとその外部インタフェースの概要を紹介します。 本章は次のセクシ ョ ンで構成されています。

• 「機能について」 (ページ 2-2)

• 「インタフェース」 (ページ 2-5)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 2-1ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 23: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

機能の説明

2.1 機能について

Cortex-M4 プロセッサの構造を、 図 2-1 に示します。

図 2-1 Cortex-M4 のブロック図

Cortex-M4 プロセッサは次の部分で構成されます。

• ゲート数の少ない、 割り込み処理レイテンシの短いプロセッサコア。 コアには次のものが含まれます。

— 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 で定義されているThumb 命令セッ トのサブセッ ト

— バンク付きスタ ッ クポインタ (SP)

— ハードウェア整数除算命令 SDIV と UDIV

— ハンド ラモード と スレッ ドモード

— Thumb 状態とデバッグ状態

— 割り込みレイテンシを短縮するための割り込み可能な継続命令 LDM、 STM、PUSH、 POP のサポート

— 割り込み処理ルーチン (ISR) への入退出のレイテンシを短縮するため、 自動的にプロセッサ状態を保存 / 復元

— ARMv6 のビッグエンディアン バイ ト不変およびリ トルエンディアン アクセスのサポート

— ARMv6 のアンアラインドアクセスのサポート

‡ ‡ ‡

‡ ‡

‡†

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 2-2ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 24: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

機能の説明

• Cortex-M4 (FPU 付き) には浮動小数点ユニッ ト (FPU) が搭載されており、 次の機能があり ます。

— 単精度 (C float) データ処理操作用の 32 ビッ ト命令

— 精度向上のための複合積和演算命令 (融合 MAC)

— 変換、 加算、 減算、 乗算 (オプシ ョ ンで累積付き)、 除算、 平方根のハードウェアでのサポート

— 非正規化とすべての IEEE 丸めモードのハードウェアでのサポート

— 32 本の専用の 32 ビッ ト単精度レジスタ。 16 本のダブルワード レジスタと しても使用可能です。

— 分離された 3 ステージのパイプライン

• ネス ト型ベクタ割り込みコン ト ローラ (NVIC)。 NVIC は密接にプロセッサコアに統合されているため、 割り込み処理レイテンシが短縮されています。 次の機能が含まれています。

— 外部割り込み。 数は 1 ~ 240 で構成可能です。

— 優先度ビッ ト 。 ビッ ト数は 3 ~ 8 で構成可能です。

— 割り込みの優先度を動的に再設定

— 優先度のグループ化。 これによ り、 横取りする割り込みレベルと横取り しない割り込みレベルを選択できるよ うにな り ます。

— 割り込みのテールチェインと後着をサポート。 これによ り、 割り込みと割り込みの間における状態の保存と復元のオーバヘッ ドなしで、 連続して割り込み処理が可能になり ます。

— プロセッサの状態は割り込み開始時に自動的に保存され、 割り込みからの復帰時には自動的に復元され、 命令のオーバヘッ ドは発生しません。

— (オプシ ョ ン) ウェークアップ割り込みコン ト ローラ (WIC)。 超低電力のス リープモードをサポート します。

• メモ リ保護ユニッ ト (MPU)。 メモ リ保護に使用されるオプシ ョ ンの MPU で、次の特徴があ り ます。

— 8 つのメモリ領域

— サブ領域ディセーブル (SRD) によ り、 メモリ領域を効率的に活用できます。

— バッ クグラウンド領域の許可によ り、 デフォルトのメモ リマップ属性を与えるこ とが可能

• バスインタフェース

— 3 つのアドバンス ト ハイパフォーマンス バスライ ト (AHB-Lite) インタフェース : ICode、 DCode、 システムバス インタフェース

— 専用ペリ フェラルバス (PPB)。 これはアドバンス ト ペリ フェラルバス(APB) インタフェースを基礎と しています。

— 不可分なビッ トバンド書き込みおよび読み出し操作を持つビッ トバンドのサポート

— メモ リ アクセスのアライ メン ト

— 書き込みデータをバッファするためのライ トバッファ

— マルチプロセッサシステム用の排他アクセス転送

• 低コス トのデバッグソ リ ューシ ョ ン。 次の機能が含まれています。

— メモ リマップされたデバイスへのアクセス、 コアがホールト したと きの内部コアレジスタへのアクセス、 および SYSRESETn がアサート中のデバッグ制御レジスタへのアクセスを含む、 システム内のすべてのメモ リおよびレジスタに対するデバッグアクセス

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 2-3ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 25: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

機能の説明

— シ リ アルワイヤ デバッグポート (SW-DP) またはシ リ アルワイヤ JTAG デバッグポート (SWJ-DP) デバッグアクセス

— (オプシ ョ ン) フラ ッシュパッチおよびブレークポイン ト (FPB) ユニッ トによる、 ブレークポイン トおよびコードへのパッチの実装

— (オプシ ョ ン) データウォッチポイン トおよびト レース (DWT) ユニッ トによる、 ウォッチポイン ト、 データ ト レース、 システムプロファイ リ ングの実装

— (オプシ ョ ン) 計装ト レースマクロセル (ITM) による、 printf() 形式のデバッグのサポート

— (オプシ ョ ン) ト レースポート インタフェースユニッ ト (TPIU)。 ト レースポート アナライザ (TPA) へのブリ ッジ用で、 シングルワイヤ出力 (SWO)モードが含まれます。

— (オプシ ョ ン) 命令ト レース用のエンベデッ ド ト レース マクロセル (ETM)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 2-4ID050813 Non-Confidential

Page 26: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

機能の説明

2.2 インタフェース

プロセッサには次の外部インタフェースが含まれます。

• 「バスインタフェース」• 「ETM インタフェース」 (ページ 2-7)

• 「AHB ト レースマクロセル インタフェース」 (ページ 2-7)

• 「デバッグポート AHB-AP インタフェース」 (ページ 2-7)

2.2.1 バスインタフェース

プロセッサには、 3 つの外部アドバンス ト ハイパフォーマンス バス (AHB)-Lite バスインタフェース と、 1 つのアドバンス ト ペリ フェラルバス (APB) インタフェースが含まれています。

• 「ICode メモ リ インタフェース」

• 「DCode メモ リ インタフェース」 (ページ 2-6)

• 「システムインタフェース」 (ページ 2-6)

• 「専用ペリ フェラルバス (PPB)」 (ページ 2-6)

プロセッサは、 ウェイ トが行われた転送中の制御情報の保持を除いて、 AMBA 3 仕様を満たしています。 AMBA 3 AHB-Lite プロ ト コルでは、 スレーブがウェイ ト状態を要求している場合、 マスタは次の場合を除いては転送タイプを変更できません。

• IDLE 転送時は、 マスタは転送タイプを IDLE から NONSEQ に変更できます。

• BUSY 転送で固定長バース トの場合、 マスタは転送タイプを BUSY から SEQへ変更できます。

• BUSY 転送でバース ト長が未定義の場合、 マスタは転送タイプを BUSY から任意の転送タイプへ変更できます。

プロセッサは、 ウェイ トが行われた転送中にアクセスタイプを SEQ または NONSEQから IDLE へ変更するこ とがあるため、 この定義を満たしていません。 また、 プロセッサはアドレスや他の制御情報を変更し、 それによって新しい位置へのアクセスを要求するこ とがあ り ます。 取り消された元のアドレスは再度要求できません。 この場合、 前のアクセスがウェイ ト状態で完了待ちであるために実行されていない転送は取り消されます。 これによって、 プロセッサは必要がな くなったアクセスを取り消し、 ウェイ ト状態のシステムでも割り込みレイテンシの短縮と高パフォーマンスを実現できます。

AMBA 3 仕様への完全な準拠が必要な場合は、 設計で AHB_CONST_CTRL パラ メータを 1 に設定するこ と もできます。 これによって、 ウェイ ト状態の応答中に転送が発行された場合、 その転送は取り消しや変更が行われず、 元の転送が実行されます。このパラ メータを設定する と、 ウェイ ト状態のシステムで割り込みや分岐のレイテンシが増大し、 コアのパフォーマンスが低下する可能性があ り ます。

ICode メモリインタフェース

コード メモ リ空間である 0x00000000 ~ 0x1FFFFFFC の命令フェ ッチは、 この 32 ビッ トAHB-Lite バス上で行われます。

デバッガはこのインタフェースにアクセスできません。 すべてのフェッチはワード幅です。 ワードあた りのフェッチされる命令数は、 実行されているコード と、 メモリ内でのコードのアライ メン トによって異なり ます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 2-5ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 27: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

機能の説明

DCode メモリインタフェース

コード メモ リ空間である 0x00000000 ~ 0x1FFFFFFF のデータおよびデバッグアクセスは、この 32 ビッ ト AHB-Lite バス上で行われます。 このバス上でのコアデータ アクセスは、 デバッグアクセスよ り も優先されます。 このため、 このバスに対してコアアクセス とデバッグアクセスが同時に発生する と、 コアアクセスが完了するまでデバッグアクセスはウェイ ト状態になり ます。

このインタフェースの制御ロジッ クは、 アンアラインドなデータおよびデバッグアクセスを、 2 つまたは 3 つの (アンアラインドアクセスのサイズとアライ メン トによって異なり ます) アラインドアクセスに変換します。 このため、 アンアラインドアクセスが完了するまで、 以後のデータまたはデバッグアクセスはすべてス トールします。

注 ICode AHB バスインタフェース と DCode AHB バスインタフェース との外部アービ トレーシ ョ ンでは常に、 DCode の優先度を ICode よ り も高くするこ とを強くお勧めします。

システムインタフェース

アドレス範囲 0x20000000 ~ 0xDFFFFFFF と、 0xE0100000 ~ 0xFFFFFFFF の命令フェッチとデータおよびデバッグアクセスは、 この 32 ビッ ト AHB-Lite バス上で行われます。

このバスへ同時にアクセスが行われた場合、 アービ ト レーシ ョ ンは優先順位の高いものから低いものへ、 次の順序で行われます。

• データアクセス

• 命令およびベクタフェッチ

• デバッグ

システムバス インタフェースには、 アンアラインドアクセス、 FPB のリマップされたアクセス、 ビッ トバンド アクセス、 パイプライン化された命令フェッチを処理するための制御ロジッ クが含まれています。

専用ペリフェラルバス (PPB)

外部 PPB 空間である 0xE0040000 ~ 0xE00FFFFF のデータおよびデバッグアクセスは、 この 32 ビッ ト アドバンス ト ペリ フェラルバス (APB) 上で行われます。 ト レースポート インタフェースユニッ ト (TPIU) およびベンダ固有のペリ フェラルはこのバス上に存在します。

コアデータ アクセスはデバッグアクセスよ り も優先度が高いため、 このバスに対してコアアクセス とデバッグアクセスが同時に発生する と、 コアアクセスが完了するまでデバッグアクセスはウェイ ト状態になり ます。 このインタフェースでは、 外部PPB 空間をデコードするために必要なアドレスビッ トのみがサポート されます。

外部 PPB (EPPB) 空間である 0xE0040000 ~ 0xE0100000 は、 CoreSight 互換のデバッグおよびト レースコンポーネン トで使用するためのもので、 多くの特殊な制限があるため、通常のシステムペリ フェラルには適していません。 システムペリ フェラルはシステムバス アドレス空間の適切なデバイスタイプ領域に配置し、 APB ベースのデバイスには AHB2APB プロ ト コルコンバータを使用するこ とをお勧めします。

EPPB 空間の制限は次のとおりです。

• 特権モードでのみアクセス可能

• プロセッサでデータのエンディアン形式がどのよ うに設定されているかにかかわらず、 常にリ トルエンディアン形式でアクセスされる。

• アクセスがス ト ロング リオーダ

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 2-6ID050813 Non-Confidential

Page 28: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

機能の説明

• アンアラインドアクセスの結果が予測不能

• 32 ビッ トのデータアクセスのみサポート

• デバッグポート と ローカルプロセッサからはアクセス可能だが、 システム内の他のプロセッサからはアクセスできない。

2.2.2 ETM インタフェース

ETM インタフェースは、 ETM-M4 からプロセッサへの簡単な接続を可能にします。このインタフェースには、 命令ト レースから ETM へのチャネルが用意されています。『ARM エンべデッ ド ト レース マクロセルアーキテクチャ仕様』 を参照して下さい。

2.2.3 AHB ト レースマクロセル インタフェース

AHB ト レースマクロセル (HTM) インタフェースを使用する と、 AHB ト レースマクロセルをプロセッサへ簡単に接続できます。 このインタフェースは、 HTM へのデータ ト レース用チャネルと して動作します。

実装で HTM インタフェースを使用するには、 このインタフェースを提供する必要があり ます。 HTM ポートで ト レースデータの供給を可能にする前に、 デバッグ例外およびモニタ制御レジスタ (DEMCR) の TRCENA を 1 にセッ トする必要があ り ます。『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

2.2.4 デバッグポート AHB-AP インタフェース

プロセッサには、 デバッグアクセス用のアドバンス ト ハイパフォーマンス バス アクセスポート (AHB-AP) インタフェースが含まれています。 外部のデバッグポート(DP) コンポーネン トは、 このインタフェースにアクセスします。 Cortex-M4 システムは、 次の 3 つの DP 実装をサポート しています。

• シ リ アルワイヤ JTAG デバッグポート (SWJ-DP)。 SWJ-DP は、 JTAG-DP とシ リアルワイヤ デバッグポート (SW-DP) を組み合わせた、 標準的な CoreSight デバッグポートです。

• SW-DP。 AHB-AP ポートへの 2 ピンインタフェースを提供します。

• DP なし。 プロセッサ内にデバッグ機能が存在しない場合、 DP は必要ありません。

これら 2 つの DP 実装では、 プロセッサへのデバッグアクセスを行うために提供される機構が異な り ます。 実装には、 一方のコンポーネン トのみを搭載する必要があ ります。

注 実装には、 SW-DP や SWJ-DP の代わりに、 実装者固有の DP が搭載されているこ ともあ り ます。 詳細については、 実装者に問い合わせて下さい。

DP コンポーネン トの詳細については、 『CoreSight コンポーネン ト テクニカルリ ファレンス マニュアル』 を参照して下さい。

AHB-AP の詳細については、 第 8 章 デバッグを参照して下さい。

DP と AP は、 組み合わせてデバッグアクセス ポート (DAP) と呼ばれます。

デバッグインタフェースの詳細については、 『ARM デバッグインタフェース v5、アーキテクチャ仕様』 を参照して下さい。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 2-7ID050813 Non-Confidential

Page 29: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 3 章 プログラマモデル

本章では、 プロセッサのプログラマモデルについて説明します。 本章は次のセクシ ョ ンで構成されています。

• 「プログラマモデルについて」 (ページ 3-2)

• 「動作と実行のモード」 (ページ 3-3)

• 「命令セッ トの概要」 (ページ 3-4)

• 「システム アドレスマップ」 (ページ 3-15)

• 「ラ イ トバッファ」 (ページ 3-18)

• 「ビッ トバンド」 (ページ 3-20)

• 「プロセッサコア レジスタの概要」 (ページ 3-22)

• 「例外」 (ページ 3-24)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-1ID050813 Non-Confidential

Page 30: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.1 プログラマモデルについて

『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 には、 プログラマモデルの完全な説明が含まれています。 本章では、 Cortex-M4 プロセッサのプログラマモデルの概要について説明し、 実装定義のオプシ ョ ンを解説します。 また、 モデルで使用される ARMv7-M Thumb 命令と、 プロセッサでの各命令のサイ クル数についても説明します。 その他、 次に示す内容についてはそれぞれの章で説明されています。

• 第 4 章では、 プログラマモデルのシステム制御機能の概要について説明します。

• 第 5 章では、 プログラマモデルの MPU 機能の概要について説明します。

• 第 6 章では、 プログラマモデルの NVIC 機能の概要について説明します。

• 第 7 章では、 プログラマモデルの FPU 機能の概要について説明します。

• 第 8 章では、 プログラマモデルのデバッグ機能の概要について説明します。

• 第 9 章では、 プログラマモデルの DWT 機能の概要について説明します。

• 第 10 章では、 プログラマモデルの ITM 機能の概要について説明します。

• 第 11 章では、 プログラマモデルの TPIU 機能の概要について説明します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-2ID050813 Non-Confidential

Page 31: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.2 動作と実行のモード

このセクシ ョ ンでは、 Cortex-M4 プロセッサの動作と実行のモードについて簡単に説明します。 詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』を参照して下さい。

3.2.1 動作モード

プロセッサは、 スレッ ドモード とハンド ラモードの 2 つの動作モードをサポート しています。

• プロセッサはリセッ ト時、 または例外からの復帰の結果と してスレッ ドモードに移行します。 スレッ ドモードでは、 特権コード と非特権コードの両方が実行できます。

• プロセッサは、 例外の結果と してハンド ラモードに移行します。 ハンド ラモードでは、 すべてのコードが特権コードです。

3.2.2 動作状態

プロセッサは、 次の 2 つの動作状態で動作できます。

• Thumb 状態。 これは、 16 ビッ トおよび 32 ビッ トのハーフワードアラインドThumb 命令を実行する通常の実行状態です。

• デバッグ状態。 これは、 プロセッサがホールトデバッグを行っている状態です。

3.2.3 特権アクセスとユーザアクセス

コードは、 特権または非特権と して実行できます。 非特権実行では、 一部のリ ソースへのアクセスが制限または禁止されます。 特権実行では、 すべてのリ ソースにアクセスできます。 ハンド ラモードは常に特権です。 スレッ ドモードは、 特権または非特権のいずれかで実行できます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-3ID050813 Non-Confidential

Page 32: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.3 命令セッ トの概要

このセクシ ョ ンでは、 次の内容を解説します。

• 「Cortex-M4 の命令」

• 「ロード / ス ト アのタイ ミ ング」 (ページ 3-12)

• 「他の Cortex プロセッサとのバイナリ互換性」 (ページ 3-14)

3.3.1 Cortex-M4 の命令

プロセッサには、 ARMv7-M Thumb 命令セッ トが実装されています。 Cortex-M4 命令と、 各命令のサイ クル数を、 表 3-1 に示します。 サイ クル数は、 0 ウェイ ト ステートのシステムを基準と したものです。

アセンブラ構文で、 動作によっては <op2> フ ィールドを次のいずれか 1 つのオプシ ョンに置き換えるこ とができます。

• 単純なレジスタ指定子、 例と して Rm

• イ ミディエート値でシフ ト したレジスタ、 例と して Rm, LSL #4

• レジスタ値でシフ ト したレジスタ、 例と して Rm, LSL Rs

• イ ミディエート値、 例と して #0xE000E000

表の簡素化のため、 ロード / ス ト アのすべてのアドレシングモードは示されていません。 詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

表 3-1 のサイ クルの列では、 次の略語が使用されています。

P パイプラインの リ フ ィルに必要なサイクル数。 これは、 対象の命令のアライ メン ト と幅、 およびプロセッサが早期にアドレスを予測できるかによ り、 1 ~ 3 サイクルです。

B バリア操作を実行するために必要なサイ クル数。 DSB および DMB の場合、小サイ クル数は 0 です。 ISB の場合、 小サイ クル数はパイプライン

の リ フ ィルに必要なサイクル数と同じです。

N ロード / ス ト ア対象のレジスタ リ ス トに含まれるレジスタの数。 PC やLR も含まれます。

W 適切なイベン ト を待つために費やされるサイクル数。

表 3-1 Cortex-M4 の命令セッ トの概要

動作 説明 アセンブラ サイクル数

移動 レジスタ MOV Rd, <op2> 1

16 ビッ ト イ ミディエート

MOVW Rd, #<imm> 1

イ ミディエート値から上位ビッ トへ

MOVT Rd, #<imm> 1

PC へ MOV PC, Rm 1 + P

加算 加算 ADD Rd, Rn, <op2> 1

PC へ加算 ADD PC, PC, Rm 1 + P

キャ リー付き加算 ADC Rd, Rn, <op2> 1

アドレスの生成 ADR Rd, <label> 1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-4ID050813 Non-Confidential

Page 33: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

減算 減算 SUB Rd, Rn, <op2> 1

ボロー付き減算 SBC Rd, Rn, <op2> 1

反転 RSB Rd, Rn, <op2> 1

乗算 乗算 MUL Rd, Rn, Rm 1

積和演算 MLA Rd, Rn, Rm 1

積減算 MLS Rd, Rn, Rm 1

符号付きロング SMULL RdLo, RdHi, Rn, Rm 1

符号なしロング UMULL RdLo, RdHi, Rn, Rm 1

符号付きロング積和 SMLAL RdLo, RdHi, Rn, Rm 1

符号なしロング積和 UMLAL RdLo, RdHi, Rn, Rm 1

除算 符号付き SDIV Rd, Rn, Rm 2 ~ 12a

符号なし UDIV Rd, Rn, Rm 2 ~ 12a

飽和 符号付き SSAT Rd, #<imm>, <op2> 1

符号なし USAT Rd, #<imm>, <op2> 1

比較 比較 CMP Rn, <op2> 1

否定 CMN Rn, <op2> 1

論理 論理積 AND Rd, Rn, <op2> 1

排他的論理和 EOR Rd, Rn, <op2> 1

論理和 ORR Rd, Rn, <op2> 1

否定論理和 ORN Rd, Rn, <op2> 1

ビッ ト ク リ ア BIC Rd, Rn, <op2> 1

補数移動 MVN Rd, <op2> 1

論理積テス ト TST Rn, <op2> 1

排他的論理和テス ト TEQ Rn, <op1>

シフ ト 論理左シフ ト LSL Rd, Rn, #<imm> 1

論理左シフ ト LSL Rd, Rn, Rs 1

論理右シフ ト LSR Rd, Rn, #<imm> 1

論理右シフ ト LSR Rd, Rn, Rs 1

算術右シフ ト ASR Rd, Rn, #<imm> 1

算術右シフ ト ASR Rd, Rn, Rs 1

表 3-1 Cortex-M4 の命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-5ID050813 Non-Confidential

Page 34: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

ローテート 右ローテート ROR Rd, Rn, #<imm> 1

右ローテート ROR Rd, Rn, Rs 1

拡張付き RRX Rd, Rn 1

カウン ト 先行ゼロ CLZ Rd, Rn 1

ロード ワード LDR Rd, [Rn, <op2>] 2b

PC へ LDR PC, [Rn, <op2>] 2b + P

ハーフワード LDRH Rd, [Rn, <op2>] 2b

バイ ト LDRB Rd, [Rn, <op2>] 2b

符号付きハーフワード LDRSH Rd, [Rn, <op2>] 2b

符号付きバイ ト LDRSB Rd, [Rn, <op2>] 2b

ユーザワード LDRT Rd, [Rn, #<imm>] 2b

ユーザハーフワード LDRHT Rd, [Rn, #<imm>] 2b

ユーザバイ ト LDRBT Rd, [Rn, #<imm>] 2b

ユーザ符号付きハーフワード

LDRSHT Rd, [Rn, #<imm>] 2b

ユーザ符号付きバイ ト LDRSBT Rd, [Rn, #<imm>] 2b

PC 相対 LDR Rd,[PC, #<imm>] 2b

ダブルワード LDRD Rd, Rd, [Rn, #<imm>] 1 + N

複数 LDM Rn, {<reglist>} 1 + N

複数、 PC を含む LDM Rn, {<reglist>, PC} 1 + N + P

表 3-1 Cortex-M4 の命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-6ID050813 Non-Confidential

Page 35: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

ス ト ア ワード STR Rd, [Rn, <op2>] 2b

ハーフワード STRH Rd, [Rn, <op2>] 2b

バイ ト STRB Rd, [Rn, <op2>] 2b

符号付きハーフワード STRSH Rd, [Rn, <op2>] 2b

符号付きバイ ト STRSB Rd, [Rn, <op2>] 2b

ユーザワード STRT Rd, [Rn, #<imm>] 2b

ユーザハーフワード STRHT Rd, [Rn, #<imm>] 2b

ユーザバイ ト STRBT Rd, [Rn, #<imm>] 2b

ユーザ符号付きハーフワード

STRSHT Rd, [Rn, #<imm>] 2b

ユーザ符号付きバイ ト STRSBT Rd, [Rn, #<imm>] 2b

ダブルワード STRD Rd, Rd, [Rn, #<imm>] 1 + N

複数 STM Rn, {<reglist>} 1 + N

プッシュ プッシュ PUSH {<reglist>} 1 + N

リ ンクレジスタ付きプッシュ

PUSH {<reglist>, LR} 1 + N

ポップ ポップ POP {<reglist>} 1 + N

ポップおよび復帰 POP {<reglist>, PC} 1 + N + P

セマフォ 排他ロード LDREX Rd, [Rn, #<imm>] 2

排他ロード、 ハーフ LDREXH Rd, [Rn] 2

排他ロード、 バイ ト LDREXB Rd, [Rn] 2

排他ス ト ア STREX Rd, Rt, [Rn, #<imm>] 2

排他ス ト ア、 ハーフ STREXH Rd, Rt, [Rn] 2

排他ス ト ア、 バイ ト STREXB Rd, Rt, [Rn] 2

排他モニタのク リ ア CLREX 1

表 3-1 Cortex-M4 の命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-7ID050813 Non-Confidential

Page 36: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

分岐 条件付き B<cc> <label> 1 または 1 + Pc

無条件 B <label> 1 + P

リ ンク付き BL <label> 1 + P

交換付き BX Rm 1 + P

リ ンク付き交換 BLX Rm 1 + P

0 の場合に分岐 CBZ Rn, <label> 1 または 1 + Pc

非 0 の場合に分岐 CBNZ Rn, <label> 1 または 1 + Pc

バイ ト テーブル分岐 TBB [Rn, Rm] 2 + P

ハーフワードテーブル分岐

TBH [Rn, Rm, LSL#1] 2 + P

状態変更 スーパバイザコール SVC #<imm> -

If-then-else IT...<cond> 1d

割り込みを不可能にする CPSID <flags> 1 または 2

割り込みを可能にする CPSIE <flags> 1 または 2

特殊レジスタ読み出し MRS Rd, <specreg> 1 または 2

特殊レジスタ書き込み MSR <specreg>, Rn 1 または 2

ブレークポイン ト BKPT #<imm> -

拡張 符号付きハーフワードからワード

SXTH Rd, <op2> 1

符号付きバイ トからワード

SXTB Rd, <op2> 1

符号なしハーフワード UXTH Rd, <op2> 1

符号なしバイ ト UXTB Rd, <op2> 1

ビッ トフ ィールド

符号なし抽出 UBFX Rd, Rn, #<imm>, #<imm> 1

符号付き抽出 SBFX Rd, Rn, #<imm>, #<imm> 1

ク リ ア BFC Rd, Rn, #<imm>, #<imm> 1

挿入 BFI Rd, Rn, #<imm>, #<imm> 1

反転 ワード内のバイ ト REV Rd, Rm 1

両方のハーフワード内のバイ ト

REV16 Rd, Rm 1

符号付き下位ハーフワード

REVSH Rd, Rm 1

ワード内のビッ ト RBIT Rd, Rm 1

表 3-1 Cortex-M4 の命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-8ID050813 Non-Confidential

Page 37: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

Cortex-M4 プロセッサに実装されている DSP 命令を、 表 3-2 に示します。

ヒン ト イベン ト送信 SEV 1

イベン ト待ち WFE 1 + W

割り込み待ち WFI 1 + W

無操作 NOP 1

バリア 命令同期 ISB 1 + B

データ メモリ DMB 1 + B

データ同期 DSB <flags> 1 + B

a. 除算操作では、 必要サイ クル数を 小化するため、 入力オペランドの先行の 1 と 0の数に応じて、 早期終了が使用されます。

b. 連続する単一ロード / ス ト ア命令は、 アドレスおよびデータフェーズのパイプライン化が可能です。 これによって、 これらの命令を 1 実行サイクルで完了できます。

c. 条件付き分岐は、 分岐が行われない場合は 1 サイ クルで完了します。d. IT 命令は前の 16 ビッ ト Thumb 命令にフォールドでき、 0 サイ クルで実行可能で

す。

表 3-1 Cortex-M4 の命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

表 3-2 Cortex-M4 の DSP 命令セッ トの概要

動作 説明 アセンブラ サイクル数

乗算 上位 32 ビッ ト累算付き 32 ビッ ト乗算 SMMLA 1

上位 32 ビッ ト減算付き 32 ビッ ト乗算 SMMLS 1

上位 32 ビッ ト を返す 32 ビッ ト乗算 SMMUL 1

丸め付き 上位 32 ビッ ト累算付き 32 ビッ ト乗算 SMMLAR 1

丸め付き 上位 32 ビッ ト減算付き 32 ビッ ト乗算 SMMLSR 1

丸め付き 上位 32 ビッ ト を返す 32 ビッ ト乗算 SMMULR 1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-9ID050813 Non-Confidential

Page 38: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

符号付き乗算 Q をセッ トする 32 ビッ ト累算付き 16 ビッ ト符号付き乗算、 下位 × 下位 SMLABB 1

Q をセッ トする 32 ビッ ト累算付き 16 ビッ ト符号付き乗算、 下位 × 上位 SMLABT 1

64 ビッ ト累算付き 16 ビッ ト符号付き乗算、 下位 × 下位 SMLALBB 1

64 ビッ ト累算付き 16 ビッ ト符号付き乗算、 下位 × 上位 SMLALBT 1

単一の 64 ビッ ト累算付きデュアル 16 ビッ ト符号付き乗算 SMLALD{X} 1

64 ビッ ト累算付き 16 ビッ ト符号付き乗算、 上位 × 下位 SMLALTB 1

64 ビッ ト累算付き 16 ビッ ト符号付き乗算、 上位 × 上位 SMLALTT 1

32 ビッ トの結果を生成する 16 ビッ ト符号付き乗算、 下位 × 下位 SMULBB 1

32 ビッ トの結果を生成する 16 ビッ ト符号付き乗算、 下位 × 上位 SMULBT 1

32 ビッ トの結果を生成する 16 ビッ ト符号付き乗算、 上位 × 下位 SMULTB 1

32 ビッ トの結果を生成する 16 ビッ ト符号付き乗算、 上位 × 上位 SMULTT 1

上位 32 ビッ ト を返す 16 ビッ ト × 32 ビッ ト符号付き乗算、 下位 SMULWB 1

上位 32 ビッ ト を返す 16 ビッ ト × 32 ビッ ト符号付き乗算、 上位 SMULWT 1

差を返すデュアル 16 ビッ ト符号付き乗算 SMUSD{X} 1

Q をセッ トする 32 ビッ ト累算付き 16 ビッ ト符号付き乗算、 上位 × 下位 SMLATB 1

Q をセッ トする 32 ビッ ト累算付き 16 ビッ ト符号付き乗算、 上位 × 上位 SMLATT 1

Q をセッ トする単一の 32 ビッ ト累算付きデュアル 16 ビッ ト符号付き乗算 SMLAD{X} 1

Q をセッ トする 32 ビッ ト累算付き 16 ビッ ト × 32 ビッ ト符号付き乗算、下位

SMLAWB 1

Q をセッ トする 32 ビッ ト累算付き 16 ビッ ト × 32 ビッ ト符号付き乗算、上位

SMLAWT 1

Q をセッ トする 32 ビッ ト累算付きデュアル 16 ビッ ト符号付き積減算 SMLSD{X} 1

Q をセッ トする 64 ビッ ト累算付きデュアル 16 ビッ ト符号付き積減算 SMLSLD{X} 1

Q をセッ トするデュアル 16 ビッ ト符号付き乗算の和 SMUAD{X} 1

符号なし乗算 64 ビッ トの結果を生成する、 ダブル 32 ビッ ト累算付き 32 ビッ ト符号なし乗算

UMAAL 1

飽和 Q をセッ トするデュアル 16 ビッ ト飽和 SSAT16 1

Q をセッ トするデュアル 16 ビッ ト符号なし飽和 USAT16 1

表 3-2 Cortex-M4 の DSP 命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-10ID050813 Non-Confidential

Page 39: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

パッキングおよびアンパッキング

ハーフワードの上位をシフ ト した下位とパッ クする PKHTB 1

ハーフワードの下位をシフ ト した上位とパッ クする PKHBT 1

8 ビッ ト を抽出し 32 ビッ トへ符号拡張 SXTB 1

デュアルで 8 ビッ ト を抽出しそれぞれを 16 ビッ トへ符号拡張 SXTB16 1

16 ビッ ト を抽出し 32 ビッ トへ符号拡張 SXTH 1

8 ビッ ト を抽出し 32 ビッ トへゼロ拡張 UXTB 1

デュアルで 8 ビッ ト を抽出し 16 ビッ トへゼロ拡張 UXTB16 1

16 ビッ ト を抽出し 32 ビッ トへゼロ拡張 UXTH 1

8 ビッ ト を抽出し 32 ビッ トへ符号なし加算 UXTAB 1

デュアルで 8 ビッ ト を抽出し 16 ビッ トへ符号なし加算 UXTAB16 1

16 ビッ ト を抽出し 32 ビッ トへ符号なし加算 UXTAH 1

8 ビッ ト を抽出し 32 ビッ トへ符号付き加算 SXTAB 1

デュアルで 8 ビッ ト を抽出し 16 ビッ トへ符号付き加算 SXTAB16 1

16 ビッ ト を抽出し 32 ビッ トへ符号付き加算 SXTAH 1

その他のデータ処理

GE ビッ トに基づいてバイ ト を選択 SEL 1

クワッ ド 8 ビッ ト符号なし絶対差の符号なし和 USAD8 1

クワッ ド 8 ビッ ト符号なし絶対差の符号なし和、 32 ビッ ト累算付き USADA8 1

加算 デュアル 16 ビッ ト符号なし飽和加算 UQADD16 1

クワッ ド 8 ビッ ト符号なし飽和加算 UQADD8 1

Q をセッ トする飽和加算 QADD 1

Q をセッ トするデュアル 16 ビッ ト飽和加算 QADD16 1

Q をセッ トするクワッ ド 8 ビッ ト飽和加算 QADD8 1

Q をセッ トする飽和ダブルおよび加算 QDADD 1

GE をセッ トするクワ ッ ド 8 ビッ ト符号付き加算 SADD8 1

GE をセッ トするデュアル 16 ビッ ト符号付き加算 SADD16 1

結果を半減するデュアル 16 ビッ ト符号付き加算 SHADD16 1

結果を半減するクワッ ド 8 ビッ ト符号付き加算 SHADD8 1

GE をセッ トするデュアル 16 ビッ ト符号なし加算 UADD16 1

GE をセッ トするクワ ッ ド 8 ビッ ト符号なし加算 UADD8 1

結果を半減するデュアル 16 ビッ ト符号なし加算 UHADD16 1

結果を半減するクワッ ド 8 ビッ ト符号なし加算 UHADD8 1

表 3-2 Cortex-M4 の DSP 命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-11ID050813 Non-Confidential

Page 40: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.3.2 ロード / ストアのタイ ミ ング

このセクシ ョ ンでは、 タイ ミ ングを短縮するために命令を組み合わせる 適の方法について説明します。

• STR Rx,[Ry,#imm] は常に 1 サイ クルです。 これは、 アドレス生成は 初のサイ クルで実行され、 データス ト アは次の命令の実行と同時に行われるためです。 ライ トバッファがフルまたは非稼働のと きに、 そのライ トバッファに対してス ト

減算 Q をセッ トする飽和ダブルおよび減算 QDSUB 1

デュアル 16 ビッ ト符号なし飽和減算 UQSUB16 1

クワッ ド 8 ビッ ト符号なし飽和減算 UQSUB8 1

Q をセッ トする飽和減算 QSUB 1

Q をセッ トするデュアル 16 ビッ ト飽和減算 QSUB16 1

Q をセッ トするクワッ ド 8 ビッ ト飽和減算 QSUB8 1

結果を半減するデュアル 16 ビッ ト符号付き減算 SHSUB16 1

結果を半減するクワッ ド 8 ビッ ト符号付き減算 SHSUB8 1

GE をセッ トするデュアル 16 ビッ ト符号付き減算 SSUB16 1

GE をセッ トするクワ ッ ド 8 ビッ ト符号付き減算 SSUB8 1

結果を半減するデュアル 16 ビッ ト符号なし減算 UHSUB16 1

結果を半減するクワッ ド 8 ビッ ト符号なし減算 UHSUB8 1

GE をセッ トするデュアル 16 ビッ ト符号なし減算 USUB16 1

GE をセッ トするクワ ッ ド 8 ビッ ト符号なし減算 USUB8 1

並列加算および減算

デュアル 16 ビッ ト符号なし飽和加算および減算、 交換付き UQASX 1

デュアル 16 ビッ ト符号なし飽和減算および加算、 交換付き UQSAX 1

GE をセッ トするデュアル 16 ビッ ト加算および減算、 交換付き SASX 1

Q をセッ トするデュアル 16 ビッ ト加算および減算、 交換付き QASX 1

Q をセッ トするデュアル 16 ビッ ト減算および加算、 交換付き QSAX 1

結果を半減するデュアル 16 ビッ ト符号付き加算および減算 SHASX 1

結果を半減するデュアル 16 ビッ ト符号付き減算および加算 SHSAX 1

GE をセッ トするデュアル 16 ビッ ト符号付き減算および加算、 交換付き SSAX 1

GE をセッ トするデュアル 16 ビッ ト符号なし加算および減算、 交換付き UASX 1

結果を半減するデュアル 16 ビッ ト符号なし加算および減算、 交換付き UHASX 1

結果を半減するデュアル 16 ビッ ト符号なし減算および加算、 交換付き UHSAX 1

GE をセッ トするデュアル 16 ビッ ト符号なし減算および加算、 交換付き USAX 1

表 3-2 Cortex-M4 の DSP 命令セッ トの概要 ( 続き )

動作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-12ID050813 Non-Confidential

Page 41: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

アが行われた場合、 次の命令はス ト アが完了するまで遅延します。 ス ト アがコードセグメン ト など、 ラ イ トバッファ以外に対して実行され、 その ト ランザクシ ョ ンがス トールした場合は、 完了前に別のロード / ス ト ア操作が実行された場合のみ、 タイ ミ ングへの影響が発生します。

• LDR PC,[any] は、 常にブロッキング操作です。 これは、 低でもロードに 2 サイクル、 パイプラインのリ ロードに 3 サイクルが必要なこ とを意味します。 つまり、 この操作には 低でも 5 サイクルが必要です (ロードまたはフェッチでストールが発生した場合はさらに長くな り ます)。

• ロード / ス ト アで生成されるアドレスが、 前のデータ処理操作の結果に依存する場合は、 レジスタバンクが更新される間、 パイプラインが余計に 1 サイクルス トールします。 このシナリオではフォワードパスは存在しません。

• フェッチユニッ ト との競合が原因で、 LDR Rx,[PC,#imm] が 1 サイクル長くなることがあ り ます。

• TBB および TBH もブロ ッキング操作です。 これらの命令では、 低でもロードに2 サイクル、 加算に 1 サイクル、 パイプラインのリ ロードに 3 サイクルが必要です。 つま り、 低でも 6 サイ クルが必要です (ロードまたはフェッチでストールが発生した場合はさらに長くな り ます)。

• LDR [any] は、 可能な場合はパイプライン処理されます。 つま り、 も し次の命令が LDR または STR で、 初の LDR のデスティネーシ ョ ンが次の命令のアドレスを計算するために使用されないと きは、 次の命令のコス トから 1 サイクルが差し引かれます。 このため、 LDR の後に STR が続く と、 LDR によってロード された内容が STR によって書き込まれます。 さらに多くの LDR を一緒にパイプライン処理するこ とができます。 適化された例をいくつか挙げます。

— LDR R0,[R1]; LDR R1,[R2] - 通常は合計 3 サイクル

— LDR R0,[R1,R2]; STR R0,[R3,#20] - 通常は合計 3 サイ クル

— LDR R0,[R1,R2]; STR R1,[R3,R2] - 通常は合計 3 サイ クル

— LDR R0,[R1,R5]; LDR R1,[R2]; LDR R2,[R3,#4] - 通常は合計 4 サイ クル

• 他の命令は、 レジスタオフセッ ト付きの STR の後でパイプライン処理できません。 STR は、 LDR の後でのみパイプライン処理が可能で、 ス ト アの後でパイプライン処理できる命令はあり ません。 ライ トバッファがあるため、 STR はス トールした場合も通常は 2 サイ クルで完了します。

• LDREX と STREX は、 LDR と全く同様にパイプライン処理できます。 STREX は LDR と同様に扱われるため、 LDR についての説明と同様にパイプライン処理できます。LDREX も同様に、 LDR と全く同じよ うに扱われるので、 パイプライン処理できます。

• LDRD と STRD は、 先行する命令や後の命令と一緒にパイプライン処理できません。 ただし、 2 つのワードは一緒にパイプライン処理されます。 このため、 この操作はス トールしない場合に 3 サイ クルを必要と します。

• LDM と STM は、 先行する命令や後の命令と一緒にパイプライン処理できません。ただし、 初のエレ メン ト以降のすべてのエレ メン トは一緒にパイプライン処理されます。 このため、 ス トールが発生しない場合、 3 エレ メン トの LDM は 2 + 1 + 1、 または 5 サイクルで実行されます。 同様に、 8 エレ メン トのス ト アは、ス トールが発生しない場合は 9 サイ クルで実行されます。 割り込みが発生した場合、 LDM および STM 命令は復帰の際に、 中断したと ころから再開されます。 再開動作によ り、 初のエレ メン ト を開始するために、 1 または 2 サイ クルが余分に費やされます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-13ID050813 Non-Confidential

Page 42: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

• アンアラインドなワードまたはハーフワードのロード / ス ト アには、 ペナルティサイ クルが追加されます。 バイ ト アラインドのハーフワード ロード / ス トアは 2 つのバイ ト と して操作が実行されるため、 実行時間に 1 サイクルが追加されます。 ハーフワードアラインドのワード ロード / ス ト アは 2 つのハーフワード と して操作が実行されるため、 実行時間に 1 サイ クルが追加されます。バイ ト アラインドのワード ロード / ス ト アは、 バイ ト、 ハーフワード、 バイ トの操作に分割して実行されるため、 実行時間に 2 サイクルが追加されます。 メモ リがス トールした場合、 これらの数字は増加します。 STR または STRH では、ライ トバッファがあるため、 プロセッサの遅延は発生しません。

3.3.3 他の Cortex プロセッサとのバイナリ互換性

プロセッサには、 他の Cortex-M プロファイルプロセッサで提供されている命令セット と機能にバイナリ互換のサブセッ トが実装されています。 Cortex-M4 プロセッサから他の Cortex-M プロファ イルのプロセッサへは、 システムレベルのソフ ト ウェアも含めて、 ソフ ト ウェアを移動できます。

円滑な移行を保証するため、 他の Cortex-M プロファ イルのプロセッサアーキテクチャで動作するよ うに設計するコードでは、 以下の規則に従い、 構成および制御レジスタ (CCR) を適切に構成するこ とをお勧めします。

• NVIC およびシステム制御空間 (SCS) のレジスタへのアクセスには、 ワード転送のみを使用する。

• プロセッサの未使用の SCS レジスタおよびレジスタフ ィールドはすべて、 変更不可と して扱う。

• CCR のフ ィールドを次のよ うに構成する。

— STKALIGN ビッ ト を 1 にセッ ト

— UNALIGN_TRP ビッ ト を 1 にセッ ト

— CCR レジスタの他のビッ トはすべて、 元の値のまま

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-14ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 43: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.4 システム アドレスマップ

プロセッサには、 プロセッサコアとオプシ ョ ンのデバッグアクセス ポート (DAP) から、 外部メモ リシステムおよび内部のシステム制御空間 (SCS) とデバッグコンポーネン トの両方に対する メモ リ アクセスを調整する、 バスマ ト リ ッ クスが含まれています。

すべてのデバッグアクセスが可能な限り非侵襲性であるこ とを保証するため、 プロセッサによるアクセスが常に優先されます。 0 ウェイ ト ステート システムの場合、システムメモ リ、 SCS、 デバッグ リ ソースへのデバッグアクセスはすべて、 完全に非侵襲性です。

システム アドレスマップを、 図 3-1 に示します。

図 3-1 システム アドレスマップ

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-15ID050813 Non-Confidential

Page 44: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

各アドレスに割り当てられる メモ リマップの領域におけるプロセッサのインタフェースを、 表 3-3 に示します。

メモ リモデルの詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

3.4.1 専用ペリフェラルバス

内部の専用ペリ フェラルパス (PPB) インタフェースは、 次のものへアクセスするために使用されます。

• 計装ト レースマクロセル (ITM)

• データウォッチポイン トおよびト レース (DWT)

• フラ ッシュパッチおよびブレークポイン ト (FPB)

• システム制御空間 (SCS)。 メモ リ保護ユニッ ト (MPU) とネス ト型ベクタ割り込みコン ト ローラ (NVIC) も含まれます。

外部 PPB インタフェースは、 次のものへアクセスするために使用されます。

• ト レースポート インタフェースユニッ ト (TPIU)

• エンべデッ ド ト レース マクロセル (ETM)

• ROM テーブル

• PPB メモ リマップの実装固有の領域

3.4.2 領域間にまたがるアンアラインドアクセス

Cortex-M4 プロセッサは ARMv7 のアンアラインドアクセスをサポート しており、 すべてのアクセスを単一のアンアラインドアクセス と して実行します。 これらは、DCode およびシステムバス インタフェースによ り、 2 つまたはそれ以上のアラインドアクセスに変換されます。

表 3-3 メモリ領域

メモリマップ 領域

コード 命令フェッチは ICode バス上で、 データアクセスは DCode バス上で実行されます。

SRAM 命令フェッチおよびデータアクセスは、 システムバス上で実行されます。

SRAM ビッ トバンド エイ リアス領域。 データアクセスはエイ リアスで行われます。 命令アクセスにはエイ リアスは使用されません。

ペリ フェラル 命令フェッチおよびデータアクセスは、 システムバス上で実行されます。

ペリ フェラル ビッ トバンド

エイ リアス領域。 データアクセスはエイ リアスで行われます。 命令アクセスにはエイ リアスは使用されません。

外部 RAM 命令フェッチおよびデータアクセスは、 システムバス上で実行されます。

外部デバイス 命令フェッチおよびデータアクセスは、 システムバス上で実行されます。

専用ペリ フェラルバス 外部および内部の専用ペリ フェラルパス (PPB) インタフェース。 「専用ペリ フェラルバス」 を参照して下さい。このメモ リ領域は実行不可 (XN) に設定されているため、 命令フェッチは禁止されます。 MPU がある場合でも、 これは変更できません。

システム システムセグメン トはベンダのシステムペリ フェラル用です。 このメモ リ領域はXN に設定されているため、 命令フェッチは禁止されます。 MPU がある場合でも、これは変更できません。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-16ID050813 Non-Confidential

Page 45: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

注 Cortex-M4 のすべての外部アクセスはアラインドアクセスです。

アンアラインドのサポートは、 単一ロード / ス ト ア LDR や LDRH, STR, STRH でのみ利用できます。 ダブルロード / ス ト アはすでにワードアラインドのアクセスをサポート していますが、 他のアンアラインドアクセスを許可せず、 試みられた場合はフォールトが生成されます。

メモ リマップの境界にまたがるアンアラインドアクセスは、 アーキテクチャの関係で予測不能です。 プロセッサの動作は、 以下に示すよ うに境界に依存しています。

• DCode アクセスは領域内でラ ップアラウンド します。 例えば、 コード空間の後のバイ ト (0x1FFFFFFF) に対してアンアラインドのハーフワードアクセスが行われる と、 DCode インタフェースによって、 0x1FFFFFFF へのバイ ト アクセス と、 それに続く 0x00000000 へのバイ ト アクセスに変換されます。

• PPB 空間にまたがるシステムアクセスは、 システム空間内でラ ップアラウンドしません。 例えば、 システム空間の 後のバイ ト (0xDFFFFFFF) に対してアンアラインドのハーフワードアクセスが行われる と、 システムインタフェースによって、 0xDFFFFFFF へのバイ ト アクセス と、 それに続く 0xE0000000 へのバイ ト アクセスに変換されます。 0xE0000000 は、 システムバス上で有効なアドレスではあ り ません。

• コード空間にまたがるシステムアクセスは、 システム空間内でラ ップアラウンド しません。 例えば、 システム空間の 後のバイ ト (0xFFFFFFFF) に対してアンアラインドのハーフワードアクセスが行われる と、 システムインタフェースによって、 0xFFFFFFFF へのバイ ト アクセス と、 それに続く 0x00000000 へのバイ ト アクセスに変換されます。 0x00000000 は、 システムバス上で有効なアドレスではあ りません。

• PPB 空間ではアンアラインドアクセスはサポート されていないため、 PPB アクセスについては境界にまたがる例はあり ません。

ビッ トバンド エイ リ アス領域にまたがるアンアラインドアクセスも、 アーキテクチャの関係で予測不能です。 プロセッサはビッ トバンド エイ リアスのアドレスへのアクセスを実行しますが、 これはビッ トバンド操作とはなり ません。 例えば、0x21FFFFFF へのアンアラインドのハーフワードアクセスは、 0x21FFFFFF へのバイ ト アクセス と、 それに続く 0x22000000 (ビッ トバンド エイ リアスの 初のバイ ト ) へのバイト アクセス と して実行されます。

FPB のリテラルコンパレータに対して一致するアンアラインド ロードはリマップされません。 FPB は、 アラインドアドレスのみを リマップします。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-17ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 46: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.5 ライ トバッファ

データス ト ア時にバスウェイ ト サイクルによってプロセッサがス トールするこ とを防止するため、 DCode およびシステムバスへのバッファ されたス ト アは、 1 エン ト リのライ トバッファを経由します。 ライ トバッファがフルの場合、 ライ トバッファがドレインされるまで、 バスへの以後のアクセスはス トールします。 バスがバッファされたス ト アのデータフェーズを待っている場合のみ、 ライ トバッファが使用されます。 それ以外の場合、 ト ランザクシ ョ ンはバス上で完了します。

DMB および DSB 命令は、 完了する前にライ トバッファのドレインを待ちます。 DMB または DSB がライ トバッファのドレインを待っている間に割り込みが発生した場合、 プロセッサは割り込みの完了後に DMB または DSB の次の命令に復帰します。 これは、 割り込み処理自体がメモリバリア操作と して機能するためです。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-18ID050813 Non-Confidential

Page 47: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.6 排他モニタ

Cortex-M4 プロセッサには、 ローカル排他モニタが実装されています。 セマフォ とローカル排他モニタの詳細については、 『ARMv7-M ARM アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

プロセッサ内のローカルモニタは、 物理アドレスを保持せず、 すべてのアクセスが前の LDREX のアドレス と一致するものと して扱う よ うに構築されています。 つまり、 実装されている排他予約粒度は、 メモ リ アドレス範囲の全体です。

Cortex-M4 プロセッサは、 ビッ トバンド領域への排他アクセスをサポート していません。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-19ID050813 Non-Confidential

Page 48: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.7 ビッ トバンド

ビッ トバンドは、 Cortex-M4 プロセッサのオプシ ョ ン機能です。 ビッ トバンドは、 メモ リの完全なワードを、 ビッ トバンド領域の単一のビッ トへマップします。 例えば、エイ リ アスワードの 1 つへ書き込むと、 ビッ トバンド領域の対応するビッ トがセット / ク リ アされます。 これによって、 ビッ トバンド領域の個別のビッ トすべてが、 単一の LDR 命令を使用して、 ワードアラインドのアドレスから直接アクセス可能になります。 同時に、 読み出し - 変更 - 書き込み命令シーケンスを実行せずに、 個別のビット を ト グル可能にな り ます。

プロセッサのメモ リマップには、 2 つのビッ トバンド領域が含まれます。 これらの領域は、 それぞれ SRAM およびペリ フェラルのメモ リ領域の 下位 1MB を占有します。 ビッ トバンド領域は、 メモ リのエイ リ アス領域の各ワードを、 メモ リのビッ トバンド領域のビッ トにマップします。

システムバス インタフェースには、 次のよ うにビッ トバンド アクセスを制御するロジッ クが組み込まれています。

• ビッ トバンド エイ リ アスのアドレスを、 ビッ トバンド領域にリマップします。

• 読み出しの場合、 読み出したバイ トから要求されたビッ ト を抽出し、 読み出しデータの 下位ビッ ト (LSB) と してコアへ返します。

• 書き込みの場合、 書き込みを不可分な読み出し - 変更 - 書き込み操作に変換します。

• プロセッサは、 ビッ トバンド操作の実行中にシステムバスへのアクセスを試みない限り、 ビッ トバンド操作中にス トールするこ とはあ り ません。

メモ リマップには 2 つの 32MB エイ リアス領域が存在し、 これらは 2 つの 1MB ビットバンド領域にマップされます。

• 32MB の SRAM エイ リ アス領域へのアクセスは、 1MB の SRAM ビッ トバンド領域にマップされます。

• 32MB のペリ フェラルエイ リ アス領域へのアクセスは、 1MB のペリ フェラル ビッ トバンド領域にマップされます。

エイ リ アス領域の各ワードが、 ビッ トバンド領域の対応ビッ ト、 すなわちターゲットのビッ ト をどのよ うに参照するかは、 マッピングの式によ り示されます。 マッピングの式は次のとおりです。

bit_word_offset = (byte_offset x 32) + (bit_number ´ 4)

bit_word_addr = bit_band_base + bit_word_offset

各項目の説明については以下を参照して下さい。

• bit_word_offset は、 ビッ トバンド メモ リ領域での、 ターゲッ ト ビッ トの位置です。

• bit_word_addr は、 エイ リ アス メモ リ領域内のワードのアドレスで、 ターゲッ トビッ トにマップされます。

• bit_band_base は、 エイ リ アス領域の開始アドレスです。

• byte_offset は、 ビッ トバンド領域内の、 ターゲッ ト ビッ ト を含むバイ トの番号です。

• bit_number は、 ターゲッ ト ビッ トのビッ ト位置 (0 ~ 7) です。

SRAM ビッ トバンド エイ リ アス領域と、 SRAM ビッ トバンド領域とのビッ トバンド マップの例を、 図 3-2 (ページ 3-21) に示します。

• 0x23FFFFE0 のエイ リ アスワードは、 0x200FFFFF のビッ トバンド バイ トのビッ ト [0] にマップされます : 0x23FFFFE0 = 0x22000000 + (0xFFFFF * 32) + 0 * 4

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-20ID050813 Non-Confidential

Page 49: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

• 0x23FFFFFC のエイ リ アスワードは、 0x200FFFFF のビッ トバンド バイ トのビッ ト [7] にマップされます : 0x23FFFFFC = 0x22000000 + (0xFFFFF * 32) + 7 * 4

• 0x22000000 のエイ リ アスワードは、 0x20000000 のビッ トバンド バイ トのビッ ト [0] にマップされます : 0x22000000 = 0x22000000 + (0 * 32) + 0 * 4

• 0x2200001C のエイ リ アスワードは、 0x20000000 のビッ トバンド バイ トのビッ ト [7] にマップされます : 0x2200001C = 0x22000000 + (0 * 32) + 7 * 4

図 3-2 ビッ トバンドのマッピング

3.7.1 エイリアス領域への直接アクセス

エイ リアス領域のワードへの書き込みは、 ビッ トバンド領域のターゲッ ト ビッ トに対する読み出し - 変更 - 書き込み操作と同じ効果があり ます。

エイ リ アス領域のワードに書き込まれる値のビッ ト [0] によ り、 ビッ トバンド領域のターゲッ ト ビッ トに書き込まれる値が決定されます。 ビッ ト [0] が 1 にセッ ト された値を書き込むと、 ビッ トバンドのビッ トに 1 が書き込まれ、 ビッ ト [0] が 0 にク リ アされた値を書き込むと、 ビッ トバンドのビッ トに 0 が書き込まれます。

エイ リ アスのワードのビッ ト [31:1] は、 ビッ トバンドのビッ トには影響しません。0x01 の書き込みは、 0xFF の書き込みと同じ結果になり ます。 0x00 の書き込みは、 0x0E の書き込みと同じ結果になり ます。

エイ リ アス領域のワードを読み出すと、 0x01 または 0x00 が返されます。 0x01 という値は、 ビッ トバンド領域のターゲッ ト ビッ トが 1 にセッ ト されているこ とを示します。0x00 という値は、 ターゲッ ト ビッ トが 0 にク リ アされているこ とを示します。 読み出しでは、 ビッ ト [31:1] は常に 0 です。

3.7.2 ビッ トバンド領域への直接アクセス

ビッ トバンド領域に対して、 通常の読み出しや書き込みで直接アクセスするこ と もできます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-21ID050813 Non-Confidential

Page 50: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.8 プロセッサコア レジスタの概要

プロセッサには、 次の 32 ビッ ト レジスタがあ り ます。

• 13 個の汎用レジスタ、 R0 ~ R12

• スタ ッ クポインタ (SP)、 R13。 バンクレジスタ SP_process および SP_main のエイ リ アスです。

• リ ンクレジスタ (LR)、 R14

• プログラムカウンタ (PC)、 R15

• 特殊用途のプログラムステータス レジスタ、 (xPSR)

プロセッサのレジスタセッ ト を、 図 3-3 に示します。

図 3-3 プロセッサのレジスタセッ ト

汎用レジスタ R0 ~ R12 には、 アーキテクチャで定義された特別な用途はあり ません。 汎用レジスタを指定するほとんどの命令は、 R0 ~ R12 を使用できます。

下位レジスタ レジスタ R0 ~ R7 は、 汎用レジスタを指定するすべての命令によってアクセス可能です。

上位レジスタ レジスタ R8 ~ R12 は、 汎用レジスタを指定するすべての 32 ビット命令によってアクセス可能です。

レジスタ R8 ~ R12 は、 16 ビッ ト命令ではアクセスできません。

レジスタ R13、 R14、 R15 には、 次に示す特別な機能があ り ます。

スタ ッ クポインタ レジスタ R13 は、 スタ ッ クポインタ (SP) と して使用されます。SP はビッ ト [1:0] への書き込みを無視するため、 4 バイ ト境界のワードに自動的にアラインされます。

ハンド ラモードでは常時 SP_main が使用されます。 スレッ ドモードでは SP_main または SP_process のいずれかを使用するよ うに構成できます。

リ ンクレジスタ レジスタ R14 は、 サブルーチンのリ ンクレジスタ (LR) です。

LR は、 リ ンク付き分岐 (BL) またはリ ンク付き分岐交換 (BLX) 命令が実行されたと き、 PC から復帰アドレスを受け取り ます。

LR は例外からの復帰にも使用されます。

それ以外の場合は、 R14 を汎用レジスタ と して使用できます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-22ID050813 Non-Confidential

Page 51: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

プログラムカウンタ レジスタ R15 はプログラムカウンタ (PC) です。

ビッ ト [0] は常時 0 のため、 命令は常にワードまたはハーフワード境界にアラインされます。

詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-23ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 52: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

3.9 例外

プロセッサとネス ト型ベクタ割り込みコン ト ローラ (NVIC) は、 すべての例外に優先度を付けて処理します。 割り込みを処理する と きは、 次の規則が適用されます。

• すべての例外はハンド ラモードで処理されます。

• プロセッサの状態は、 例外の発生時に自動的にスタッ クに保存され、 割り込み処理ルーチン (ISR) の終了時に自動的にスタッ クから復元されます。

• 割り込みの開始を効率的に行うため、 ベクタのフェッチは状態の保存と並行して行われます。

プロセッサはテールチェインをサポート しているため、 状態の保存と復元のオーバヘッ ドなしに連続した割り込みが可能です。

割り込みの数と、 割り込み優先度のビッ トの数は、 実装時に構成します。 ソフ トウェアで選択できるのは、 構成されている割り込みの一部を可能にするこ と と、 構成されている優先度のうち何ビッ ト を使用するかのみです。

注 ベクタテーブルのエン ト リは、 ARM 命令と Thumb 命令とのインターワーキングに互換性があり ます。 このため、 ベクタの値のビッ ト [0] は、 例外の開始時に実行プログラム ステータスレジスタ (EPSR) の T ビッ トにロード されます。 ベクタテーブルのエン ト リに書き込まれるベクタはすべて、 ビッ ト [0] がセッ ト されている必要があり ます。 ビッ ト [0] がク リ アされたテーブルエン ト リ を作成する と、 そのベクタに対応するハンド ラの 初の命令で INVSTATE フォールトが生成されます。

3.9.1 例外処理

プロセッサには、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 で説明されている、 高度な例外および割り込み処理が実装されています。

割り込みのレイテンシを短縮するため、 プロセッサには、 ARMv7-M アーキテクチャに定義されている、 後着割り込みおよび割り込みテールチェイン機構が実装されています。

• 割り込みをアサート してから、 ISR の 初の命令が実行されるまでのレイテンシは、 アクセスされる メモ リに 0 ウェイ ト ステートが適用される場合、 大 12サイ クルです。 初に実行される命令は、 スタ ッ クプッシュ と並列にフェッチされます。

• 割り込みからの復帰では、 同様に復帰先の命令がスタ ッ クポップと並列にフェッチされ、 12 サイクルが必要です。

• テールチェインは、 0 ウェイ ト ステートのメモ リ を使用している場合に 6 サイクルが必要です。 スタ ッ クのプッシュやポップは実行されず、 次の ISR の命令のみがフェッチされます。

プロセッサの例外モデルには、 アーキテクチャ定義の動作に加えて、 次のよ う な実装定義の動作が含まれています。

• HardFault から NMI ロ ッ クアップまでのスタ ッ ク操作における例外を NMI 優先度で動作

• NMI から HardFault ロ ッ クアップまでのアンスタ ッ ク操作における例外をHardFault 優先度で動作

割り込みレイテンシを 小化するため、 プロセッサは除算命令を破棄して保留中の割り込みを取得します。 割り込みハンド ラから復帰する と、 プロセッサは除算命令を 初からやり直します。 プロセッサには、 割り込み可能で再開可能な命令フィー

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-24ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 53: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

プログラマモデル

ルドが実装されています。 複数ロード (LDM) 操作と複数ス ト ア (STM) 操作は割り込み可能です。 EPSR には、 割り込みが発生した場所から複数ロード / ス ト アを再開するために必要な情報が保持されています。

このため、 ソフ ト ウェアでデバイスにアクセスする と き、 あるいは読み出しまたは繰り返し書き込みの影響を受ける メモ リ領域へアクセスする場合、 複数ロードまたは複数ス ト ア命令を使用できません。 読み出しまたは書き込みの繰り返しによ り不整合な結果や、 望まし くない副作用が発生する可能性がある場合、 ソフ ト ウェアでこれらの命令を使用できません。

LDM および STM 操作でのベースレジスタ更新

LDM または STM によ りベースレジスタが更新される場合があり ます。

• 命令によ りベースレジスタのライ トバッ クが指定された場合、 ベースレジスタは更新後のアドレスに変更されます。 アボートが発生する と、 元のベース値が復元されます。

• LDM のレジスタ リ ス トにベースレジスタが含まれているが、 リ ス トの 後のレジスタではない場合、 ベースレジスタはロード された値に変更されます。

次の場合、 LDM または STM は継続されず、 初からやり直し されます。

• 命令がフォールト した場合

• その命令が IT 内に含まれている場合

LDM でベースのロードが完了している場合、 転送はベースのロード前の状態から継続されます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 3-25ID050813 Non-Confidential

Page 54: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 4 章 システム制御

本章では、 プロセッサをプログラムするためのレジスタについて説明します。 本章は次のセクシ ョ ンで構成されています。

• 「システム制御について」 (ページ 4-2)

• 「レジスタの概要」 (ページ 4-3)

• 「レジスタの説明」 (ページ 4-5)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 4-1ID050813 Non-Confidential

Page 55: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

システム制御

4.1 システム制御について

本章では、 プロセッサの動作を制御するレジスタについて説明します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 4-2ID050813 Non-Confidential

Page 56: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

システム制御

4.2 レジスタの概要

システム制御レジスタを、 表 4-1 に示します。 本章で説明されていないレジスタについては、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

表 4-1 システム制御レジスタ

アドレス 名前 タイプ リセッ ト時の値 説明

0xE000E008 ACTLR RW 0x00000000 「補助制御レジスタ、 ACTLR」 (ページ 4-5)

0xE000E010 STCSR RW 0x00000000 SysTick 制御およびステータスレジスタ

0xE000E014 STRVR RW 未知 SysTick リ ロード値レジスタ

0xE000E018 STCVR RW ク リ ア 未知 SysTick 現在値レジスタ

0xE000E01C STCR RO STCALIB SysTick 較正値レジスタ

0xE000ED00 CPUID RO 0x410FC241 「CPUID ベースレジスタ、 CPUID」 (ページ 4-5)

0xE000ED04 ICSR RW またはRO

0x00000000 割り込み制御および状態レジスタ

0xE000ED08 VTOR RW 0x00000000 ベクタテーブル オフセッ ト レジスタ

0xE000ED0C AIRCR RW 0x00000000a アプリ ケーシ ョ ン割り込みおよびリセッ ト制御レジスタ

0xE000ED10 SCR RW 0x00000000 システム制御レジスタ

0xE000ED14 CCR RW 0x00000200 構成および制御レジスタ

0xE000ED18 SHPR1 RW 0x00000000 システムハンド ラ優先度レジスタ 1

0xE000ED1C SHPR2 RW 0x00000000 システムハンド ラ優先度レジスタ 2

0xE000ED20 SHPR3 RW 0x00000000 システムハンド ラ優先度レジスタ 3

0xE000ED24 SHCSR RW 0x00000000 システムハンド ラ制御および状態レジスタ

0xE000ED28 CFSR RW 0x00000000 構成可能フォールト ステータス レジスタ

0xE000ED2C HFSR RW 0x00000000 HardFault ステータスレジスタ

0xE000ED30 DFSR RW 0x00000000 デバッグフォールト ステータスレジスタ

0xE000ED34 MMFAR RW 未知 MemManage フォールト アドレスレジスタb

0xE000ED38 BFAR RW 未知 BusFault アドレスレジスタ b

0xE000ED3C AFSR RW 0x00000000 「補助フォールト ステータス レジスタ、AFSR」 (ページ 4-6)

0xE000ED40 ID_PFR0 RO 0x00000030 プロセッサ機能レジスタ 0

0xE000ED44 ID_PFR1 RO 0x00000200 プロセッサ機能レジスタ 1

0xE000ED48 ID_DFR0 RO 0x00100000 デバッグ機能レジスタ 0c

0xE000ED4C ID_AFR0 RO 0x00000000 補助機能レジスタ 0

0xE000ED50 ID_MMFR0 RO 0x00100030 メモ リモデル機能レジスタ 0

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 4-3ID050813 Non-Confidential

Page 57: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

システム制御

0xE000ED54 ID_ MMFR1 RO 0x00000000 メモ リモデル機能レジスタ 1

0xE000ED58 ID_MMFR2 RO 0x01000000 メモ リモデル機能レジスタ 2

0xE000ED5C ID_MMFR3 RO 0x00000000 メモ リモデル機能レジスタ 3

0xE000ED60 ID_ISAR0 RO 0x01141110 命令セッ ト属性レジスタ 0

0xE000ED64 ID_ISAR1 RO 0x02112000 命令セッ ト属性レジスタ 1

0xE000ED68 ID_ISAR2 RO 0x21232231 命令セッ ト属性レジスタ 2

0xE000ED6C ID_ISAR3 RO 0x01111131 命令セッ ト属性レジスタ 3

0xE000ED70 ID_ISAR4 RO 0x01310132 命令セッ ト属性レジスタ 4

0xE000ED88 CPACR RW - コプロセッサアクセス制御レジスタ

0xE000EF00 STIR WO 0x00000000 ソフ ト ウェア ト リ ガ割り込みレジスタ

a. ビッ ト [10:8] のリセッ ト時の値は 0 です。 ENDIANNESS ビッ ト (ビ ッ ト [15]) の リセッ ト時の値は実装によって決ま り ます。

b. BFAR と MMFAR は同じ物理レジスタです。 このため、 BFARVALID ビッ ト と MMFARVALID ビッ トは相互に排他的です。

c. デバッグサポートが実装されていない場合、 ID_DFR0 の読み出し値は 0 です。

表 4-1 システム制御レジスタ ( 続き )

アドレス 名前 タイプ リセッ ト時の値 説明

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 4-4ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 58: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

システム制御

4.3 レジスタの説明

このセクシ ョ ンでは、 実装がこのプロセッサに固有であるシステム制御レジスタについて説明します。

4.3.1 補助制御レジスタ、 ACTLR

ACTLR の特徴は次のとおりです。

目的 プロセッサ内の機能について、 特定の部分を非稼働にします。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 レジスタの概要については、 表 4-1 (ページ 4-3) を参照して下さい。

ACTLR のビッ ト割り当てを、 図 4-1 に示します。

図 4-1 ACTLR のビッ ト割り当て

ACTLR のビッ ト割り当てを、 表 4-2 に示します。

4.3.2 CPUID ベースレジスタ、 CPUID

CPUID には次の特徴があり ます。

目的 次のものを指定します。

• プロセッサコアの ID 番号

表 4-2 ACTLR のビッ ト割り当て

ビッ ト 名前 機能

[31:10] - 予約

[9] DISOOFP 浮動小数点命令が、 整数命令との前後関係について順不同に完了するこ とを不可能にします。

[8] DISFPCA CONTROL.FPCA の自動更新を不可能にします。 詳細については、 「例外」 (ページ 7-8) を

参照して下さい。

[7:3] - 予約

[2] DISFOLD IT 命令のフォールディングを不可能にします。

[1] DISDEFWBUF デフォルトのメモリマップ アクセス中のライ トバッファの使用を不可能にします。 これによって、 すべてのバスフォールトが正確バスフォールトになり ますが、 メモリへのス ト アが完了しなければ次の命令を実行できないため、 プロセッサの性能が低下します。

[0] DISMCYCINT マルチサイクル命令の割り込みを不可能にします。 これによって、 割り込みのスタ ッキングが行われる前にロード / ス ト アと乗算 / 除算操作が完了されるため、 プロセッサの割り込みレイテンシが増大します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 4-5ID050813 Non-Confidential

Page 59: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

システム制御

• プロセッサコアのバージ ョ ン番号

• プロセッサコアの実装の詳細

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 レジスタの概要については、 表 4-1 (ページ 4-3) を参照して下さい。

CPUID のビッ ト割り当てを、 図 4-2 に示します。

図 4-2 CPUID のビッ ト割り当て

CPUID のビッ ト割り当てを、 表 4-3 に示します。

4.3.3 補助フォールトステータス レジスタ、 AFSR

AFSR には次の特徴があ り ます。

目的 追加のシステムフォールト情報をソフ ト ウェアに対して指定します。

使用制限 AFSR フラグは、 プロセッサの AUXFAULT 入力に直接マップされます。 外部ピンが 1 サイ クルの間 HIGH レベルになる と、 対応する AFSR ビッ トが 1 と してラ ッチされます。 このビッ トは、 対応する AFSR ビッ トに 1 を書き込むこ とによってのみク リ アできます。

AFSR ビッ トが書き込まれた場合、 または 1 と してラ ッチされた場合、 例外は発生しません。 AUXFAULT 入力信号を使用するには、 ソフ ト ウェアが AFSR をポーリ ングする必要があり ます。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 レジスタの概要については、 表 4-1 (ページ 4-3) を参照して下さい。

AFSR のビッ ト割り当てを、 図 4-3 (ページ 4-7) に示します。

表 4-3 CPUID のビッ ト割り当て

ビッ ト 名前 機能

[31:24] IMPLEMENTER 実装者を示します。 0x41 = ARM

[23:20] VARIANT プロセッサのリ ビジ ョ ンを示します。 0x0 = リビジ ョ ン 0

[19:16] (定数) 0xF と して読み出されます。

[15:4] PARTNO 部品番号を示します。 0xC24 = Cortex-M4

[3:0] REVISION パッチリ リースを示します。 0x1 = パッチ 1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 4-6ID050813 Non-Confidential

Page 60: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

システム制御

図 4-3 AFSR のビッ ト割り当て

AFSR のビッ ト割り当てを、 表 4-4 に示します。

AUXFAULT

31 0

表 4-4 AFSR のビッ ト割り当て

ビッ ト 名前 機能

[31:0] AUXFAULT AUXFAULT 入力のラ ッチされたもの

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 4-7ID050813 Non-Confidential

Page 61: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 5 章 メモリ保護ユニッ ト

本章では、 プロセッサのメモ リ保護ユニッ ト (MPU) について説明します。 本章は次のセクシ ョ ンで構成されています。

• 「MPU について」 (ページ 5-2)

• 「MPU の機能の説明」 (ページ 5-3)

• 「MPU のプログラマモデル」 (ページ 5-4)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 5-1ID050813 Non-Confidential

Page 62: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

メモリ保護ユニッ ト

5.1 MPU について

MPU は、 メモ リ を保護するためのオプシ ョ ンコンポーネン トです。 プロセッサは、標準の ARMv7 保護メモリシステム アーキテクチャモデルをサポート しています。MPU は、 次の機能を完全にサポート しています。

• 保護領域

• 保護領域のオーバラ ップ。 優先度は次のとおりです。

— 7 = 高優先度

— 0 = 低優先度

• アクセス許可

• システムへのメモ リ属性のエクスポート

MPU で不一致やアクセス許可違反が発生する と、 優先度をプログラム可能なMemManage フォールトハンド ラが呼び出されます。 詳細については、 『ARMv7-Mアーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

MPU は、 次の目的に使用できます。

• 特権規則の強制

• プロセスの分離

• アクセス規則の強制

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 5-2ID050813 Non-Confidential

Page 63: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

メモリ保護ユニッ ト

5.2 MPU の機能の説明

領域アクセス制御レジスタのアクセス許可ビッ ト TEX、 C、 B、 AP、 XN によって、対応する メモ リ領域へのアクセスが制御されます。 必要な許可なしにメモ リ領域へアクセスを行う と、 アクセス許可フォールトが発生します。 詳細については、『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 5-3ID050813 Non-Confidential

Page 64: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

メモリ保護ユニッ ト

5.3 MPU のプログラマモデル

MPU レジスタを、 表 5-1 に示します。 これらのレジスタについては、 『ARMv7-Mアーキテクチャ リ ファレンスマニュアル』 で解説されています。

表 5-1 MPU レジスタ

アドレス 名前 タイプ リセッ ト時の値

説明

0xE000ED90 MPU_TYPE RO 0x00000800 MPU タイプレジスタ

0xE000ED94 MPU_CTRL RW 0x00000000 MPU 制御レジスタ

0xE000ED98 MPU_RNR RW 0x00000000 MPU 領域番号レジスタ

0xE000ED9C MPU_RBAR RW 0x00000000 MPU 領域ベースアドレス レジスタ

0xE000EDA0 MPU_RASR RW 0x00000000 MPU領域属性およびサイズレジスタ

0xE000EDA4 MPU_RBAR_A1 0x00000000 MPU エイ リ アスレジスタ

0xE000EDA8 MPU_RASR_A1 0x00000000

0xE000EDAC MPU_RBAR_A2 0x00000000

0xE000EDB0 MPU_RASR_A2 0x00000000

0xE000EDB4 MPU_RBAR_A3 0x00000000

0xE000EDB8 MPU_RASR_A3 0x00000000

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 5-4ID050813 Non-Confidential

Page 65: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 6 章 ネスト型ベクタ割り込みコン ト ローラ

本章では、 ネス ト型ベクタ割り込みコン ト ローラ (NVIC) について説明します。 本章は次のセクシ ョ ンで構成されています。

• 「NVIC について」 (ページ 6-2)

• 「NVIC の機能の説明」 (ページ 6-3)

• 「NVIC のプログラマモデル」 (ページ 6-4)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 6-1ID050813 Non-Confidential

Page 66: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ネスト型ベクタ割り込みコン ト ローラ

6.1 NVIC について

NVIC は、 構成可能な割り込み処理をプロセッサに提供するもので、 次の機能があります。

• レイテンシが短い例外および割り込み処理を実現する

• 電力管理を制御する

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 6-2ID050813 Non-Confidential

Page 67: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ネスト型ベクタ割り込みコン ト ローラ

6.2 NVIC の機能の説明

NVIC は 大 240 の割り込みをサポート し、 各割り込みには 大 256 レベルの優先度を設定できます。 割り込みの優先度は動的に変更可能です。 NVIC とプロセッサコアのインタフェースは密接に結合されているため、 レイテンシの短い割り込み処理や、後着割り込みの効率的な処理が可能です。 NVIC は、 割り込みのテールチェインを可能にするため、 スタ ッ ク された (ネス ト された) 割り込みの情報を保持します。

NVIC への完全なアクセスは特権モードからのみ実行できますが、 構成および制御レジスタを稼働する と、 ユーザモードで割り込みを保留状態にできます。 ユーザモードでそれ以外のアクセスを行う と、 常にバスフォールトが引き起こ されます。

すべての NVIC レジスタは、 特に記載されていない限り、 バイ ト、 ハーフワード、ワードアクセスを使用してアクセスできます。 NVIC レジスタは SCS 内に存在します。

すべての NVIC レジスタ とシステムデバッグ レジスタは、 プロセッサのエンディアン形式の状態にかかわらず、 リ トルエンディアンです。

プロセッサの例外処理については、 「例外」 (ページ 3-24) を参照して下さい。

6.2.1 低電力モード

実装にウェークアップ割り込みコン ト ローラ (WIC) を含めるこ とができます。 これによって、 プロセッサと NVIC を超低電力のス リープモードに移行し、 割り込みの識別と優先度付けは WIC に任せるこ とができます。

プロセッサには、 割り込み待ち (WFI)、 イベン ト待ち (WFE)、 イベン ト送信 (SEV) 命令が完全に実装されています。 さ らに、 プロセッサは SLEEPONEXIT の使用もサポート しており、 これを使用した場合、 プロセッサコアが例外ハンド ラからスレッ ドモードに復帰したと きにス リープモードに移行します。 詳細については、 『ARMv7-Mアーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

6.2.2 レベル割り込みとパルス割り込みの比較

プロセッサは、 レベル割り込みとパルス割り込みの両方をサポート しています。 レベル割り込みは、 デバイスにアクセスする ISR によってク リ アされるまで、 アサート され続けます。 パルス割り込みは、 エッジモデルの一種です。 パルスのサンプリングは非同期ではなく、 Cortex-M4 のクロ ッ ク FCLK の立ち上がりエッジで行われるこ とを保証する必要があ り ます。

レベル割り込みの場合、 割り込みルーチンから復帰する前に信号がアサート解除されないと きは、 割り込みは再度保留状態に移行してから、 再度アクティブになり ます。 これは FIFO およびバッファベースのデバイスの場合に特に有用です。 これにより、 それらのデバイスが余分な作業なしに、 1 つの ISR によって、 または起動の繰り返しによってドレインされるこ とが保証されるのが理由です。 これは、 デバイスは空になるまで、 信号をアサートのまま保持するこ とを意味します。

パルス割り込みは、 ISR の間に再アサートするこ とができます。 このため、 割り込みが同時に保留中とアクティブの両方の状態になる場合があり ます。 割り込みが保留中に別のパルスが到着した場合、 その割り込みは保留中に維持され、 ISR は 1 回しか実行されません。

パルス割り込みは、 ほとんどの場合外部信号によって、 一定の間隔で発生する、 または繰り返し発生する信号に使用されます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 6-3ID050813 Non-Confidential

Page 68: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ネスト型ベクタ割り込みコン ト ローラ

6.3 NVIC のプログラマモデル

NCIC レジスタを、 表 6-1 に示します。

以下のセクシ ョ ンでは、 実装がこのプロセッサに固有である NVIC レジスタについて説明します。 他のレジスタについては、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 で解説されています。

6.3.1 割り込みコン トローラタイプ レジスタ、 ICTR

ICTR には次の特徴があ り ます。

目的 NVIC がサポートする割り込みラインの数を示します。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 レジスタの概要については、 表 6-1 を参照して下さい。

ICTR のビッ ト割り当てを、 図 6-1 に示します。

図 6-1 ICTR のビッ ト割り当て

表 6-1 NVIC レジスタ

アドレス 名前 タイプリセッ ト時の値 説明

0xE000E004 ICTR RO - 「割り込みコン ト ローラタイプ レジスタ、 ICTR」

0xE000E100~0xE000E11C

NVIC_ISER0 ~NVIC_ISER7

RW 0x00000000 割り込みイネーブルセッ ト レジスタ

0xE000E180~0xE000E19C

NVIC_ICER0 ~NVIC_ICER7

RW 0x00000000 割り込みイネーブルク リア レジスタ

0xE000E200~0xE000E21C

NVIC_ISPR0 ~NVIC_ISPR7

RW 0x00000000 割り込み保留セッ ト レジスタ

0xE000E280~0xE000E29C

NVIC_ICPR0 ~NVIC_ICPR7

RW 0x00000000 割り込み保留ク リアレジスタ

0xE000E300~0xE000E31C

NVIC_IABR0 ~NVIC_IABR7

RO 0x00000000 割り込みアクティブビッ ト レジスタ

0xE000E400~0xE000E4EC

NVIC_IPR0 ~NVIC_IPR59

RW 0x00000000 割り込み優先度レジスタ

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 6-4ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 69: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ネスト型ベクタ割り込みコン ト ローラ

ICTR のビッ ト割り当てを、 表 6-2 に示します。

表 6-2 ICTR のビッ ト割り当て

ビッ ト 名前 機能

[31:4] - 予約

[3:0] INTLINESNUM 割り込みラインの総数で、 32 個のグループ単位で示されます。b0000 = 0 ~ 32b0001 = 33 ~ 64b0010 = 65 ~ 96b0011 = 97 ~ 128b0100 = 129 ~ 160b0101 = 161 ~ 192b0110 = 193 ~ 224b0111 = 225 ~ 256a

a. プロセッサは、 大 240 の外部割り込みをサポート します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 6-5ID050813 Non-Confidential

Page 70: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 7 章 浮動小数点ユニッ ト

本章では、 浮動小数点ユニッ ト (FPU) のプログラマモデルについて説明します。 本章は次のセクシ ョ ンで構成されています。

• 「FPU について」 (ページ 7-2)

• 「FPU の機能の説明」 (ページ 7-3)

• 「FPU のプログラマモデル」 (ページ 7-9)

Cortex-M4 (FPU 付き) プロセッサは、 オプシ ョ ンの FPU を搭載している Cortex-M4 プロセッサです。 本章では、 プロセッサとい う一般的な用語は Cortex-M4 (FPU 付き) プロセッサのみを意味します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-1ID050813 Non-Confidential

Page 71: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

7.1 FPU について

Cortex-M4 の FPU は、 ARMv7-M 浮動小数点拡張機能の単精度バリ アン トの実装です(FPv4-SP)。 IEEE 754 規格と呼ばれる、 『ANSI/IEEE Std 754-2008, IEEE Standard for Binary Floating-Point Arithmetic』 に準拠した浮動小数点計算機能が提供されています。FPU は、 『ARM アーキテクチャ リ ファレンスマニュアル』 で解説されているすべての単精度データ処理命令とデータ型をサポート しています。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-2ID050813 Non-Confidential

Page 72: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

7.2 FPU の機能の説明

FPU は、 単精度の加算、 減算、 乗算、 除算、 積和演算、 平方根演算を完全にサポート します。 また、 固定小数点と浮動小数点のデータ形式の相互変換、 および浮動小数点定数命令も提供します。

FPU の機能の説明には、 次のト ピッ クが含まれます。

• 「レジスタバンクの FPU ビュー」

• 「動作モード」• 「FPU の命令セッ ト 」 (ページ 7-4)

• 「IEEE 754 規格への準拠」 (ページ 7-6)

• 「IEEE 754 規格の完全な実装」 (ページ 7-6)

• 「IEEE 754 規格の実装の選択」 (ページ 7-6)

• 「例外」 (ページ 7-8)

• 「FPU の稼働」 (ページ 7-9)

7.2.1 レジスタバンクの FPU ビュー

FPU が提供する拡張レジスタファイルには、 32 本の単精度レジスタが含まれます。これらのレジスタは、 次のいずれかの形式で参照できます。

• 16 本の 64 ビッ ト ダブルワード レジスタ、 D0~ D15

• 32 本の 32 ビッ ト シングルワード レジスタ、 S0~ S31

• これらのビューに含まれるレジスタの組み合わせ

図 7-1 FPU のレジスタバンク

レジスタ間のマッピングは次のとおりです。

• S<2n> は、 D<n> の下位半分にマップされます。

• S<2n+1> は、 D<n> の上位半分にマップされます。

例えば、 D6 の値の下位半分にアクセスするには S12 に、 上位半分にアクセスするにはS13 にアクセスします。

7.2.2 動作モード

各種のアプリ ケーシ ョ ンに対応するため、 FPU には 3 つの動作モードが存在します。

• 「完全準拠モード」 (ページ 7-4)

• 「Flush-to-Zero モード」 (ページ 7-4)

• 「デフォルト NaN モード」 (ページ 7-4)

D0

D1

D2

D3

D14

D15

S0S1S2S3S4S5S6S7

S28S29S30S31

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-3ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 73: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

完全準拠モード

完全準拠モードでは、 FPU はすべての動作を、 IEEE 754 規格に従ってハードウェアで処理します。

Flush-to-Zero モード

浮動小数点ステータスおよび制御レジスタの FZ ビッ ト (FPSCR[24]) をセッ トすると、 Flush-to-Zero モードが可能になり ます。 このモードでは、 FPU は算術 CDP 演算の非正規化入力オペランドをすべて、 0 と して演算で扱います。 0 のオペランドから発生する例外は、 適切に通知されます。 VABS、 VNEG、 VMOV 命令は算術 CDP 演算と見なされないため、 Flush-to-Zero モードの影響を受けません。 IEEE 754 規格で定義されているよ うに、 丸め前の結果が、 デスティネーシ ョ ンの精度で表現できる 小の正規化数値よ り も絶対値が小さい場合、 その結果は小さいと見なされ、 正の 0 で置き換えられます。 IDC フラグ (FPSCR[7]) は、 入力フラ ッシュが行われたこ とを示します。UFC フラグ (FPSCR[3]) は、 結果フラ ッシュが行われたこ とを示します。

デフォルト NaN モード

DN ビッ ト (FPSCR[25]) をセッ トする と、 デフォルト NaN モードが可能にな り ます。このモードでは、 入力に NaN が含まれている、 または NaN の結果を生成するすべての算術データ処理操作で、 結果と してデフォルト NaN が返されます。 仮数ビッ トの伝播は、 VABS、 VNEG、 VMOV 操作でのみ維持されます。 他のすべての CDP 操作では、 入力NaN の仮数ビッ トに含まれている情報は無視されます。

7.2.3 FPU の命令セッ ト

FPU の命令セッ ト を、 表 7-1 に示します。

表 7-1 FPU の命令セッ ト

操作 説明 アセンブラ サイクル数

絶対値 浮動小数点の絶対値 VABS.F32 1

加算 浮動小数点加算 VADD.F32 1

比較 レジスタまたは 0 との浮動小数点比較 VCMP.F32 1

レジスタまたは 0 との浮動小数点比較 VCMPE.F32 1

変換 整数、 固定小数点数、 半精度、 単精度 VCVT.F32 1

除算 浮動小数点数 VDIV.F32 14

ロード 複数の倍精度 VLDM.64 1 + 2 * N、 N は倍精度数値の数

複数の単精度 VLDM.32 1 + N、 N は単精度数値の数

単一の倍精度 VLDR.64 3

単一の単精度 VLDR.32 2

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-4ID050813 Non-Confidential

Page 74: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

移動 ダブルワードの上位 / 下位半分と コアレジスタ との間

VMOV 1

イ ミディエート / 単精度と浮動小数点レジスタ との間

VMOV 1

2 つの単精度 /1 つの倍精度と 2 つのコアレジスタとの間、 または 1 つの単精度と 1 つのコアレジスタ との間

VMOV 2

浮動小数点制御 / ステータスからコアレジスタへ VMRS 1

コアレジスタから浮動小数点制御 / ステータスへ VMSR 1

乗算 単精度 VMUL.F32 1

乗算後に単精度累算 VMLA.F32 3

乗算後に単精度減算 VMLS.F32 3

乗算後に単精度累算してから補数 VNMLA.F32 3

乗算後に単精度減算してから補数 VNMLS.F32 3

乗算 (融合) 乗算後に単精度累算 VFMA.F32 3

乗算後に単精度減算 VFMS.F32 3

乗算後に単精度累算してから補数 VFNMA.F32 3

乗算後に単精度減算してから補数 VFNMS.F32 3

補数 単精度 VNEG.F32 1

および単精度乗算 VNMUL.F32 1

ポップ スタ ッ クから倍精度レジスタをポップ VPOP.64 1 + 2 * N、 N は倍精度レジスタの数

スタ ッ クから単精度レジスタをポップ VPOP.32 1 + N、 N はレジスタの数

プッシュ スタ ッ クに倍精度レジスタをプッシュ VPUSH.64 1 + 2 * N、 N は倍精度レジスタの数

スタ ッ クに単精度レジスタをプッシュ VPUSH.32 1 + N、 N はレジスタの数

平方根 単精度数値の平方根 VSQRT.F32 14

ス ト ア 複数の倍精度レジスタ VSTM.64 1 + 2 * N、 N は倍精度数値の数

複数の単精度レジスタ VSTM.32 1 + N、 N は単精度数値の数

単一の倍精度レジスタ VSTR.64 3

単一の単精度レジスタ VSTR.32 2

減算 単精度 VSUB.F32 1

表 7-1 FPU の命令セッ ト ( 続き )

操作 説明 アセンブラ サイクル数

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-5ID050813 Non-Confidential

Page 75: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

注 • VDIVR または VSQRT 命令の後に続く整数のみの命令は、 アウ トオブ オーダに完了

されます。 VDIV および VSQRT 命令は、 以後に浮動小数点命令が実行されなければ 1 サイ クルで完了します。

• 浮動小数点算術データ処理命令、 例えば加算、 減算、 乗算、 除算、 平方根、 すべての形式の積和演算、 すべての型の変換は、 次の命令でその結果が使用される場合は余分に 1 サイ クルが必要です。

• 融合およびチェイン積和演算命令は、 1 サイ クル後に加数を使用するため、 算術演算命令の後に積和演算命令が続く場合、 算術演算命令の結果は MAC 命令の加数と して使用されます。

7.2.4 IEEE 754 規格への準拠

デフォルト NaN(DN) および Flush-to-Zero(FZ) モードが不可能な場合、 FPv4 の機能はハードウェアで IEEE 754 規格に準拠しています。 この準拠を実現するためにサポート コードは必要あり ません。

FP アーキテクチャでの IEEE 754 規格への準拠については、 『ARM アーキテクチャ リファレンスマニュアル』 を参照して下さい。

7.2.5 IEEE 754 規格の完全な実装

Cortex-M4 (FPU 付き) 浮動小数点命令セッ トは、 IEEE 754-2008 規格で定義されているすべての操作をサポート していません。 サポート されていない操作を次に示しますが、 これで全部ではあ り ません。

• 剰余

• 浮動小数点数の整数値浮動小数点数への丸め

• 2 進数から 10 進数への変換

• 10 進数から 2 進数への変換

• 単精度値と倍精度値との直接比較

Cortex-M4 の FPU は、 IEEE 規格に記載されている融合 MAC 演算をサポート しています。 IEEE 754-2008 規格を完全に実装するには、 ライブラ リ関数を使用して浮動小数点機能を拡張する必要があり ます。

7.2.6 IEEE 754 規格の実装の選択

IEEE 754-2008 規格で許可され、 FPv4 アーキテクチャで使用されている実装選択のいくつかは、 『ARM アーキテクチャ リ ファレンスマニュアル』 に記載されています。

NaN 処理

指数フィールドが 大値で、 仮数フ ィールドが 0 以外の単精度値はすべて、 有効なNaN です。 仮数の 上位ビッ トが 0 の場合、 シグナル NaN (SNaN) を示します。 1 の場合、 クワイエッ ト NaN (QNaN) を示します。 2 つの NaN 値は、 いずれかのビッ トが異なる場合に別の NaN と して扱われます。 デフォルト NaN 値を、 表 7-2 に示します。

表 7-2 デフォルト NaN 値

符号 指数 仮数

0 00xFF ビッ ト [22] = 1、 ビッ ト [21:0] = すべて 0

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-6ID050813 Non-Confidential

Page 76: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

ARM 浮動小数点機能と ライブラ リでの NaN 入力処理は、 次のよ うに定義されます。

• 完全準拠モードでは、 NaN は 『ARM アーキテクチャ リ ファレンスマニュアル』に記載されているよ うに処理されます。 ハードウェアは、 算術 CDP 命令について NaN を直接処理します。 データ転送操作では、 NaN は無効演算例外を引き起こ さずに転送されます。 算術以外の CDP 命令と、 VABS、 VNEG、 VMOV では、 NaN はコピーされ、 命令によって指定されていれば符号が変更され、 無効演算例外は発生しません。

• デフォルト NaN モードでは、 NaN オペランドを含む算術 CDP 命令について、NaN オペランドの仮数部に関係なく、 デフォルト NaN が返されます。 算術 CDP

操作に SNaN が含まれている と、 IOC フラグ (FPSCR[0]) がセッ ト されます。データ転送命令と非算術 CDP 命令による NaN の処理は、 完全準拠モードでの処理と同じです。

命令実行に対する NaN オペランドの影響の要約を、 表 7-3 に示します。

比較

比較結果によ り、 FPSCR のフラグが変更されます。 MVRS APSR_nzcv 命令 (従来の FMSTAT)を使用して、 現在のフラグを FPSCR から APSR へ転送できます。 IEEE 754-2008 規格の命題から ARM の条件へのマッピングについては、 『ARM アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。 使用するフラグは、 後続の ARM 命令の条件付き実行で、 IEEE 規格に定義されている命題がテス トできるよ うに選択されています。

アンダーフロー

Cortex-M4 (FPU 付き) の FPU は、 アンダーフロー例外を生成するため、 IEEE 754-2008 規格に記載されている丸め前形式の小ささ と、 不正確な結果形式の精度損失を使用します。

表 7-3 QNaN と SNaN の処理

命令の種類デフォルトNaN モード QNaN オペランドがある場合 SNaN オペランドがある場合

算術 CDP

オフ 『ARM アーキテクチャ リ ファレンスマニュアル』 に記載されている規則に従い、 QNaN オペランド、 複数の QNaNオペランドが存在する場合にはそのいずれかが返されます。

IOCa がセッ ト されます。 SNaN はクワイエッ ト化され、 『ARM アーキテクチャ リ ファレンスマニュアル』 に記載されている規則に従って、 結果となる NaN が決定されます。

オン デフォルト NaN が返されます。 IOCa がセッ ト されます。 デフォルト NaN が返されます。

非算術 CDPオフ

NaN は、 必要に応じて符号が変更され、 デスティネーシ ョ ンに渡されます。オン

FCMP(Z) - 順序付け無しの比較が行われます。 IOC がセッ ト されます。 順序付け無しの比較が行われます。

FCMPE(Z) - IOC がセッ ト されます。 順序付け無しの比較が行われます。

IOC がセッ ト されます。 順序付け無しの比較が行われます。

ロード / スト ア

オフすべての NaN が転送されます。

オン

a. IOC は、 無効演算例外フラグ (FPSCR[0]) の略称です。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-7ID050813 Non-Confidential

Page 77: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

Flush-to-Zero モードでは、 IEEE 規格の記載に従って、 丸め前に結果が小さい場合は0 にフラ ッシュされ、 UFC フラグ (FPSCR[3]) がセッ ト されます。 Flash-to-Zero モードの詳細については、 『ARM アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

FPU が Flush-to-Zero モードでない場合、 非正規数のオペランドに対しても演算が実行されます。 演算で小さな結果が生成されなかった場合は、 計算結果が返され、UFC フラグ (FPSCR[3]) はセッ ト されません。 演算が不正確な場合は、 IXC フラグ(FPSCR[4]) がセッ ト されます。 演算で小さな結果が生成された場合、 結果は非正規数値または 0 値にな り、 結果が不正確でもある場合は UFC フラグ (FPSCR[3]) がセット されます。

7.2.7 例外

FPU は、 FPv4 アーキテクチャに従い、 各命令での必要に応じて、 FPSCR レジスタの累積例外ステータスフラグを設定します。 FPU はユーザモード ト ラ ップをサポートしていません。 FPSCR の例外イネーブルビッ トは読み出し値 0 で、 書き込みは無視されます。 プロセッサには FPIXC、 FPUFC、 FPOFC、 FPDZC、 FPIDC、 FPIOC の6 つの出力ピンもあ り、 それぞれが累積例外フラグの 1 つのステータスを反映しています。 これらの出力の説明については、 『Cortex-M4 統合および実装マニュアル』 を参照して下さい。

プロセッサは、 レイジースタ ッ クを使用して例外のレイテンシを短縮できます。 「補助制御レジスタ、 ACTLR」 (ページ 4-5) を参照して下さい。 これは、 プロセッサはFP 状態用の領域をスタ ッ ク上に予約するが、 その状態情報をスタ ッ クへ保存しないこ とを意味します。 詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-8ID050813 Non-Confidential

Page 78: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

浮動小数点ユニッ ト

7.3 FPU のプログラマモデル

Cortex-M4 (FPU 付き) の FPU の FP システムレジスタを、 表 7-4 に示します。

Cortex-M4 (FPU 付き) の FPU レジスタはすべて、 『ARMv7-M アーキテクチャ リファレンスマニュアル』 に解説されています。

7.3.1 FPU の稼働

特権およびユーザモードの両方で FPU を稼働するためのコードシーケンス例を、例 7-1 に示します。 CPACR への読み出し と書き込みを行うには、 プロセッサが特権モードである必要があり ます。

例 7-1 FPU の稼働

; CPACR is located at address 0xE000ED88LDR.W R0, =0xE000ED88; Read CPACRLDR R1, [R0]; Set bits 20-23 to enable CP10 and CP11 coprocessorsORR R1, R1, #(0xF << 20); Write back the modified value to the CPACRSTR R1, [R0]

表 7-4 Cortex-M4 (FPU 付き) の浮動小数点システムレジスタ

アドレス 名前 タイプリセッ ト時の値 説明

0xE000EF34 FPCCR RW 0xC0000000 FP コンテキス ト制御レジスタ

0xE000EF38 FPCAR RW - FP コンテキス ト アドレスレジスタ

0xE000EF3C FPDSCR RW 0x00000000 FP デフォルト ステータス制御レジスタ

0xE000EF40 MVFR0 RO 0x10110021 メディアおよび VFP 機能レジスタ0、 MVFR0

0xE000EF44 MVFR1 RO 0x11000011 メディアおよび VFP 機能レジスタ1、 MVFR1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 7-9ID050813 Non-Confidential

Page 79: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 8 章 デバッグ

本章では、 プロセッサで実行されているソフ ト ウェアのデバッグとテス ト を行う方法について説明します。 本章は次のセクシ ョ ンで構成されています。

• 「デバッグについて」 (ページ 8-2)

• 「AHB-AP について」 (ページ 8-6)

• 「フラ ッシュパッチおよびブレークポイン トユニッ ト (FPB) について」 (ページ 8-9)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-1ID050813 Non-Confidential

Page 80: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

8.1 デバッグについて

デバッグの構成は、 デバッグが実装されるかど うかも含め、 プロセッサの実装により決定されます。 プロセッサにデバッグが実装されない場合、 ROM テーブルは存在せず、 ホールト、 ブレークポイン ト、 ウォッチポイン トの機能も存在しません。

基本的なデバッグ機能には、 プロセッサのホールト、 シングルステップ、 プロセッサのコアレジスタへのアクセス、 ベクタキャッチ、 無制限のソフ ト ウェアブレークポイン ト、 システムメモ リへの完全なアクセスが含まれます。 詳細については、『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

デバッグ機能には、 オプシ ョ ンと して次のものを含めるこ とができます。

• 2 つのリテラルコンパレータ と 6 つの命令コンパレータ、 または 2 つの命令コンパレータのみをサポートするブレークポイン トユニッ ト

• 1 つまたは 4 つのウォッチポイン ト をサポートするウォッチポイン トユニッ ト

デバッグが実装されているプロセッサの場合、 デバッガでは CoreSight デバッグインフラス ト ラ クチャを使用してデバッグコンポーネン ト を識別し、 接続するこ とをお勧めします。

デバッガは、 図 8-1 の推奨フローに従って CoreSight デバッグインフラス ト ラ クチャ内のコンポーネン ト を検出できます。 この例では、 デバッガは CoreSight システムに含まれている各 CoreSight コンポーネン トのペリ フェラルおよびコンポーネン ト IDレジスタを読み出します。

図 8-1 CoreSight の検出

CoreSight システム内の Cortex-M4 プロセッサを識別するには、 デバッガで次の動作を実行するこ とをお勧めします。

1. CoreSight 識別を使用して、 Cortex-M4 ROM テーブルの位置を見つけ、 識別します。 詳細については、 表 8-1 (ページ 8-3) を参照して下さい。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-2ID050813 Non-Confidential

Page 81: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

2. その Cortex-M4 ROM テーブル内で、 次のポインタを追跡します。

a. システム制御空間 (SCS)

b. ブレークポイン トユニッ ト (BPU)

c. データウォッチポイン ト ユニッ ト (DWT)

詳細については、 表 8-2 (ページ 8-4) を参照して下さい。

デバッガが CoreSight 識別から SCS を識別する と き、 SCS のアドレス 0xE000ED00 にある CPUID レジスタから、 プロセッサとその リ ビジ ョ ン番号を識別できます。

デバッガでは、 初に検出した ROM テーブルが Cortex-M4 ROM テーブルである と想定するこ とはできません。 他の CoreSight コンポーネン トがシステムに存在する場合、 アクセスポート と Cortex-M4 ROM テーブルとの間にシステム ROM テーブルが必要になるこ とがあ り ます。 システム ROM テーブルが存在する場合、 実装固有の識別子がそのテーブルに含まれているこ とがあ り ます。

8.1.1 Cortex-M4 ROM テーブルの識別とエン ト リ

デバッガ検出用の ROM テーブル識別レジスタ とその値を、 表 8-1 に示します。 これらのレジスタによ り、 デバッガはプロセッサと、 そのデバッグ機能を識別できます。

ペリ フェラル ID レジスタでは、 これらの値によ り、 Cortex-M4 プロセッサ用の汎用の ROM テーブルと して識別されます。 実装ではこれらのレジスタを使用して、 デバイスの製造業者と部品番号を識別できます。

これは、 コンポーネン ト ID レジスタで CoreSight ROM テーブルと して識別されます。

注 Cortex-M4 ROM テーブルは、 ワードサイズのト ランザクシ ョ ンのみをサポート します。

表 8-1 Cortex-M4 ROM テーブルの識別値

アドレス レジスタ 値 説明

0xE00FFFD0 ペリ フェラル ID4 0x00000004 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 の 「コンポーネン トおよびペリフェラル ID レジスタのフォーマッ ト 」0xE00FFFD4 ペリ フェラル ID5 0x00000000

0xE00FFFD8 ペリ フェラル ID6 0x00000000

0xE00FFFDC ペリ フェラル ID7 0x00000000

0xE00FFFE0 ペリ フェラル ID0 0x000000C4

0xE00FFFE4 ペリ フェラル ID1 0x000000B4

0xE00FFFE8 ペリ フェラル ID2 0x0000000B

0xE00FFFEC ペリ フェラル ID3 0x00000000

0xE00FFFF0 コンポーネン ト ID0 0x0000000D

0xE00FFFF4 コンポーネン ト ID1 0x00000010

0xE00FFFF8 コンポーネン ト ID2 0x00000005

0xE00FFFFC コンポーネン ト ID3 0x000000B1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-3ID050813 Non-Confidential

Page 82: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

Cortex-M4 ROM テーブルが指し示す CoreSight コンポーネン ト を、 表 8-2 に示します。 値は、 実装されているデバッグ構成によって異な り ます。

ROM テーブルエン ト リは、 プロセッサのデバッグコンポーネン ト を指しています。各エン ト リの値は、 ROM テーブルのベースアドレス 0xE00FF000 からそのコンポーネン トへのオフセッ トです。

ROM テーブルの ID と コンポーネン ト レジスタ、 およびそれらのアドレス とアクセスタイプの詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』および 『ARM CoreSight コンポーネン ト テクニカルリ ファレンス マニュアル』 を参照して下さい。

8.1.2 システム制御空間

デバッグが実装されている場合、 プロセッサは SCS のレジスタを経由してデバッグを提供します。 次のセクシ ョ ンを参照して下さい。

• 「デバッグレジスタの概要」 (ページ 8-5)

• 「システム アドレスマップ」 (ページ 3-15)

表 8-2 Cortex-M4 ROM テーブルのコンポーネン ト

アドレス コンポーネン ト 値 説明

0xE00FF000 SCS 0xFFF0F003 「システム制御空間」 を参照

0xE00FF004 DWT 0xFFF02003a

a. ウォ ッチポイン トが実装されていない場合、 読み出し値は 0xFFF02002 です。

表 9-1 (ページ 9-4) を参照

0xE00FF008 FPB 0xFFF03003b

b. ブレークポイン トが実装されていない場合、 読み出し値は 0xFFF03002 です。

表 8-7 (ページ 8-10) を参照

0xE00FF00C ITM 0xFFF01003c

c. ITM が実装されていない場合、 読み出し値は 0xFFF01002 です。

表 10-1 (ページ 10-4) を参照

0xE00FF010 TPIU 0xFFF41003d

d. TPIU が実装されていない場合、 読み出し値は 0xFFF41002 です。

表 11-1 (ページ 11-5) を参照

0xE00FF014 ETM 0xFFF42003e

e. ETM が実装されていない場合、 読み出し値は 0xFFF42002 です。

『ETM-M4 テクニカルリ ファレンス マニュアル』 を参照

0xE00FF018 終了マーカ 0x00000000 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 の 「DAP アクセス可能な ROMテーブル」 を参照0xE00FFFCC システムアクセス 0x00000001

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-4ID050813 Non-Confidential

Page 83: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

SCS CoreSight 識別

デバッガ検出用の SCS CoreSight 識別レジスタ とその値を、 表 8-3 に示します。Cortex-M4 プロセッサのデバッガの 終的な識別は、 SCS の CPUID レジスタによって行われます。 「CPUID ベースレジスタ、 CPUID」 (ページ 4-5) を参照して下さい。

SCS CoreSight 識別レジスタ、 およびそれらのアドレス とアクセスタイプの詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 および 『ARM CoreSight コンポーネン ト テクニカルリ ファレンス マニュアル』 を参照して下さい。

8.1.3 デバッグレジスタの概要

デバッグレジスタを、 表 8-4 に示します。 これらのレジスタはすべて 32 ビッ ト幅です。 詳細については、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

コアデバッグはオプシ ョ ンのコンポーネン トです。 コアデバッグを取り除いた場合、ホールトモードでのデバッグはサポート されないため、 ホールト、 ステップ実行、レジスタ転送の機能は存在しません。 この場合でも、 デバッグモニタ モードはサポート されます。

表 8-3 SCS 識別値

アドレス レジスタ 値 説明

0xE000EFD0 ペリ フェラル ID4 0x00000004 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 の 「コンポーネン トおよびペリ フェラル ID レジスタのフォーマット 」」

0xE000EFE0 ペリ フェラル ID0 0x0000000C

0xE000EFE4 ペリ フェラル ID1 0x000000B0

0xE000EFE8 ペリ フェラル ID2 0x0000000B

0xE000EFEC ペリ フェラル ID3 0x00000000

0xE000EFF0 コンポーネン ト ID0 0x0000000D

0xE000EFF4 コンポーネン ト ID1 0x000000E0

0xE000EFF8 コンポーネン ト ID2 0x00000005

0xE000EFFC コンポーネン ト ID3 0x000000B1

表 8-4 デバッグレジスタ

アドレス 名前 タイプリセッ ト時の値 説明

0xE000ED30 DFSR RW 0x00000000a

a. パワーオン リ セッ ト時のみ

デバッグフォールト ステータスレジスタ

0xE000EDF0 DHCSR RW 0x00000000 デバッグホールト制御およびステータスレジスタ

0xE000EDF4 DCRSR WO - デバッグ コアレジスタ セレクタレジスタ

0xE000EDF8 DCRDR RW - デバッグ コアレジスタ データレジスタ

0xE000EDFC DEMCR RW 0x00000000 デバッグ例外およびモニタ制御レジスタ

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-5ID050813 Non-Confidential

Page 84: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

8.2 AHB-AP について

AHB-AP は、 『ARM デバッグインタフェース v5、 アーキテクチャ仕様』 で定義されている メモ リ アクセスポートです。 AHB-AP は Cortex-M4 システムへのオプシ ョ ンのデバッグ アクセスポートで、 SCS 経由で、 プロセッサレジスタを含むシステム内のすべてのメモリおよびレジスタへのアクセスを提供します。 システムアクセスは、プロセッサステータスから独立しています。 AHB-AP へのアクセスには、 SW-DP または SWJ-DP が使用されます。

AHB-AP はバスマ ト リ ッ クスのマスタです。 ト ランザクシ ョ ンは AHB-AP プログラマモデルを使用して行われ、 バスマ ト リ ッ クスへの AHB-Lite ト ランザクシ ョ ンが生成されます。

8.2.1 AHB-AP ト ランザクシ ョ ンタイプ

AHB-AP はバス上で連続する ト ランザクシ ョ ンを実行しないため、 すべてのト ランザクシ ョ ンは非シーケンシャルです。 AHB-AP は、 アンアラインドおよびビッ トバンドの ト ランザクシ ョ ンを実行できます。 これらの ト ランザクシ ョ ンは、 バスマ トリ ッ クスによ り処理されます。 AHB-AP ト ランザクシ ョ ンは MPU ルッ クアップの対象ではあり ません。 AHB-AP ト ランザクシ ョ ンは FPB をバイパスするため、 FPB はAHB-AP ト ランザクシ ョ ンを リマップできません。

AHB-AP ト ランザクシ ョ ンはリ トルエンディアンです。

8.2.2 AHB-AP のプログラマモデル

AHB-AP のレジスタを、 表 8-5 に示します。 AHB-AP が存在しない場合、 これらのレジスタの読み出し値は 0 です。 この表に示されていないレジスタの読み出し値はすべて 0 です。

表 8-5 AHB-AP レジスタの概要

オフセッ ト a

a. この表に示されているオフセッ トは、 DAP メモ リ空間の AHB-AP の位置に対する相対値です。 この空間は、 アクセスポートからのみ参照できます。 プロセッサのメモ リマップの一部ではあ り ません。

名前 タイプリセッ ト時の値

説明

0x00 CSW RW レジスタ参照

「AHB-AP 制御およびステータスワード レジスタ、 CSW」 (ページ 8-7)

0x04 TAR RW - AHB-AP 転送アドレスレジスタ

0x0C DRW RW - AHB-AP データ読み出し / 書き込みレジスタ

0x10 BD0 RW - AHB-AP バンク データレジスタ 0

0x14 BD1 RW - AHB-AP バンク データレジスタ 1

0x18 BD2 RW - AHB-AP バンク データレジスタ 2

0x1C BD3 RW - AHB-AP バンク データレジスタ 3

0xF8 DBGDRAR RO 0xE00FF003 AHB-AP ROM アドレスレジスタ

0xFC IDR RO 0x24770011 AHB-AP 識別レジスタ

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-6ID050813 Non-Confidential

Page 85: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

以下のセクシ ョ ンでは、 実装がこのプロセッサに固有である AHB-AP レジスタについて説明します。 他のレジスタについては、 『CoreSight コンポーネン ト テクニカルリ ファレンス マニュアル』 で解説されています。

AHB-AP 制御およびステータスワード レジスタ、 CSW

CSW には次の特徴があ り ます。

目的 AHB インタフェースによる転送の構成と制御を行います。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 レジスタの概要については、 表 8-5 (ページ 8-6) を参照して下さい。

CSW のビッ ト割り当てを、 図 8-2 に示します。

図 8-2 CSW のビッ ト割り当て

CSW のビッ ト割り当てを、 表 8-6 に示します。

表 8-6 CSW のビッ ト割り当て

ビッ ト 名前 機能

[31:30] - 予約。 b00 と して読み出されます。

[29] MasterTypea 0 = コア

1 = デバッグ

ト ランザクシ ョ ンが未解決の場合、 このビッ ト を変更するこ とはできません。 デバッガは 初にビッ ト [7]、 TransInProg をチェッ クする必要があ り ます。

リセッ ト時の値 = b1実装で、 このビッ トの読み出し値が常に 1 となるよ うに構成可能です。 この場合、ト ランザクシ ョ ンは常にデバッグと して示されます。

[28:26] - 予約、 b000

[25] Hprot1 ユーザおよび特権制御 - HPROT[1]リセッ ト時の値 = b1

[24] - 予約、 b1

[23:12] - 予約、 0x000

[11:8] モード 動作モード。 ビッ トは以下のいずれかです。b0000 = 標準ダウンロードおよびアップロードモード

b0001 ~ b1111 は予約されています。

リセッ ト時の値 = b0000

[7] TransInProg 転送が進行中です。 このフ ィールドは、 APB マスタポート上で転送が進行中であるかど うかを示します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-7ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 86: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

[6] DbgStatus DAPEN ポートのステータスを示します。

1 = AHB 転送が許可されています。

0 = AHB 転送が許可されていません。

[5:4] AddrInc 読み出しまたは書き込みデータアクセス時の自動アドレスインク リ メン トおよびパッ クモード。 現在のト ランザクシ ョ ンがエラーなしで完了した場合にのみインクリ メン ト されます。自動アドレスインク リ メン トおよびパッ ク転送は、 バンク データレジスタ 0x10~

0x1C へのアクセスの際は実行されません。 この場合、 これらのビッ トの状態は無視されます。4KB アドレス境界内でインク リ メン ト と ラ ップアラウンドが行われます。 例えば、ワードが 0x1000~ 0x1FFC にインク リ メン ト されます。 開始アドレスが 0x14A0 であれば、 カウンタは 0x1FFC までインク リ メン ト され、 0x1000 にラ ップアラウンド してから、 0x149C までインク リ メン ト されます。

b00 = 自動インク リ メン トオフ

b01 = 単一インク リ メン ト 。 対応するバイ ト レーンからの単一の転送。

b10 = パッ ク インク リ メン ト b b11 = 予約。 転送なし。

アドレスインク リ メン トのサイズは、 サイズフ ィールド [2:0] によって定義されます。リセッ ト時の値 : b00

[3] - 予約

[2:0] サイズ アクセスフ ィールドのサイズ。b000 = 8 ビッ ト

b001 = 16 ビッ ト

b010 = 32 ビッ ト

b011 ~ 111 は予約されています。

リセッ ト時の値 : b000

a. このビッ トがク リ アされている場合、 デバッガはデバッグホールト制御およびステータスレジスタのC_DEBUGEN ビッ ト をセッ トするこ とを禁止されるため、 プロセッサをホールトするこ とができません。

b. 『ARM デバッグインタフェース v5、 アーキテクチャ仕様』 のパッ ク転送の定義を参照して下さい。

表 8-6 CSW のビッ ト割り当て ( 続き )

ビッ ト 名前 機能

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-8ID050813 Non-Confidential

Page 87: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

8.3 フラッシュパッチおよびブレークポイン トユニッ ト (FPB) について

FPB には次の機能があり ます。

• ハードウェアブレークポイン ト を実装する。

• コード空間からシステム空間へ、 コードおよびデータにパッチを適用する。

完全な FPB ユニッ トには、 次のコンポーネン トが含まれます。

• コード空間からの リテラルロード との一致を検出し、 システム空間の対応する領域にリマップするための 2 つのリテラルコンパレータ

• コード空間からの命令フェ ッチとの一致を検出し、 システム空間の対応する領域にリマップするための 6 つの命令コンパレータ。 または、 各コンパレータを個別に構成し、 一致時にプロセッサコアへブレークポイン ト命令 (BKPT) を返すよ うにして、 ハードウェアブレークポイン ト機能を提供するこ と もできます。

縮小版 FPB ユニッ トには、 次のコンポーネン トが含まれます。

• 2 つの命令コンパレータ。 各コンパレータを個別に構成し、 一致時にプロセッサへブレークポイン ト命令を返すよ うにするこ とで、 ハードウェアブレークポイン ト機能を提供できます。

8.3.1 FPB の機能の説明

FPB はグローバルに可能にするこ と も、 8 つのコンパレータに対して個別に可能にするこ と もできます。 エン ト リの比較が一致した場合、 アドレスに対して次のいずれかの操作が行われます。

• リマップレジスタ内のアドレスセッ トに、 一致したコンパレータに対応するオフセッ ト を加えて リマップされます。

• 機能が可能になっていれば、 BKPT 命令にリマップされます。

比較は動的に行われますが、 比較の結果の発生が遅すぎるため、 コード空間で発生する元の命令フェッチおよびリテラルロードは中止できません。 ただし、 プロセッサはこの ト ランザクシ ョ ンを無視し、 リマップされた ト ランザクシ ョ ンのみが使用されます。

MPU が存在する場合は、 リマップされたアドレスではなく元のアドレスに対してMPU ルッ クアップが実行されます。

デバッグ機能が必要ない場合、 またはサポートするブレークポイン トの数を 2 まで減らしても問題ない場合は、 FPB を取り除く こ とができます。 FPB が 2 つのブレークポイン ト しかサポート しない場合、 コンパレータ 0 および 1 のみが使用され、 フラ ッシュパッチはサポート されません。

注 • アンアラインドな リテラルアクセスはリマップされません。 この場合、 DCode

バスに対する元のアクセスが実行されます。

• 排他ロードアクセスはリマップ可能です。 ただし、 これらのアクセスが排他アクセス と して実行されるかど うかは予測不能です。

• フラ ッシュパッチのリマップ位置をビッ トバンド エイ リアスに設定するこ とはサポート されておらず、 その結果行われる動作は予測不能です。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-9ID050813 Non-Confidential

Page 88: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

8.3.2 FPB のプログラマモデル

FPB のレジスタを、 表 8-7 に示します。 プロセッサの実装によっては、 これらのレジスタの一部は存在しないこ とがあ り ます。 存在しないものと して構成されているすべてのレジスタは、 0 と して読み出されます。

表 8-7 FPB レジスタの概要

アドレス 名前 タイプリセッ ト時の値

説明

0xE0002000 FP_CTRL RW 0x260 フラ ッシュパッチ制御レジスタ

0xE0002004 FP_REMAP RW - フラ ッシュパッチ リマップレジスタ

0xE0002008 FP_COMP0 RW b0a

a. FP_COMP0 ~ FP_COMP7 では、 ビッ ト 0 のリセッ ト時の値は 0 です。 これらのレジスタの他のビッ トは リセッ ト されません。

フラ ッシュパッチコンパレータ レジスタ 0

0xE000200C FP_COMP1 RW b0 フラ ッシュパッチコンパレータ レジスタ 1

0xE0002010 FP_COMP2 RW b0 フラ ッシュパッチコンパレータ レジスタ 2

0xE0002014 FP_COMP3 RW b0 フラ ッシュパッチコンパレータ レジスタ 3

0xE0002018 FP_COMP4 RW b0 フラ ッシュパッチコンパレータ レジスタ 4

0xE000201C FP_COMP5 RW b0 フラ ッシュパッチコンパレータ レジスタ 5

0xE0002020 FP_COMP6 RW b0 フラ ッシュパッチコンパレータ レジスタ 6

0xE0002024 FP_COMP7 RW b0 フラ ッシュパッチコンパレータ レジスタ 7

0xE0002FD0 PID4 RO 0x04 ペリ フェラル識別レジスタ

0xE0002FD4 PID5 RO 0x00

0xE0002FD8 PID6 RO 0x00

0xE0002FDC PID7 RO 0x00

0xE0002FE0 PID0 RO 0x03

0xE0002FE4 PID1 RO 0xB0

0xE0002FE8 PID2 RO 0x2B

0xE0002FEC PID3 RO 0x00

0xE0002FF0 CID0 RO 0x0D コンポーネン ト識別レジスタ

0xE0002FF4 CID1 RO 0xE0

0xE0002FF8 CID2 RO 0x05

0xE0002FFC CID3 RO 0xB1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-10ID050813 Non-Confidential

Page 89: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

デバッグ

すべての FPB レジスタは、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 に解説されています。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 8-11ID050813 Non-Confidential

Page 90: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 9 章 データウォッチポイン トおよびト レースユニッ ト

本章では、 データウォ ッチポイン トおよびト レース (DWT) ユニッ トについて説明します。 本章は次のセクシ ョ ンで構成されています。

• 「DWT について」 (ページ 9-2)

• 「DWT の機能の説明」 (ページ 9-3)

• 「DWT のプログラマモデル」 (ページ 9-4)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 9-1ID050813 Non-Confidential

Page 91: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

データウォッチポイン トおよびト レースユニッ ト

9.1 DWT について

DWT はオプシ ョ ンのデバッグユニッ トで、 ウォ ッチポイン ト 、 データ ト レース、 システムプロファイ リ ングをプロセッサに提供します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 9-2ID050813 Non-Confidential

Page 92: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

データウォッチポイン トおよびト レースユニッ ト

9.2 DWT の機能の説明

完全な DWT には 4 つのコンパレータが含まれ、 次のよ うに構成可能です。

• ハードウェアウォッチポイン ト

• ETM ト リ ガ

• PC サンプライベン ト ト リ ガ

• データアドレス サンプライベン ト ト リ ガ

初のコンパレータ DWT_COMP0 は、 クロ ッ クサイ クル カウンタ CYCCNT に対して比較するこ と もできます。 また、 2 番目のコンパレータ DWT_COMP1 をデータコンパレータ と して使用するこ と もできます。

縮小版 DWT には 1 つのコンパレータが含まれ、 ウォッチポイン ト またはト リガと して使用できます。 この DWT では、 データ一致はサポート されません。

DWT が存在する場合、 次のカウンタが組み込まれています。

• ク ロ ッ クサイクル (CYCCNT)

• フォールド された命令

• ロードス ト ア ユニッ ト (LSU) 操作

• ス リープサイクル

• CPI ( 初のサイ クルを除くすべての命令サイクル)

• 割り込みオーバヘッ ド

注 カウンタがオーバフローするたびにイベン トが生成されます。

DWT は、 定義された間隔で PC サンプルを生成する、 および割り込みイベン ト情報を生成するよ うに構成できます。

実装に Cortex-M4 TPIU が含まれる場合、 DWT は、 ITM および TPIU に対する定期的なプロ ト コル同期要求を提供します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 9-3ID050813 Non-Confidential

Page 93: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

データウォッチポイン トおよびト レースユニッ ト

9.3 DWT のプログラマモデル

DWT のレジスタを、 表 9-1 に示します。 プロセッサの実装によっては、 これらのレジスタの一部は存在しないこ とがあ り ます。 存在しないものと して構成されているすべてのレジスタは、 0 と して読み出されます。

表 9-1 DWT レジスタの概要

アドレス 名前 タイプリセッ ト時の値 説明

0xE0001000 DWT_CTRL RW a を参照 制御レジスタ

0xE0001004 DWT_CYCCNT RW 0x00000000 サイクルカウン ト レジスタ

0xE0001008 DWT_CPICNT RW - CPI カウン ト レジスタ

0xE000100C DWT_EXCCNT RW - 例外オーバヘッ ドカウン ト レジスタ

0xE0001010 DWT_SLEEPCNT RW - ス リープカウン ト レジスタ

0xE0001014 DWT_LSUCNT RW - LSU カウン ト レジスタ

0xE0001018 DWT_FOLDCNT RW - フォールド された命令のカウン ト レジスタ

0xE000101C DWT_PCSR RO - プログラムカウンタ サンプルレジスタ

0xE0001020 DWT_COMP0 RW - コンパレータレジスタ 0

0xE0001024 DWT_MASK0 RW - マスクレジスタ 0

0xE0001028 DWT_FUNCTION0 RW 0x00000000 機能レジスタ 0

0xE0001030 DWT_COMP1 RW - コンパレータレジスタ 1

0xE0001034 DWT_MASK1 RW - マスクレジスタ 1

0xE0001038 DWT_FUNCTION1 RW 0x00000000 機能レジスタ 1

0xE0001040 DWT_COMP2 RW - コンパレータレジスタ 2

0xE0001044 DWT_MASK2 RW - マスクレジスタ 2

0xE0001048 DWT_FUNCTION2 RW 0x00000000 機能レジスタ 2

0xE0001050 DWT_COMP3 RW - コンパレータレジスタ 3

0xE0001054 DWT_MASK3 RW - マスクレジスタ 3

0xE0001058 DWT_FUNCTION3 RW 0x00000000 機能レジスタ 3

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 9-4ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 94: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

データウォッチポイン トおよびト レースユニッ ト

DWT レジスタについては、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 で解説されています。 ペリ フェラル識別レジスタおよびコンポーネン ト識別レジスタについては、 『ARM CoreSight コンポーネン ト テクニカルリ ファレンス マニュアル』で解説されています。

注 • サイ クル一致機能は、 コンパレータ 0 でのみ利用可能です。

• データ一致機能は、 コンパレータ 1 でのみ利用可能です。

• データ値は、 MPU またはバスフォールトが発生しないアクセスについてのみサンプ リ ングされます。 PC は、 フォールトが発生するかど うかにかかわらずサンプ リ ングされます。 PC は、 バース トの 初のアドレスについてのみサンプリ ングされます。

• DWT_FUNCTION1 レジスタの FUNCTION フ ィールドは、 DWT_FUNCTION1の DATAVMATCH もセッ ト されている場合、 DATAVADDR0 およびDATAVADDR1 によって指定されたコンパレータについて上書きされます。 この場合、 DATAVADDR0 および DATAVADDR1 によって指定されたコンパレータは、 コンパレータ 1 のデータ一致に対してのみアドレスコンパレータ一致を実行できます。

• 実装時にデータ一致機能が組み込まれていない場合、 DWT_FUNCTION1 のDATAVADDR0、 DATAVADDR1、 DATAVMATCH をセッ トするこ とはできません。 これは、 その実装ではデータ一致機能が使用できないこ とを意味します。 データ一致が使用できるかど うかをテス トするには、 DWT_FUNCTION1の DATAVMATCH ビッ ト を書き込んでから読み出します。 このビッ ト をセットできない場合、 データ一致は使用できません。

0xE0001FD0 PID4 RO 0x04 ペリ フェラル識別レジスタ

0xE0001FD4 PID5 RO 0x00

0xE0001FD8 PID6 RO 0x00

0xE0001FDC PID7 RO 0x00

0xE0001FE0 PID0 RO 0x02

0xE0001FE4 PID1 RO 0xB0

0xE0001FE8 PID2 RO 0x3B

0xE0001FEC PID3 RO 0x00

0xE0001FF0 CID0 RO 0x0D コンポーネン ト識別レジスタ

0xE0001FF4 CID1 RO 0xE0

0xE0001FF8 CID2 RO 0x05

0xE0001FFC CID3 RO 0xB1

a. リ セッ ト時の可能な値は次のとおりです。ウォ ッチポイン トおよびト リガ用の 4 つのコンパレータが存在する場合、 0x40000000ウォ ッチポイン ト専用の 4 つのコンパレータが存在する場合、 0x4F000000コンパレータが 1 つだけ存在する場合、 0x10000000ウォ ッチポイン ト用で、 ト リ ガ用ではないコンパレータが 1 つだけ存在する場合、 0x1F000000DWT が存在しない場合、 0x00000000

表 9-1 DWT レジスタの概要 ( 続き )

アドレス 名前 タイプリセッ ト時の値

説明

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 9-5ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 95: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

データウォッチポイン トおよびト レースユニッ ト

• ウォッチポイン トは命令の後で停止するため、 ウォッチポイン トでの PC 一致は推奨されません。 これは、 主に ETM をガード して ト リガします。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 9-6ID050813 Non-Confidential

Page 96: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 10 章 計装ト レースマクロセル ユニッ ト

本章では、 計装ト レースマクロセル (ITM) ユニッ トについて説明します。 本章は次のセクシ ョ ンで構成されています。

• 「ITM について」 (ページ 10-2)

• 「ITM の機能の説明」 (ページ 10-3)

• 「ITM のプログラマモデル」 (ページ 10-4)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 10-1ID050813 Non-Confidential

Page 97: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

計装ト レースマクロセル ユニッ ト

10.1 ITM について

ITM は、 printf 形式のデバッグをサポートする、 オプシ ョ ンのアプリ ケーシ ョ ン駆動型ト レースソースで、 オペレーティングシステムおよびアプリ ケーシ ョ ンのイベント を ト レースし、 システム診断情報を生成します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 10-2ID050813 Non-Confidential

Page 98: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

計装ト レースマクロセル ユニッ ト

10.2 ITM の機能の説明

ITM はト レース情報をパケッ ト と して生成します。 パケッ ト を生成可能なソースは 4つあり ます。 複数のソースが同時にパケッ ト を生成した場合は、 ITM によってパケッ トの出力順序が調整されます。 ソースは、 優先度の高いものから順に、 次の 4つです。

• ソフ ト ウェア ト レース。 ソフ ト ウェアは ITM スティムラスレジスタに直接書き込みを行い、 パケッ ト を生成できます。

• ハードウェア ト レース。 これらのパケッ トは DWT によ り生成され、 ITM によって出力されます。

• タイムスタンプ。 タイムスタンプはパケッ トに関連して生成されます。 ITM には、 タイムスタンプを生成する 21 ビッ ト カウンタが組み込まれています。 カウンタは、 Cortex-M4 ク ロ ッ ク、 またはシ リアルワイヤ ビューア (SWV) 出力のビッ ト ク ロ ッ クレートによ り駆動されます。

• システムのグローバルタイムスタンプ。 オプシ ョ ンと して、 システム全体で共通の 48 ビッ トのカウン ト値を使用してタイムスタンプを生成するこ と もできます。 ETM ト レースス ト リームにタイムスタンプを挿入するためにも同じカウン ト値を使用でき、 粒度の粗い相互関連付けに使う こ とができます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 10-3ID050813 Non-Confidential

Page 99: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

計装ト レースマクロセル ユニッ ト

10.3 ITM のプログラマモデル

ITM のレジスタを、 表 10-1 に示します。 プロセッサの実装によっては、 ITM レジスタは存在しないこ とがあ り ます。 存在しないものと して構成されているすべてのレジスタは、 0 と して読み出されます。

注 • ITM をプログラムまたは使用する前に、 デバッグ例外およびモニタ制御レジス

タの TRCENA を可能にする必要があ り ます。

• ITM ス ト リームで同期パケッ トが必要な場合、 DWT で同期パケッ ト レート を構成する必要があり ます。

注 ITM レジスタは特権モードでは完全にアクセス可能です。 ユーザモードではすべてのレジスタを読み出せますが、 書き込みはスティムラスレジスタおよびト レースイネーブル レジスタに対してのみ行えます。 また、 対応する ト レース特権レジスタのビッ トがセッ ト されている場合にのみ書き込みが可能です。 ITM レジスタへの無効なユーザモード書き込みは破棄されます。

表 10-1 ITM レジスタの概要

アドレス 名前 タイプリセッ ト時の値 説明

0xE0000000 ~

0xE000007C

ITM_STIM0 ~ITM_STIM31

RW - スティムラスポート レジスタ 0 ~ 31

0xE0000E00 ITM_TER RW 0x00000000 ト レースイネーブル レジスタ

0xE0000E40ITM_TPR RW 0x00000000 「ITM ト レース特権レジスタ、 ITM_TPR」

(ページ 10-5)

0xE0000E80 ITM_TCR RW 0x00000000 ト レース制御レジスタ

0xE0000FD0 PID4 RO 0x00000004 ペリ フェラル識別レジスタ

0xE0000FD4 PID5 RO 0x00000000

0xE0000FD8 PID6 RO 0x00000000

0xE0000FDC PID7 RO 0x00000000

0xE0000FE0 PID0 RO 0x00000001

0xE0000FE4 PID1 RO 0x000000B0

0xE0000FE8 PID2 RO 0x0000003B

0xE0000FEC PID3 RO 0x00000000

0xE0000FF0 CID0 RO 0x0000000D コンポーネン ト識別レジスタ

0xE0000FF4 CID1 RO 0x000000E0

0xE0000FF8 CID2 RO 0x00000005

0xE0000FFC CID3 RO 0x000000B1

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 10-4ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 100: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

計装ト レースマクロセル ユニッ ト

以下のセクシ ョ ンでは、 実装がこのプロセッサに固有である ITM レジスタについて説明します。 他のレジスタについては、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 で解説されています。

10.3.1 ITM ト レース特権レジスタ、 ITM_TPR

ITM_TPR には次の特徴があり ます。

目的 オペレーティングシステムで、 ユーザコードからアクセス可能なスティムラスポート を制御するために使用されます。

使用制限 特権モードでのみ、 このレジスタに書き込むこ とができます。

構成 このレジスタは、 実装に ITM が構成されている場合に利用可能です。

属性 表 10-1 (ページ 10-4) を参照して下さい。

ITM_TPR のビッ ト割り当てを、 図 10-1 に示します。

図 10-1 ITM_TPR のビッ ト割り当て

ITM_TPR のビッ ト割り当てを、 表 10-2 に示します。

表 10-2 ITM_TPR のビッ ト割り当て

ビッ ト 名前 機能

[31:4] - 予約

[3:0] PRIVMASK ITM スティムラスポートでの ト レースを可能にするビッ トマスク。ビッ ト [0] = スティムラスポート [7:0]ビッ ト [1] = スティムラスポート [15:8]ビッ ト [2] = スティムラスポート [23:16]ビッ ト [3] = スティムラスポート [31:24]

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 10-5ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 101: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

第 11 章 ト レースポート インタフェースユニッ ト

本章では、 Cortex-M4 プロセッサに固有のト レースポート インタフェースユニッ トである Cortex-M4 TPIU について説明します。 本章は次のセクシ ョ ンで構成されています。

• 「Cortex-M4 TPIU について」 (ページ 11-2)

• 「TPIU の機能の説明」 (ページ 11-3)

• 「TPIU のプログラマモデル」 (ページ 11-5)

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-1ID050813 Non-Confidential

Page 102: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

11.1 Cortex-M4 TPIU について

Cortex-M4 TPIU はオプシ ョ ンのコンポーネン トで、 別々の ID を持つエンベデッ ド トレース マクロセル (ETM) および計装ト レースマクロセル (ITM) からのオンチップ トレースデータ と、 データス ト リームとの間でブリ ッジと して動作します。 TPIU は必要に応じて ID をカプセル化し、 データス ト リームはト レースポート アナライザ(TPA) によってキャプチャされます。

Cortex-M4 TPIU は低コス トのデバッグ用に特化して設計されています。 これは、CoreSight TPIU の特別なバージ ョ ンです。 実装で CoreSight TPIU の追加機能が必要な場合、 Cortex-M4 TPIU を他の CoreSight コンポーネン トに置き換えるこ とができます。

本章では、 TPIU という用語は Cortex-M4 TPIU を指します。 CoreSight TPIU の詳細については、 『ARM CoreSight コンポーネン ト テクニカルリ ファレンス マニュアル』 を参照して下さい。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-2ID050813 Non-Confidential

Page 103: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

11.2 TPIU の機能の説明

TPIU には、 次の 2 つの構成があ り ます。

• ITM デバッグ ト レースをサポートする構成

• ITM および ETM デバッグ ト レースの両方をサポートする構成

実装で ト レースのサポートが必要ない場合、 TPIU を搭載する必要はあり ません。

注 Cortex-M4 システムでオプシ ョ ンの ETM コンポーネン ト を使用している場合、 TPIUの構成は、 ITM および ETM デバッグ ト レースの両方をサポート しています。『ETM-M4 テクニカルリ ファレンス マニュアル』 を参照して下さい。

11.2.1 TPIU のブロック図

両方の構成について、 TPIU のコンポーネン ト レイアウ ト を図 11-1 に示します。

図 11-1 TPIU のブロック図

11.2.2 TPIU フォーマッ タ

フォーマッタは、 ト レースデータを ト レースソース と再び対応付けできるよ うに、ソース ID 信号をデータパケッ ト ス ト リームに挿入します。 ト レースポート モードがアクティブな場合、 フォーマッ タは常時アクティブです。

フォーマッ ト付けのプロ ト コルは、 『CoreSight アーキテクチャ仕様』 に解説されています。 フォーマッタの同期を提供するには、 DWT の同期パケッ ト を可能にする必要があり ます。

フォーマッタが可能な時、 フレームの開始後に出力すべきデータが存在しなければ、ハーフシンク パケッ ト を挿入できます。 DWT からの分散同期によ り引き起こ される同期化によって、 すべての部分的なフレームが完了し、 低 1 つの完全な同期パケッ トが生成されるこ とが保証されます。

††

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-3ID050813 Non-Confidential

Page 104: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

11.2.3 シリアルワイヤ出力の形式

TPIU は、 ト レースデータをシ リアルワイヤ出力 (SWO) 形式で出力できます。

• TPIU_DEVID は、 サポート されている形式を指定します。 「TPIU_DEVID」 (ページ 11-12) を参照して下さい。

• TPIU_SPPR は、 使用されている SWO 形式を指定します。 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

2 つの SWO モードのうち 1 つが選択されている と き、 TPIU で ト レース出力についてフォーマッ ト をバイパス可能にするこ とができます。 フォーマッ タがバイパスされる と、 ITM および DWT ト レースソースのみが通過します。 TPIU は、 ETM からのデータを受け付け、 破棄します。 この機能を使用して、 ETM を含むデバイスを、SWO データのみをキャプチャできる ト レースキャプチャ デバイスに接続できます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-4ID050813 Non-Confidential

Page 105: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

11.3 TPIU のプログラマモデル

TPIU レジスタの概要を、 表 11-1 に示します。 プロセッサの実装によっては、 TPIUレジスタが存在しない場合や、 代わりに CoreSight TPIU が存在する場合があり ます。存在しないものと して構成されているすべてのレジスタは、 0 と して読み出されます。

表 11-1 TPIU レジスタ

アドレス 名前 タイプリセッ ト時の値 説明

0xE0040000 TPIU_SSPSR RO 0x0xx サポート されるパラレルポートのサイズレジスタ

0xE0040004 TPIU_CSPSR RW 0x01 カレン ト パラレルポート サイズレジスタ

0xE0040010 TPIU_ACPR RW 0x0000 「非同期クロ ッ クプ リ スケーラ レジスタ、 TPIU_ACPR」 (ページ 11-6)

0xE00400F0 TPIU_SPPR RW 0x01 選択ピンプロ ト コル レジスタ

0xE0040300 TPIU_FFSR RO 0x08 「フォーマッタおよびフラ ッシュステータス レジスタ、TPIU_FFSR」 (ページ 11-6)

0xE0040304 TPIU_FFCR RW 0x102 「フォーマッタおよびフラ ッシュ制御レジスタ、TPIU_FFCR」 (ページ 11-7)

0xE0040308 TPIU_FSCR RO 0x00 フォーマッタ同期化カウンタレジスタ

0xE0040EE8 TRIGGER RO 0x0 「TRIGGER」 (ページ 11-8)

0xE0040EEC FIFO データ 0 RO 0x--000000 「統合 ETM データ」 (ページ 11-9)

0xE0040EF0 ITATBCTR2 RO 0x0 「ITATBCTR2」 (ページ 11-10)

0xE0040EFC FIFO データ 1 RO 0x--000000 「統合 ITM データ」 (ページ 11-10)

0xE0040EF8 ITATBCTR0 RO 0x0 「ITATBCTR0」 (ページ 11-11)

0xE0040F00 ITCTRL RW 0x0 「統合モード制御、 TPIU_ITCTRL」 (ページ 11-12)

0xE0040FA0 CLAIMSET RW 0xF クレームタグ セッ ト

0xE0040FA4 CLAIMCLR RW 0x0 クレームタグ ク リ ア

0xE0040FC8 DEVID RO 0xCA0/0xCA1 「TPIU_DEVID」 (ページ 11-12)

0xE0040FCC DEVTYPE RO 0x11 「TPIU_DEVTYPE」 (ページ 11-13)

0xE0040FD0 PID4 RO 0x04 ペリ フェラル識別レジスタ

0xE0040FD4 PID5 RO 0x00

0xE0040FD8 PID6 RO 0x00

0xE0040FDC PID7 RO 0x00

0xE0040FE0 PID0 RO 0xA1

0xE0040FE4 PID1 RO 0xB9

0xE0040FE8 PID2 RO 0x0B

0xE0040FEC PID3 RO 0x00

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-5ID050813 Non-Confidential

Page 106: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

以下のセクシ ョ ンでは、 実装がこのプロセッサに固有である TPIU レジスタについて説明します。 フォーマッタ、 統合モード制御、 クレームタグ レジスタについては、『CoreSight コンポーネン ト テクニカルリ ファレンス マニュアル』 で解説されています。 他のレジスタについては、 『ARMv7-M アーキテクチャ リ ファレンスマニュアル』で解説されています。

11.3.1 非同期クロックプリスケーラ レジスタ、 TPIU_ACPR

TPIU_ACPR には次の特徴があ り ます。

目的 非同期出力のボーレート を調整します。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

TPIU_ACPR のビッ ト割り当てを、 図 11-2 に示します。

図 11-2 TPIU_ACPR のビッ ト割り当て

TPIU_ACPR のビッ ト割り当てを、 表 11-2 に示します。

11.3.2 フォーマッ タおよびフラッシュステータス レジスタ、 TPIU_FFSR

TPIU_FFSR には次の特徴があり ます。

目的 TPIU フォーマッタのステータスを示します。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

TPIU_FFSR のビッ ト割り当てを、 図 11-3 (ページ 11-7) に示します。

0xE0040FF0 CID0 RO 0x0D コンポーネン ト識別レジスタ

0xE0040FF4 CID1 RO 0x90

0xE0040FF8 CID2 RO 0x05

0xE0040FFC CID3 RO 0xB1

表 11-1 TPIU レジスタ ( 続き )

アドレス 名前 タイプリセッ ト時の値 説明

表 11-2 TPIU_ACPR のビッ ト割り当て

ビッ ト 名前 機能

[31:13] - 予約。 RAZ/SBZP。

[12:0] PRESCALER TRACECLKIN の除数は、PRESCALER + 1 で指定されます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-6ID050813 Non-Confidential

Page 107: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

図 11-3 TPIU_FFSR のビッ ト割り当て

TPIU_FFSR のビッ ト割り当てを、 表 11-3 に示します。

11.3.3 フォーマッ タおよびフラッシュ制御レジスタ、 TPIU_FFCR

TPIU_FFCR には次の特徴があ り ます。

目的 TPIU フォーマッタを制御します。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

TPIU_FFCR のビッ ト割り当てを、 図 11-4 に示します。

図 11-4 TPIU_FFCR のビッ ト割り当て

表 11-3 TPIU_FFSR のビッ ト割り当て

ビッ ト 名前 機能

[31:4] - 予約

[3] FtNonStop フォーマッタは中止できません。

[2] TCPresent このビッ トは、 常に 0 として読み出されます。

[1] FtStopped このビッ トは、 常に 0 として読み出されます。

[0] FlInProg このビッ トは、 常に 0 として読み出されます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-7ID050813 Non-Confidential

Page 108: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

TPIU_FFCR のビッ ト割り当てを、 表 11-4 に示します。

TPIU は、 ト レースデータをシ リアルワイヤ出力 (SWO) 形式で出力できます。 「シ リアルワイヤ出力の形式」 (ページ 11-4) を参照して下さい。

2 つの SWO モードのうち 1 つが選択される と、 TPIU_FFCR のビッ ト [1] によ りフォーマッタのバイパスが可能になり ます。 フォーマッタがバイパスされる と、 ITMおよび DWT ト レースソースのみが通過します。 TPIU は、 ETM からのデータを受け付け、 破棄します。 この機能を使用して、 ETM を含むデバイスを、 SWO データのみをキャプチャできる ト レースキャプチャ デバイスに接続できます。 フォーマッタを可能または不可能にする と、 データが一時的に破損します。

注 TPIU_SPPR の設定によ り ト レースポート モードが選択される と、 フォーマッタが自動的に可能になり ます。 その後で SWO モードの 1 つを選択した場合、 TPIU_FFCRは以前にプログラムされた値に戻り ます。

11.3.4 TRIGGER

TRIGGER には次の特徴があり ます。

目的 TRIGGER 入力の統合テス ト 。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

TRIGGER のビッ ト割り当てを、 図 11-5 に示します。

図 11-5 TRIGGER のビッ ト割り当て

表 11-4 TPIU_FFCR のビッ ト割り当て

ビッ ト 名前 機能

[31:9] - 予約

[8] TrigIn このビッ トは読み出し値 1 (RAO) で、 ト リガピンがアサート されたと きに ト リガが挿入されるこ とを示しています。

[7:2] - 予約

[1] EnFCont 連続フォーマッ ト を可能にします。 値は次のいずれかです。0 = 連続フォーマッ トは不可能です。

1 = 連続フォーマッ トが可能です。

[0] - 予約

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-8ID050813 Non-Confidential

Page 109: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

TRIGGER のビッ ト割り当てを、 表 11-5 に示します。

11.3.5 統合 ETM データ

統合 ETM データの特徴は次のとおりです。

目的 ト レースデータの統合テス ト 。

使用制限 このレジスタを使用するには、 TPIU_ITCTRL のビッ ト [1] をセットする必要があ り ます。 「統合モード制御、 TPIU_ITCTRL」 (ページ 11-12) を参照して下さい。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

統合 ETM データのビッ ト割り当てを、 図 11-6 に示します。

図 11-6 統合 ETM データのビッ ト割り当て

統合 ETM データのビッ ト割り当てを、 表 11-6 に示します。

表 11-5 TRIGGER のビッ ト割り当て

ビッ ト 名前 機能

[31:1] - 予約

[0] TRIGGER の入力値 このビッ ト を読み出した場合、 TRIGGER入力の値が返されます。

表 11-6 統合 ETM データのビッ ト割り当て

ビッ ト 名前 機能

[31:30] - 予約

[29] ITM ATVALID 入力 ITM ATVALID 信号の値を返します。

[28:27] ITM バイ ト カウン ト 統合 ITM データレジスタが 後に読み出された後の、 ITM ト レースデータのバイ ト数

[26] ETM ATVALID 入力 ETM ATVALID 信号の値を返します。

[25:24] ETM バイ ト カウン ト 統合 ETM データレジスタが 後に読み出された後の、 ETM ト レースデータのバイ ト数

[23:16] ETM データ 2 ETM ト レースデータ。 TPIU は、 レジスタが読み出されたと きに、 このデータを破棄します。

[15:8] ETM データ 1

[7:0] ETM データ 0

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-9ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 110: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

11.3.6 ITATBCTR2

ITATBCTR2 には次の特徴があり ます。

目的 統合テス ト。

使用制限 このレジスタを使用するには、 TPIU_ITCTRL のビッ ト [0] をセットする必要があ り ます。 「統合モード制御、 TPIU_ITCTRL」 (ページ 11-12) を参照して下さい。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

ITATBCTR2 のビッ ト割り当てを、 図 11-7 に示します。

図 11-7 ITATBCTR2 のビッ ト割り当て

ITATBCTR2 のビッ ト割り当てを、 表 11-7 に示します。

11.3.7 統合 ITM データ

統合 ITM データの特徴は次のとおりです。

目的 ト レースデータの統合テス ト 。

使用制限 このレジスタを使用するには、 TPIU_ITCTRL のビッ ト [1] をセットする必要があ り ます。 「統合モード制御、 TPIU_ITCTRL」 (ページ 11-12) を参照して下さい。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

統合 ITM データのビッ ト割り当てを、 図 11-8 (ページ 11-11) に示します。

表 11-7 ITATBCTR2 のビッ ト割り当て

ビッ ト 名前 機能

[31:1] - 予約

[0] ATREADY1、ATREADY2

このビッ トは、 TPIU が統合テス トモードのと き、 ETMおよび ITM の ATREADY 出力の値を設定します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-10ID050813 Non-Confidential

Page 111: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

図 11-8 統合 ITM データのビッ ト割り当て

統合 ITM データのビッ ト割り当てを、 表 11-8 に示します。

11.3.8 ITATBCTR0

ITATBCTR0 には次の特徴があり ます。

目的 統合テス ト。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

ITATBCTR0 のビッ ト割り当てを、 図 11-9 に示します。

図 11-9 ITATBCTR0 のビッ ト割り当て

表 11-8 統合 ITM データのビッ ト割り当て

ビッ ト 名前 機能

[31:30] - 予約

[29] ITM ATVALID 入力 ITM ATVALID 信号の値を返します。

[28:27] ITM バイ ト カウン ト 統合 ITM データレジスタが 後に読み出された後の、 ITM ト レースデータのバイ ト数。

[26] ETM ATVALID 入力 ETM ATVALID 信号の値を返します。

[25:24] ETM バイ ト カウン ト 統合 ETM データレジスタが 後に読み出された後の、 ETM ト レースデータのバイ ト数。

[23:16] ITM データ 2 ITM ト レースデータ。 TPIU は、 レジスタが読み出されたと きに、 このデータを破棄します。

[15:8] ITM データ 1

[7:0] ITM データ 0

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-11ID050813 Non-Confidential

Page 112: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

ITATBCTR0 のビッ ト割り当てを、 表 11-9 に示します。

11.3.9 統合モード制御、 TPIU_ITCTRL

TPIU_ITCTRL には次の特徴があ り ます。

目的 TPIU の通常または統合モードを指定します。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

TPIU_ITCTRL のビッ ト割り当てを、 図 11-10 に示します。

図 11-10 TPIU_ITCTRL のビッ ト割り当て

TPIU_ITCTRL のビッ ト割り当てを、 表 11-10 に示します。

11.3.10 TPIU_DEVID

TPIU_DEVID には次の特徴があり ます。

目的 ト ポロジ検出で使用するため TPIU によ り提供されている機能を示します。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 表 11-1 (ページ 11-5) を参照して下さい。

表 11-9 ITATBCTR0 のビッ ト割り当て

ビッ ト 名前 機能

[31:1] - 予約

[0] ATVALID1、ATVALID2

このビッ ト を読み出すと、 ATVALIDS1 と ATVALIDS2の値に対して OR 演算を行った結果が返されます。

表 11-10 TPIU_ITCTRL のビッ ト割り当て

ビッ ト 名前 機能

[31:2] - 予約

[1:0] モード TPIU の現在のモードを指定します。

b00 通常モードb01 統合テス トモードb10 統合データ テス トモード

b11 予約統合データ テス トモードでは、 ト レース出力は不可能になり、 データは統合データレジスタを使用して、 各入力ポートから直接読み出すこ とのみが可能です。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-12ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 113: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

TPIU_DEVID のビッ ト割り当てを、 図 11-11 に示します。

図 11-11 TPIU_DEVID のビッ ト割り当て

TPIU_DEVID のビッ ト割り当てを、 表 11-11 に示します。

11.3.11 TPIU_DEVTYPE

デバイスタイプ識別レジスタは読み出し専用です。 部品番号フ ィールドが識別されないと き、 コンポーネン トに関する情報をデバッガに提供します。 その後で、 デバッガはこの情報を報告できます。

TPIU_DEVTYPE には次の特徴があり ます。

目的 コンポーネン トでサポート されている機能のタイプを示します。

使用制限 使用制限はあり ません。

構成 このレジスタは、 すべてのプロセッサ構成で利用可能です。

属性 デバイスタイプの読み出し値は 0x11 で、 このデバイスが ト レースシンク、 具体的には TPIU であるこ とを示します。

表 11-11 TPIU_DEVID のビッ ト割り当て

ビッ ト 名前 機能

[31:12] - 予約

[11] 非同期シ リアルワイヤ出力 (NRZ) このビッ トは読み出し値 1 (RAO) で、 出力がサポート されているこ とを示します。

[10] 非同期シ リアルワイヤ出力 (Manchester) このビッ トは読み出し値 1 (RAO) で、 出力がサポート されているこ とを示します。

[9] ト レースデータ と クロ ッ クモード このビッ トは読み出し値 0 (RAZ) で、 ト レースデータ と ク ロ ックモードがサポート されているこ とを示します。

[8:6] 小バッファサイズ TPIU の 小バッファサイズを指定します。

b010 = 4 バイ ト

[5] 非同期 TRACECLKIN TRACECLKIN を CLK に対して非同期にできるかど うかを指定します。b0 = TRACECLKIN は CLK に同期している必要があり ます。

b1 = TRACECLKIN は CLK に対して非同期でもかまいません。

[4:0] ト レース入力の数 ト レース入力の数を指定します。b000000 = 1 つの入力

b000001 = 2 つの入力

実装に ETM が含まれる場合、 このフ ィールドの値は b000001です。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-13ID050813 Non-Confidential

Page 114: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

ト レースポート インタフェースユニッ ト

図 11-12 TPIU_DEVTYPE のビッ ト割り当て

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. 11-14ID050813 Non-Confidential

Page 115: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

付録 A リビジ ョ ン

この付録では、 本書の各版の技術的な相違点について説明します。

表 A-1 A 版

変更内容 場所 影響範囲

初版 - -

表 A-2 A 版と B 版の相違点

変更内容 場所 影響範囲

技術的変更なし - -

表 A-3 B 版と C 版の相違点

変更内容 場所 影響範囲

バスインタフェースの情報を追加 「バスインタフェース」 (ページ 2-5) すべて

専用ペリ フェラルパスの情報を追加 「専用ペリ フェラルバス (PPB)」 (ページ 2-6) すべて

Cortex-M4 命令セッ トのサイクル数を更新 表 3-1 (ページ 3-4) すべて

DSP 命令の符号付き乗算命令のアセンブラを更新 表 3-2 (ページ 3-9) すべて

ロード / ス ト アのタイ ミ ング情報を更新 「ロード / ス ト アのタイ ミ ング」 (ページ 3-12)

すべて

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. A-1ID050813 Non-Confidential

Page 116: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

リビジ ョ ン

ローカル排他モニタの情報を追加 「排他モニタ」 (ページ 3-19) すべて

リセッ ト時の値を更新 表 5-1 (ページ 5-4) すべて

補助制御レジスタのビッ ト順序を更新 図 4-1 (ページ 4-5) すべて

補助制御レジスタのビッ ト順序を更新 表 4-2 (ページ 4-5) すべて

補助フォールト ステータス レジスタの情報を更新 「補助フォールト ステータス レジスタ、AFSR」 (ページ 4-6)

すべて

NVIC_IPR レジスタのアドレス範囲を変更 表 6-1 (ページ 6-4) すべて

ペリ フェラル ID 5 ~ 7 を追加 表 8-1 (ページ 8-3) すべて

リセッ ト時の値を更新 表 8-7 (ページ 8-10) すべて

TPIU レジスタの名前を追加。 リセッ ト時の値を更新し、TPIU_DEVTYPE を追加。

表 11-1 (ページ 11-5) すべて

TPIU_DEVTYPE のビッ ト割り当てを追加 「TPIU_DEVTYPE」 (ページ 11-13) すべて

表 A-3 B 版と C 版の相違点 ( 続き )

変更内容 場所 影響範囲

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. A-2ID050813 Non-Confidential

Page 117: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

この用語集では、 ARM Limited の発行する技術文書で使用されている用語のいくつかについて説明します。

アボート 試みられたメモ リ アクセスが無効であるか許可されていない、 あるいはメモ リ アクセスによって返されたデータが無効であるこ とをコアに通知する機構。 アボートは、 無効なまたは保護された命令やデータ メモ リへのアクセスを実行した結果と して、 外部または内部のメモ リシステムによって引き起こ される可能性があり ます。

データアボート、 外部アボート、 プ リ フェッチアボート も参照。

アドレシングモード 命令で使用する値を生成するために、 複数のさまざまな命令で共有される各種の機構。

アドバンスト ハイパフォーマンス バス (AHB)アドレス / 制御フェーズとデータフェーズとの間で 1 つの固定パイプラインを使用するバスプロ ト コル。 AMBA AXI プロ ト コルで提供されている機能のサブセッ トのみをサポート します。 完全な AMBA AHB プロ ト コル仕様には、 一般的なマスタ / スレーブのIP 開発では必要のない機能が多く含まれているため、 通常はプロ ト コルのサブセッ トだけを使用するこ とをお勧めします。 このサブセッ トは、 AMBA AHB-Lite プロ ト コルと して定義されています。

アドバンス ト マイク ロコン ト ローラバス アーキテクチャおよび AHB-Lite も参照。

アドバンスト マイクロコン ト ローラバス アーキテクチャ (AMBA)相互接続のための方針が記載された、 プロ ト コル仕様のファ ミ リ。 AMBA は、 オンチップバスに関する ARM のオープンな規格です。 システム オンチップ (SoC) を構築する機能ブロッ クの相互接続と管理のための方針が詳し く記載された、 オンチップ バスの仕様です。 1 つまたは複数の CPU や信号プロセッサ、 および複数のペリ フェラルを含む組み込みプロセッサの開発に役立ちます。 AMBA は、 SoC モジュール用の共通バッ クボーンを定義するこ とによって、 再利用可能な設計手法をよ り完全なものにします。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-1ID050813 Non-Confidential

Page 118: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

アドバンスト ペリフェラルバス (APB)AXI や AHB よ り も単純なバスプロ ト コル。 タイマ、 割り込みコン ト ローラ、UART、 I/O ポート などの補助的な、 または汎用のペリ フェラルで使用するために設計されています。 メ インのシステムバスへの接続は、 システムとペリ フェラルとの間のバスブ リ ッジを経由して行われるため、 システムの消費電力を抑えられます。

AHB アドバンス ト ハイパフォーマンス バス参照。

AHB アクセスポート (AHB-AP)DAP のオプシ ョ ンコンポーネン トで、 SoC への AHB インタフェースを提供します。

AHB-AP AHB アクセス ポート参照。

AHB-Lite 完全な AMBA AHB プロ ト コル仕様のサブセッ ト。 大部分の AMBA AHB マスタ / スレーブ設計に必要なすべての基本機能を提供しており、 特にマルチレイヤの AMBA相互接続で使用されます。 ほとんどの場合、 完全な AMBA AHB インタフェースで提供されている追加機能は、 AMBA AXI プロ ト コルインタフェースで実装する と よ り効率的になり ます。

AHB ト レースマクロセルプロセッサコアに接続されたと きに、 ト レースポートにデータの ト レース情報を出力するハードウェアマクロセル。

アラインド データサイズを定義しているバイ ト数で割り切れるアドレスに格納されているデータ項目を、 アラインド、 またはアラインしている と呼びます。 アラインしているワード とハーフワードのアドレスは、 それぞれ 4 と 2 で割り切れます。 したがって、ワードアラインド とハーフワードアラインド という用語は、 それぞれ 4 と 2 で割り切れるアドレスを意味します。

AMBA アドバンス ト マイ クロコン ト ローラバス アーキテクチャ参照。

アドバンスト ト レースバス (ATB)CoreSight のキャプチャ リ ソースを共有するため、 ト レースデバイスによって使用されるバス。

APB アドバンス ト ペリ フェラルバス参照。

特定用途向け集積回路 (ASIC)特定用途の機能を発揮するために設計された集積回路。 特注または量産が可能です。

アーキテクチャ プロセッサと、 プロセッサに接続されているコンポーネン ト を特徴付けるハードウェアおよびソフ ト ウェアの構成。 装置の動作を記述する と きに、 類似の特徴を持つ装置をま とめて扱えるよ うにします。 例えば、 ハーバードアーキテクチャ、 命令セッ ト アーキテクチャ、 ARMv7-M アーキテクチャなど。

ARM 命令 ARM 命令セッ ト アーキテクチャ (ISA) の命令。 これらの命令は Cortex-M4 プロセッサでは実行できません。

ARM 状態 プロセッサ状態のうち、 プロセッサが ARM ISA の命令を実行する状態。 Cortex-M4プロセッサは Thumb 状態でのみ動作し、 ARM 状態では動作しません。

ASIC 特定用途向け集積回路参照。

ATB アドバンス ト ト レースバス参照。

ATB ブリ ッジ 同期 ATB ブリ ッジはレジスタスライスを提供するため、 パイプラインステージの追加によって、 タイ ミ ング収束が容易にな り ます。 また、 2 つの同期 ATB ド メ イン間の単方向リ ンクを提供します。

非同期 ATB ブリ ッジは、 非同期クロ ッ クを使用する 2 つの ATB ド メ イン間の単方向リ ンクを提供します。 これは、 異なるク ロ ッ ク ド メ インに存在するコンポーネントについて、 ATB ポートによる接続をサポートするこ とが目的です。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-2ID050813 Non-Confidential

Page 119: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

ベースレジスタ 命令のアドレス計算の基盤となる値を保持するため、 ロード / ス ト ア命令で指定されるレジスタ。 命令とそのアドレシングモードによっては、 ベースレジスタ値にオフセッ トが加算または減算されて、 メモ リに送信するアドレスが生成される場合があり ます。

ベースレジスタ ライ トバック命令のターゲッ ト アドレス計算に使用されるベースレジスタの内容を、 アドレスがメモ リ順序で次の上位または下位アドレスを指し示すよ うに更新するこ と。 これによって、 命令で連続した転送を行う と き、 そのたびにターゲッ ト アドレスをフェッチする必要がなく、 連続する メモ リに対してよ り高速なバース ト アクセスが可能になり ます。

ビート 1 つのバース ト転送中の個々のデータ転送を、 ビート と も呼びます。 例えば、 INCR4バース トは 4 ビートで構成されます。

BE-8 バイ ト不変システムでの、 ビッグエンディアン形式のメモリ ビュー。

BE-32、 LE、 バイ ト不変、 ワード不変も参照。

BE-32 ワード不変システムでの、 ビッグエンディアン形式のメモリ ビュー。

BE-8、 LE、 バイ ト不変、 ワード不変も参照。

ビッグエンディアン データワード内の 上位バイ トから 下位バイ ト までが、 メモ リ内のアドレスの昇順に保存されるバイ ト配列方式。

リ トルエンディアンとエンディアン形式も参照。

ビッグエンディアン メモリ次の条件を満たすメモリ を指します。

• ワードアラインしたアドレスのバイ ト またはハーフワードが、 そのアドレスのワード内で 上位のバイ ト またはハーフワードである。

• ハーフワードアラインしたアドレスのバイ トが、 そのアドレスのハーフワード内で 上位バイ トである。

リ トルエンディアン メモ リ も参照。

バウンダリスキャン チェインバウンダ リ スキャン チェインは、 標準の JTAG TAP インタフェースを使用してバウンダ リ スキャン技術を実装しているデバイスのシ リ アル接続で構成されます。 各デバイスには少なく と も 1 つの TAP コン ト ローラがあ り、 TDI と TDO との間の接続チェインを形成するシフ ト レジスタを搭載しています。 このチェインを通して、 テス トデータがシフ ト されます。 プロセッサには数個のシフ ト レジスタを搭載できるため、 デバイスの選択した部分にアクセスできます。

分岐フォールディング 実行パイプラインに送られる命令ス ト リームから、 分岐命令を完全に取り除く手法。

ブレークポイン ト プログラムの実行を停止させよ う とする位置にある命令を識別するために、 デバッガによって提供される機構。 プログラマは、 ブレークポイン ト を挿入するこ とによって、 プログラムの実行中の決まった位置で、 レジスタの内容、 メモ リ位置、 変数の値を検査して、 プログラムが正常に動作しているかど うかをテス トできます。プログラムのテス トが完了した後で、 ブレークポイン トは削除されます。

ウォッチポイン ト も参照。

バースト 連続アドレスに対する一連の転送。 アドレスが連続しているため、 2 回目以降の転送ではアドレスを指定する必要があ り ません。 この方法によって、 一連の転送の実行速度が向上します。 AMBA 経由のバース トは、 バース トの長さ とアドレスのインクリ メ ン ト方法を示す信号によって制御されます。

ビート も参照。

バイ ト 8 ビッ トのデータ項目。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-3ID050813 Non-Confidential

Page 120: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

バイ ト不変 バイ ト不変のシステムでは、 リ トルエンディアンとビッグエンディアンとの間で動作が切り替えられても、 メモ リの各バイ トのアドレスは変更されません。 1 バイ ト を超えるデータ項目をメモ リからロード、 またはメモ リにス ト アする と き、 そのデータ項目を構成するバイ トが、 メモ リ アクセスのエンディアン形式に応じて正しい順序に配列されます。 ARM アーキテクチャでは、 ARMv6 およびそれ以降のバージ ョンでバイ ト不変システムがサポート されています。 バイ ト不変のサポートが選択されている場合は、 アンアラインドのハーフワード と ワードでのメモ リ アクセスもサポート されます。 複数ワードアクセスは、 ワードアラインしている必要があり ます。

ワード不変も参照。

クロックゲート 制御信号でマクロセルのクロ ッ ク信号をゲート し、 変更されたクロ ッ クを使用してマクロセルの動作状態を制御するこ と。

命令あたりのクロック数 (CPI)命令あたりのサイ クル数 (CPI) 参照。

コールド リセッ ト パワーオン リセッ ト と呼ばれるこ と もあ り ます。

ウォーム リセッ ト も参照。

コンテキスト マルチタスクのオペレーティングシステムで、 各プロセスが動作する環境。

高速コンテキス ト スイ ッチも参照。

コア プロセッサの一部で、 ALU、 データパス、 汎用レジスタ、 プログラムカウンタ、 命令デコードおよび制御回路が含まれます。

コアリセッ ト ウォーム リセッ ト参照。

CoreSight 完全なシステム オンチップ (SoC) のモニタ、 ト レース、 デバッグを行うためのインフラス ト ラ クチャ。

CPI 命令あたりのサイ クル数 (CPI) 参照。

命令あたりのサイクル数 (CPI)命令あたりのサイ クル数 (または命令あたりのクロ ッ ク数) は、 1 ク ロ ッ クサイクルで実行可能なコンピュータ命令の数の指標です。 この性能指標は、 同じ命令セッ トを実装した異なる CPU のパフォーマンスを比較するために使用できます。 値が低いほど、 パフォーマンスが高いこ とを意味します。

データアボート データ メモ リの不正な位置にアクセスが試みられたこ とを、 メモ リシステムからコアへ通知する方法。 アボート を引き起こしたデータの使用をプロセッサが試みた場合、 例外を引き起こす必要があり ます。

アボート も参照。

DCode メモリ 0x00000000 ~ 0x1FFFFFFFF のメモ リ空間。

デバッグアクセス ポート (DAP)システムバスへのアクセスで、 AMBA、 AHB、 または AHB-Lite マスタ と して動作する TAP ブロ ッ ク。 DAP は、 システム規模のデバッグをサポートする、 モジュラブロ ッ クのセッ ト を総称する用語です。 DAP はモジュラコンポーネン トで、 単一のデバッグインタフェースを通して、 メモ リマップされた AHB や CoreSight APB など複数のシステムに対して、 オプシ ョ ンのアクセスをサポートするよ う拡張可能なこ とを意図しています。

デバッガ ソフ ト ウェアの障害を検出し、 場所を特定し、 修正するために使用されるプログラムと、 ソフ ト ウェアのデバッグをサポートするカスタムハードウェアとを組み合わせたデバッグシステム。

エンベデッ ド ト レースバッファETB は、 サイズが構成可能な RAM を使用して、 ト レースデータのオンチップのスト レージを行います。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-4ID050813 Non-Confidential

Page 121: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

エンべデッ ド ト レース マクロセル (ETM)ハードウェアマクロセルで、 プロセッサコアに接続されたと きに、 ト レースポートに命令ト レース情報を出力します。

エンディアン形式 バイ トの順序。 データワードの連続するバイ トがメモ リに保存される順序を決定する方式。 システムのメモ リマッピングの見え方を表します。

リ トルエンディアンとビッグエンディアンも参照。

ETB エンベデッ ド ト レースバッファ参照。

ETM エンベデッ ド ト レース マクロセル参照。

例外 エラーまたはイベン トで、 これが発生する とプロセッサは現在実行中の命令ス トリームを停止し、 特定の例外ハンド ラまたは割り込み処理ルーチンを実行します。例外には外部割込みや NMI のほか、 プログラムの実行を中断する必要があるほど深刻だと見なされるフォールトやエラーイベン トが含まれます。 例と して、 無効なメモ リ アクセス、 外部割り込み、 未定義命令の実行などが挙げられます。 例外が発生する と、 通常のプログラムフローが中断され、 対応する例外ベクタで実行が再開されます。 例外ベクタには、 例外を処理する割り込み処理ルーチンの 初の命令が含まれています。

例外ハンドラ 割り込み処理ルーチン参照。

例外ベクタ 割り込みベクタ参照。

外部 PPB 0xE0040000 ~ 0xE00FFFFF の PPB メモ リ空間。

フラッシュパッチおよびブレークポイン トユニッ ト (FPB)アドレス一致タグのセッ トで、 フラ ッシュへのアクセスを SRAM の特別な場所へのアクセスにルーティングします。 これによって、 フラ ッシュの位置にパッチを適用し、 ブレークポイン トや、 迅速な修正または変更が可能にな り ます。

フォーマッタ フォーマッタは ETB と TPIU の内部入力ブロ ッ クで、 ト レースソースの ID をデータに埋め込み、 単一の ト レースス ト リームを生成します。

ハーフワード 16 ビッ トのデータ項目。

ホールトモード 互いに排他な 2 つのデバッグモードのうちの 1 つ。 ホールトモードでは、 ブレークポイン ト またはウォ ッチポイン トに遭遇したと きに、 プロセッサの実行がすべて停止します。 すべてのプロセッサの状態、 コプロセッサの状態、 メモ リ と I/O の位置を、 JTAG インタフェースから検査および変更できます。

モニタ デバッグモード も参照。

ホスト データや他のサービスを別のコンピュータに提供するコンピュータ。 特に、 デバッグ対象のターゲッ トにデバッグサービスを提供するコンピュータ。

HTM AHB ト レースマクロセル参照。

ICode メモリ 0x00000000 ~ 0x1FFFFFFF のメモ リ空間。

不正命令 アーキテクチャで未定義の命令。

実装定義 動作がアーキテクチャで定義されておらず、 個別の実装によって定義や文書化が行われます。

実装固有 動作がアーキテクチャで定義されていないが、 実装ごとに文書化する必要がないことを意味します。 使用可能な実装オプシ ョ ンが多数あ り、 選択したオプシ ョ ンによってソフ ト ウェアの互換性に影響がない場合に使用されます。

命令サイクル数 命令がパイプラインの実行ステージを占有するサイ クル数。

計装トレース リ アルタイムシステムをデバッグするためのコンポーネン トで、 メモ リマップされた単純な ト レースインタフェースによ り、 printf 形式のデバッグを提供します。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-5ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 122: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

インテリジェン ト電力管理 (IEM)デバイスの消費電力を低減するために使用される技術で、 動的な電圧スケーリ ングと クロ ッ ク周波数の変更を可能にします。

内部 PPB 0xE0000000 ~ 0xE003FFFF の PPB メモ リ空間。

割り込み処理ルーチン 割り込みが発生したと きに、 プロセッサの制御が渡されるプログラム。

割り込みベクタ 下位メモリにある多くの固定アドレスの 1 つで、 対応する割り込み処理ルーチンの初の命令が含まれています。

ジョ イン トテス ト アクシ ョ ングループ (JTAG)IEEE 1149.1 規格を策定した団体の名前。 この規格では、 集積回路デバイスのインサーキッ ト テス トに使用される、 バウンダ リ スキャン アーキテクチャが定義されています。 頭文字の JTAG で広く知られています。

JTAG ジ ョ イン ト テス ト アクシ ョ ングループ参照。

JTAG デバッグポート (JTAG-DP)デバッグアクセス用に標準の JTAG インタフェースを提供する、 DAP 用のオプシ ョンの外部インタフェース。

JTAG-DP JTAG デバッグポート参照。

LE バイ ト不変と ワード不変の両方のシステムにおける、 リ トルエンディアン形式のメモ リ ビュー。 バイ ト不変と ワード不変も参照。

リ トルエンディアン データワード内の 下位バイ トから 上位バイ ト までが、 メモ リ内のアドレスの昇順に保存されるバイ ト配列方式。

ビッグエンディアンとエンディアン形式も参照。

リ トルエンディアン メモリ次の条件を満たすメモリ を指します。

• ワードアラインされたアドレスのバイ ト またはハーフワードが、 そのアドレスにあるワード内の 下位のバイ ト またはハーフワードである。

• ハーフワードアラインされたアドレスのバイ トが、 そのアドレスにあるハーフワード内の 下位バイ トである。

ビッグエンディアン メモ リ も参照。

ロード / ストアアーキテクチャデータ処理操作が、 メモ リの内容に対して直接ではな く、 レジスタの内容に対してのみ行われるプロセッサアーキテクチャ。

ロードス トア ユニッ ト (LSU)プロセッサで、 ロード / ス ト ア転送を処理する部分。

LSU ロードス ト ア ユニッ ト参照。

マクロセル インタフェース と動作が定義された複合論理ブロッ ク。 一般的な VLSI システムは、複数のマクロセル (プロセッサ、 ETM、 メモ リブロ ッ クなど) と、 特定用途の論理回路で構成されます。

メモリコヒーレンシ メモ リは、 データ読み出しまたは命令フェッチによって読み出された値が、 後にその位置に書き込まれた値と一致していれば、 コ ヒーレン トです。 メモ リ コ ヒーレンシは、 メ イン メモ リ、 ラ イ トバッファ、 キャ ッシュを搭載したシステムのよ うに、対応する物理位置が複数存在する場合には、 実現が難し くな り ます。

メモリ保護ユニッ ト (MPU)メモ リブロ ッ クに対するアクセス許可を制御するハードウェア。 MMU とは異なり、MPU はアドレスを変更しません。

マイクロプロセッサ プロセッサ参照。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-6ID050813 Non-Confidential

Page 123: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

モニタ デバッグモード 互いに排他な 2 つのデバッグモードのうちの 1 つ。 モニタ デバッグモードでは、 プロセッサは、 デバッグモニタまたはオペレーティングシステムのデバッグタスクで提供されるソフ ト ウェア アボートハンド ラを稼働します。 これによって、 ブレークポイン ト またはウォ ッチポイン トに遭遇して、 通常のプログラム実行が中断している間であっても、 重要なシステム割り込みの処理を継続できます。

ホールトモード も参照。

MPU メモ リ保護ユニッ ト参照。

マルチレイヤ ク ロスバースイ ッチに似た相互接続方式。 相互接続の各マスタには、 それぞれのスレーブへの直接リ ンクがあ り、 このリ ンクは他のマスタ とは共有されません。 これによって、 各マスタは他のマスタ と並列に転送を処理できます。 マルチレイヤ相互接続での競合は、 ペイロードの宛先、 通常はスレーブでのみ発生します。

ネスト型ベクタ割り込みコン トローラ (NVIC)プロセッサに、 構成可能な割り込み処理機能を提供します。

NMI マスク不能割り込み参照。

マスク不能割り込み マスク不能割り込み (NMI) は、 ペリ フェラルからの信号か、 ソフ ト ウェアによってト リガされます。 これは、 リセッ ト を除いて も優先度の高い例外です。 この割り込みは常時有効で、 優先度は - 2 に固定されています。 NMI に対して、 次の動作は行えません。

• 他の例外によってマスクする、 または起動しないよ うにする。

• リ セッ ト以外の例外によって横取りする。

NVIC ネス ト型ベクタ割り込みコン ト ローラ参照。

ペナルティ 命令フローが仮定または予想と異なるため、 実行ステージの有効なパイプライン動作が発生しないサイクル数。

PFU プリ フェッチユニッ ト参照。

PMU 電力管理ユニッ ト参照。

電力管理ユニッ ト (PMU)プロセッサに電力管理機能を提供します。

パワーオン リセッ ト コールド リセッ ト参照。

PPB 専用ペリ フェラルバス参照。

プリフェ ッチ パイプライン処理のプロセッサで、 先行する命令の実行が完了する前に、 その後の命令をメモ リからフェッチしてパイプラインに送り込む処理。 プ リ フェッチされた命令は、 必ず実行される とは限り ません。

プリフェ ッチアボート メモ リの不正な位置から命令がフェッチされたこ とを、 メモ リシステムからコアへ通知するこ と。 プロセッサがその命令を実行しよ う と した場合、 例外を引き起こす必要があり ます。 プリ フェ ッチアボートは、 無効な命令メモリへのアクセスを試みた結果と して、 外部または内部のメモ リシステムによ り引き起こ される可能性があり ます。

データアボート、 アボート も参照。

プリフェ ッチユニッ ト (PFU)PFU は、 サイクルごとに 1 ワードを供給可能なメモ リシステムから命令をフェッチします。 PFU は 3 ワードまでのフェッチを FIFO にバッファできます。 つま り、 大3 つの 32 ビッ ト Thumb 命令、 または 6 つの 16 ビッ ト Thumb 命令をバッファすることができます。

専用ペリフェラルバス 0xE0000000 ~ 0xE00FFFFF のメモ リ空間。

プロセッサ コンピュータ命令を使用してデータを処理するために必要な、 コンピュータシステムの回路。 プロセッサは、 マイ ク ロプロセッサの略称です。 完全に機能する 小のコンピュータシステムを作成するには、 ク ロ ッ ク ソース、 電源、 メ イン メモ リ も必要です。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-7ID050813 Non-Confidential

Page 124: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

RW1C RW1C にマーク されているレジスタのビッ トは、 通常に読み出すこ とができ、 「1 を書き込んでク リ ア」 をサポート しています。 レジスタを読み出してから結果をレジスタへ書き戻すと、 セッ ト されているすべてのビッ トがク リ アされます。 RW1C は、読み出し - 変更 - 書き込み時に、 レジスタの読み出し と値の書き戻し との間でビッ トがセッ ト された場合にエラーが発生するこ とを防止します (そのビッ トは 0 と して書き込まれるため、 ク リ アされません)。

RealView ICE JTAG インタフェースを使用して、 組み込みプロセッサコアをデバッグするためのシステム。

予約 制御レジスタまたは命令の形式に含まれているフ ィールドが実装で定義される、 または 0 ではない場合に予測不能な結果が引き起こ される場合、 そのフ ィールドは予約と記載されています。 これらのフ ィールドは、 アーキテクチャの将来の拡張に備えて予約されている場合と、 実装固有の場合があり ます。 実装で使用されないすべての予約ビッ トは、 0 と して読み書きする必要があり ます。

スキャンチェイン スキャンチェインはシ リ アル接続されたデバイスで構成され、 標準の JTAG TAP インタフェースを使用してバウンダ リ スキャン技術を実装しています。 各デバイスには少なく と も 1 つの TAP コン ト ローラがあ り、 TDI と TDO との間の接続チェインを形成するシフ ト レジスタを搭載しています。 このチェインを通して、 テス トデータがシフ ト されます。 プロセッサには数個のシフ ト レジスタを搭載できるため、 デバイスの選択した部分にアクセスできます。

シリアルワイヤ デバッグポートDAP 用のオプシ ョ ンの外部インタフェースで、 シ リ アルワイヤの双方向デバッグインタフェースを提供します。

シリアルワイヤ JTAG デバッグポートJTAG-DP と SW-DP を組み合わせた、 標準のデバッグポート。

SW-DP シ リ アルワイヤ デバッグポート参照。

SWJ-DP シ リ アルワイヤ JTAG デバッグポート参照。

同期化基本命令 メモ リ同期化基本命令は、 メモ リの同期を保証するために使用される命令です。LDREX および STREX 命令が該当します。

システムメモリ 0x20000000 ~ 0xFFFFFFFF のメモ リ空間、 ただし、 0xE0000000 ~ 0xE00FFFFF の PPB 空間は除外されます。

TAP テス ト アクセスポート参照。

テスト アクセスポート (TAP)JTAG バウンダ リ スキャン アーキテクチャの入出力インタフェース と制御インタフェースを構成する、 4 つの必須端子と 1 つのオプシ ョ ン端子の集合。 必須端子はTDI、 TDO、 TMS、 TCK です。 オプシ ョ ン端子は TRST です。 この信号はデバッグロジッ クの リセッ トに使用されるため、 ARM コアでは必須です。

スレッ ド制御ブロック オペレーティングシステムのカーネルが、 実行中の 1 つのスレッ ドに固有の情報を保持するために使用するデータ構造。

Thumb 命令 ARM プロセッサが Thumb 状態で実行する動作を指定するハーフワード。 Thumb 命令は、 ハーフワードアラインドの必要があり ます。

Thumb 状態 Thumb (16 ビッ ト ) ハーフワードアラインド命令を実行しているプロセッサは、Thumb 状態で動作しています。

TPA ト レースポート アナライザ参照。

TPIU ト レースポート インタフェースユニッ ト参照。

ト レースポート アナライザ (TPA)ト レースポートに出力される ト レース情報をキャプチャするハードウェアデバイス。ト レースの取得、 またはロジッ クアナライザと して使用する目的に設計された、 低コス トの製品とするこ とができます。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-8ID050813 Non-Confidential

yamamoto_t
Sticky Note
Marked set by yamamoto_t
yamamoto_t
Sticky Note
Accepted set by yamamoto_t
Page 125: Cortex-M4 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0439cj/DDI0439CJ_cortex_m... · 03.11.2011 · テクニカルリファレンス

用語集

ト レースポート インタフェースユニッ ト (TPIU)ト レースデータを出力し、 オンチップの ト レースデータ と、 TPA によ りキャプチャされるデータス ト リームとの間のブリ ッジと して機能します。

アンアラインド データサイズを定義するバイ ト数で割り切れないアドレスに保存されているデータ項目を、 アンアラインド またはアラインしていないと呼びます。 例えば、 4 で割り切れないアドレスに保存されているワードはアンアラインドです。

ウェークアップ割り込みコン トローラ (WIC)ウェークアップ割り込みコン ト ローラによ り、 割り込み検出および優先度付けロジッ クのゲート数を大幅に削減できます。

ウォームリセッ ト コア リセッ ト と呼ばれるこ と もあ り ます。 デバッグコン ト ローラ とデバッグロジックを除く、 プロセッサの大部分を初期化します。 この種類のリセッ トは、 プロセッサのデバッグ機能を使用している場合に便利です。

ウォッチポイン ト ウォッチポイン トは、 デバッガで提供されている機構で、 特定のメモ リ アドレスに保存されているデータが変更されたと きにプログラムの実行を停止します。 プログラマは、 ウォ ッチポイン ト を挿入するこ とによって、 メモ リが書き込まれたと きのレジスタの内容、 メモ リの位置、 変数の値を検査して、 プログラムが正常に動作しているかど うかをテス トできます。 プログラムのテス トが完了した後で、 ウォ ッチポイン トは削除されます。 ブレークポイン ト も参照。

WIC ウェークアップ割り込みコン ト ローラ参照。

ワード 32 ビッ トのデータ項目。

ワード不変 ワード不変システムでは、 リ トルエンディアン動作とビッグエンディアン動作との切り替え時に、 各メモ リバイ トのアドレスが変更されます。 これによって、 一方のエンディアン形式でアドレス A が割り当てられたバイ トは、 他方のエンディアン形式ではアドレス A EOR 3 が割り当てられます。 このため、 メモ リのアラインされたワードは、 エンディアン形式に関係なく、 常にメモ リ上の同じ 4 バイ トに同じ順序で構成されます。 エンディアン形式の変更は、 バイ ト配列が変わるためではなく、バイ ト アドレスが変更されるために発生します。

ARM アーキテクチャでは、 ARMv3 およびそれ以降のバージ ョ ンでワード不変システムがサポート されています。 ワード不変のサポートが選択されている場合、 アンアラインドアドレスが指定されたロード / ス ト ア命令の動作は命令によって異なり、通常は、 アンアラインドアクセスに対して予測される動作にはなり ません。 ワード不変システムでは、 エンディアン形式が設定される前のリセッ トハンド ラの冒頭部分を除き、 常に期待どおりのバイ ト アドレスが生成されるエンディアン形式を使用するこ とをお勧めします。 リセッ トハンド ラの冒頭部分では、 アラインしたワードメモ リ アクセスのみを使用する必要があり ます。

バイ ト不変も参照。

ライ トバッファ 書き込みデータをバッファし、 バスのス トールによってプロセッサがス トールするこ とを防止するためのパイプラインステージ。

ARM DDI 0439CJ Copyright © 2009, 2010 ARM Limited. All rights reserved. Glossary-9ID050813 Non-Confidential