440
Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

Embed Size (px)

Citation preview

Page 1: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

Cortex ™ -M3 r2p0

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

Copyright © 2005-2008 ARM Limited.All rights reserved.

ARM DDI 0337G

Page 2: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

Copyright © 2005-2008 ARM Limited. All rights reserved.

リ リース情報

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

著作権表記

® または™の付いた用語と ロ ゴは、 本著作権条項で特に明記されていない限 り 、 EU および他諸国

におけ る ARM Limited の登録商標または商標です。 本書に記載されている他の商標その他の名前

は、 対応する所有者の商標の場合があ り ます。

本書に記載されている情報の全部または一部、 な らびに本書で紹介する製品は、 著作権所有者の

文書によ る事前の許可を得ない限 り 、 転用 ・ 複製する こ と を禁じ ます。

本書に説明されている製品は、 継続的に開発と 改良が行われています。 本書に含まれている製品

およびその利用方法についての情報は、 ARM Limited が利用者の利益のために提供する ものです。

し たがって当社では、 製品の商品性または目的への適合性を含め、 暗黙的 ・ 明示的に関係な く 一

切の保証を行いません。

本書は、 本製品の利用者をサポー ト する こ と だけを目的と し ています。 本書に記載されている情

報の使用、 情報の誤 り または省略、 あ るいは本製品の誤使用によ って発生し たいかなる損失や損

害について も、 ARM Limited は一切責任を負いません。

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

味で使用されています。

改訂履歴

日付 発行 公開の有無 改訂内容

2005 年 12 月 15 日 A 非公開 初版

2006 年 1 月 13 日 B 公開 非公開か ら公開に変更

2006 年 5 月 10 日 C 公開 r1p0 の 初の リ リ ース

2006 年 9 月 27 日 D 公開 r1p1 の 初の リ リ ース

2007 年 6 月 13 日 E 公開 技術面での変更を伴わない細部の更新

2008 年 4 月 11 日 F 非公開 SC300 r0p0 用の限定 リ リ ース

2008 年 6 月 26 日 G 公開 r2p0 の 初の リ リ ース

ii Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

アクセス制限な し

Page 3: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

守秘義務

この ド キ ュ メ ン ト は公開文書です。 本書を使用、 複製、 公開する権利には、 ARM と ARM が本書

を配布し た当事者と の間で締結された契約の条項に従って、 ラ イセン ス制約が適用される こ と が

あ り ます。

ARM 社内での分類は無制限ア ク セスです。

製品ステータ ス

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

ARM ホームページ

http://www.arm.com

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. iii

アクセス制限な し 非公開

Page 4: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

iv Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

アクセス制限な し

Page 5: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

序章本書について .................................................................................................................................... xxご意見 ・ ご質問 ............................................................................................................................. xxv

1 章 はじめに1.1 プロセ ッサについて .................................................................................................................. 1- 21.2 コ ンポーネン ト 、 階層、 実装 .............................................................................................. 1- 41.3 実行パイプラ イ ンステージ ................................................................................................. 1- 121.4 プ リ フ ェ ッ チユニ ッ ト ........................................................................................................... 1- 141.5 分岐ターゲッ ト のフ ォワーデ ィ ング ............................................................................. 1- 151.6 ス ト アバッ フ ァ .......................................................................................................................... 1- 181.7 製品リ ビジ ョ ン .......................................................................................................................... 1- 19

2 章 プログラマモデル2.1 プログラマモデルについて ................................................................................................... 2- 22.2 特権アクセスおよびユーザアクセス ............................................................................... 2- 32.3 レジス タ ........................................................................................................................................... 2- 42.4 データ タ イプ ............................................................................................................................... 2- 102.5 メ モ リ フ ォーマ ッ ト ................................................................................................................ 2- 112.6 命令セ ッ ト の概要 ..................................................................................................................... 2- 13

ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. v

アクセス制限な し 非公開

Page 6: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

目次

3 章 システム制御3.1 プロセ ッサレジス タの概要 ................................................................................................... 3- 2

4 章 メ モ リ マ ッ プ4.1 メ モ リ マ ッ プについて ............................................................................................................. 4- 24.2 ビ ッ ト バン ド ................................................................................................................................. 4- 54.3 ROM メ モ リ テーブル ................................................................................................................ 4- 8

5 章 例外5.1 例外モデルについて .................................................................................................................. 5- 25.2 例外のタ イプ ................................................................................................................................. 5- 45.3 例外の優先度 ................................................................................................................................. 5- 65.4 特権と ス タ ッ ク ............................................................................................................................ 5- 95.5 横取り .............................................................................................................................................. 5- 115.6 テールチ ェ イ ン .......................................................................................................................... 5- 155.7 後着 .................................................................................................................................................. 5- 175.8 退出 .................................................................................................................................................. 5- 195.9 リ セ ッ ト ......................................................................................................................................... 5- 225.10 例外制御の移行 .......................................................................................................................... 5- 275.11 複数のス タ ッ クの設定 ........................................................................................................... 5- 285.12 アボー ト モデル .......................................................................................................................... 5- 305.13 起動レベル .................................................................................................................................... 5- 355.14 フ ローチャー ト .......................................................................................................................... 5- 37

6 章 ク ロ ッ ク と リ セ ッ ト6.1 ク ロ ッ ク ........................................................................................................................................... 6- 26.2 リ セ ッ ト ........................................................................................................................................... 6- 46.3 Cortex-M3 のリ セ ッ ト モー ド ............................................................................................... 6- 5

7 章 電力管理7.1 電力管理について ....................................................................................................................... 7- 27.2 システム電力管理 ....................................................................................................................... 7- 3

8 章 ネス ト 型ベク タ割り込みコ ン ト ローラ8.1 NVIC について ............................................................................................................................... 8- 28.2 NVIC のプログラマモデル ...................................................................................................... 8- 38.3 レベル割り込みとパルス割り込みの比較 .................................................................... 8- 48

9 章 メ モ リ保護ユニ ッ ト9.1 MPU について ................................................................................................................................ 9- 29.2 MPU のプログラマモデル ....................................................................................................... 9- 39.3 MPU のアクセス許可 ............................................................................................................... 9- 149.4 MPU アボー ト .............................................................................................................................. 9- 179.5 MPU 領域の更新 ......................................................................................................................... 9- 189.6 割り込みと MPU の更新 ......................................................................................................... 9- 21

vi Copyright © 2005-2008 ARM Limited. All rights reserved. ARM DDI 0337G

非公開 アクセス制限な し

Page 7: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

目次

10 章 コ アデバッ グ10.1 コ アデバッ グについて ........................................................................................................... 10- 210.2 コ アデバッ グ レジス タ ......................................................................................................... 10- 410.3 コ ア デバッ グアクセスの例 .............................................................................................. 10- 1510.4 コ アデバッ グでのアプ リ ケーシ ョ ンレジス タの使用法 .................................... 10- 16

11 章 システムデバッ グ11.1 システムデバッ グについて ................................................................................................. 11- 211.2 システムデバッ グ アクセス ................................................................................................ 11- 311.3 システムデバッ グのプログラマモデル ........................................................................ 11- 511.4 FPB ................................................................................................................................................... 11- 611.5 DWT ................................................................................................................................................ 11- 1311.6 ITM .................................................................................................................................................. 11- 3311.7 AHB-AP ........................................................................................................................................ 11- 44

12 章 バスイ ン タ フ ェース12.1 バスイ ン タ フ ェースについて ............................................................................................ 12- 212.2 AMBA 3 への準拠 ...................................................................................................................... 12- 312.3 ICode バスイ ン タ フ ェース ................................................................................................... 12- 412.4 DCode バスイ ン タ フ ェース ................................................................................................. 12- 612.5 システムイ ン タ フ ェース ...................................................................................................... 12- 712.6 コー ドバスの統合 ..................................................................................................................... 12- 912.7 外部専用ペ リ フ ェ ラル イ ン タ フ ェース ..................................................................... 12- 1012.8 アクセスのアラ イ メ ン ト .................................................................................................... 12- 1112.9 領域にまたがるアンアラ イ ン ド アクセス ................................................................. 12- 1212.10 ビ ッ ト バン ド アクセス ......................................................................................................... 12- 1412.11 ラ イ ト バッ フ ァ ........................................................................................................................ 12- 1512.12 メ モ リ属性 .................................................................................................................................. 12- 1612.13 AHB のタ イ ミ ング特性 ........................................................................................................ 12- 17

13 章 デバッ グポー ト13.1 DP について ................................................................................................................................. 13- 2

14 章 エンベデ ッ ド ト レース マク ロセル14.1 ETM について .............................................................................................................................. 14- 214.2 データ ト レース .......................................................................................................................... 14- 714.3 ETM リ ソース .............................................................................................................................. 14- 814.4 ト レース出力 ............................................................................................................................. 14- 1114.5 ETM のアーキテ クチャ ........................................................................................................ 14- 1214.6 ETM のプログラマモデル ................................................................................................... 14- 16

15 章 エンベデ ッ ド ト レース マク ロセルのイ ン タ フ ェ ース15.1 ETM イ ン タ フ ェースについて ........................................................................................... 15- 215.2 CPU の ETM イ ン タ フ ェースポー ト の説明 ................................................................. 15- 315.3 分岐ステータ スイ ン タ フ ェース ....................................................................................... 15- 6

ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. vii

アクセス制限な し 非公開

Page 8: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

目次

16 章 AHB ト レースマク ロセル イ ン タ フ ェース16.1 AHB ト レースマク ロセル イ ン タ フ ェースについて .............................................. 16- 216.2 CPU AHB ト レースマク ロセル イ ン タ フ ェースのポー ト の説明 .................... 16- 3

17 章 ト レースポー ト イ ン タ フ ェースユニ ッ ト17.1 TPIU について ............................................................................................................................. 17- 217.2 TPIU レジス タ ............................................................................................................................. 17- 917.3 シ リ アルワイヤ出力接続 ................................................................................................... 17- 24

18 章 命令のタ イ ミ ング18.1 命令のタ イ ミ ングについて ................................................................................................. 18- 218.2 プロセ ッサ命令のタ イ ミ ング ............................................................................................ 18- 318.3 ロー ド / ス ト アのタ イ ミ ング ............................................................................................ 18- 7

19 章 AC 特性19.1 プロセ ッサのタ イ ミ ングパラ メ ータ ............................................................................. 19- 2

付録 A 信号の説明A.1 ク ロ ッ ク ........................................................................................................................................... A- 2A.2 リ セ ッ ト ........................................................................................................................................... A- 3A.3 その他の命令 ................................................................................................................................. A- 4A.4 割り込みイ ン タ フ ェース ........................................................................................................ A- 6A.5 低電力イ ン タ フ ェース ............................................................................................................. A- 7A.6 ICode イ ン タ フ ェース ............................................................................................................... A- 8A.7 DCode イ ン タ フ ェース ............................................................................................................. A- 9A.8 システムバス イ ン タ フ ェース .......................................................................................... A- 10A.9 専用ペリ フ ェ ラルバス イ ン タ フ ェース ...................................................................... A- 11A.10 ITM イ ン タ フ ェース ................................................................................................................ A- 12A.11 AHB-AP イ ン タ フ ェース ...................................................................................................... A- 13A.12 ETM イ ン タ フ ェース .............................................................................................................. A- 14A.13 AHB ト レースマク ロセル イ ン タ フ ェース ................................................................ A- 16A.14 テス ト イ ン タ フ ェース .......................................................................................................... A- 17A.15 WIC イ ン タ フ ェース ............................................................................................................... A- 18

付録 B リ ビジ ョ ン

用語集

viii Copyright © 2005-2008 ARM Limited. All rights reserved. ARM DDI 0337G

非公開 アクセス制限な し

Page 9: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

テーブルリ ス トCortex-M3 テ クニカルリ フ ァ レンス マニュアル

改訂履歴 .................................................................................................................................................................... ii テーブル 2- 1 APSR のビ ッ ト 割り当て ............................................................................................................................. 2- 6 テーブル 2- 2 IPSR のビ ッ ト 割り当て ............................................................................................................................... 2- 7 テーブル 2- 3 EPSR のビ ッ ト の機能 .................................................................................................................................. 2- 8 テーブル 2- 4 Cortex-M3 の 16 ビ ッ ト 命令の概要 .................................................................................................... 2- 13 テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 .................................................................................................... 2- 17 テーブル 3- 1 NVIC レジス タ .................................................................................................................................................. 3- 2 テーブル 3- 2 コアデバッ グ レジス タ ............................................................................................................................... 3- 6 テーブル 3- 3 フ ラ ッ シュパッ チ レジス タの概要 ...................................................................................................... 3- 7 テーブル 3- 4 DWT レジス タの概要 .................................................................................................................................... 3- 8 テーブル 3- 5 ITM レジス タの概要 .................................................................................................................................... 3- 10 テーブル 3- 6 AHB-AP レジス タの概要 .......................................................................................................................... 3- 12 テーブル 3- 7 デバッ グイ ン タ フ ェースポー ト レジス タの概要 ....................................................................... 3- 13 テーブル 3- 8 MPU レジス タ ................................................................................................................................................. 3- 13 テーブル 3- 9 TPIU レジス タ ................................................................................................................................................ 3- 14 テーブル 3- 10 ETM レジス タ ................................................................................................................................................. 3- 16 テーブル 4- 1 メ モ リ イ ン タ フ ェース ................................................................................................................................ 4- 3 テーブル 4- 2 メ モ リ領域のアクセス許可 ...................................................................................................................... 4- 4 テーブル 4- 3 ROM テーブル .................................................................................................................................................. 4- 8 テーブル 5- 1 例外のタ イプ .................................................................................................................................................... 5- 4 テーブル 5- 2 優先度に応じ た例外の動作 ...................................................................................................................... 5- 6 テーブル 5- 3 優先度のグループ化 ..................................................................................................................................... 5- 8 テーブル 5- 4 例外の開始手順 ............................................................................................................................................. 5- 12

ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. ix

アクセス制限な し 非公開

Page 10: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

テーブルリ ス ト

テーブル 5- 5 例外の退出手順 ............................................................................................................................................. 5- 19 テーブル 5- 6 例外からの復帰動作 ................................................................................................................................... 5- 21 テーブル 5- 7 リ セ ッ ト 時の動作 ........................................................................................................................................ 5- 22 テーブル 5- 8 リ セ ッ ト 時のブー ト ア ッ プ動作 ........................................................................................................... 5- 24 テーブル 5- 9 例外処理への移行 ........................................................................................................................................ 5- 27 テーブル 5- 10 フ ォール ト ....................................................................................................................................................... 5- 31 テーブル 5- 11 デバッ グフ ォール ト ................................................................................................................................... 5- 33 テーブル 5- 12 フ ォール ト ステータ ス レジス タ と フ ォール ト ア ド レス レジス タ ................................... 5- 34 テーブル 5- 13 各起動レベルでの特権と ス タ ッ ク ...................................................................................................... 5- 35 テーブル 5- 14 例外の遷移 ....................................................................................................................................................... 5- 35 テーブル 5- 15 例外のサブ タ イプの遷移 ......................................................................................................................... 5- 36 テーブル 6- 1 Cortex-M3 プロセ ッサのク ロ ッ ク ......................................................................................................... 6- 2 テーブル 6- 2 Cortex-M3 マク ロセルのク ロ ッ ク ......................................................................................................... 6- 2 テーブル 6- 3 リ セ ッ ト 入力 .................................................................................................................................................... 6- 4 テーブル 6- 4 リ セ ッ ト モー ド ............................................................................................................................................... 6- 5 テーブル 7- 1 サポー ト されているス リープモー ド ................................................................................................... 7- 3 テーブル 8- 1 NVIC レジス タ .................................................................................................................................................. 8- 3 テーブル 8- 2 割り込みコ ン ト ローラ タ イプ レジス タのビ ッ ト 割り当て ..................................................... 8- 8 テーブル 8- 3 補助制御レジス タのビ ッ ト 割り当て ................................................................................................... 8- 9 テーブル 8- 4 SysTick 制御およびステータ スレジス タのビ ッ ト 割り当て .................................................. 8- 10 テーブル 8- 5 SysTick リ ロー ド値レジス タのビ ッ ト 割り当て .......................................................................... 8- 11 テーブル 8- 6 SysTick 現在値レジス タのビ ッ ト 割り当て .................................................................................... 8- 12 テーブル 8- 7 SysTick 較正値レジス タのビ ッ ト 割り当て .................................................................................... 8- 13 テーブル 8- 8 割り込みイネーブルセ ッ ト レジス タのビ ッ ト 割り当て ......................................................... 8- 14 テーブル 8- 9 割り込みイネーブルク リ アレジス タのビ ッ ト 割り当て ......................................................... 8- 15 テーブル 8- 10 割り込み保留セ ッ ト レジス タのビ ッ ト 割り当て ........................................................................ 8- 16 テーブル 8- 11 割り込み保留ク リ アレジス タのビ ッ ト 割り当て ........................................................................ 8- 17 テーブル 8- 12 アク テ ィ ブビ ッ ト レジス タのビ ッ ト 割り当て ............................................................................ 8- 17 テーブル 8- 13 割り込み優先度レジス タの 0 ~ 31 ビ ッ ト の割り当て ............................................................ 8- 19 テーブル 8- 14 CPUID ベースレジス タのビ ッ ト 割り当て ....................................................................................... 8- 19 テーブル 8- 15 割り込み制御状態レジス タのビ ッ ト 割り当て ............................................................................. 8- 21 テーブル 8- 16 ベク タ テーブル オフセ ッ ト レジス タのビ ッ ト 割り当て ........................................................ 8- 23 テーブル 8- 17 アプ リ ケーシ ョ ン割り込みおよびリ セ ッ ト 制御レジス タのビ ッ ト 割り当て ............. 8- 25 テーブル 8- 18 システム制御レジス タのビ ッ ト 割り当て ....................................................................................... 8- 28 テーブル 8- 19 構成制御レジス タのビ ッ ト 割り当て ................................................................................................. 8- 29 テーブル 8- 20 システムハン ド ラ優先度レジス タのビ ッ ト 割り当て .............................................................. 8- 31 テーブル 8- 21 システムハン ド ラ制御および状態レジス タのビ ッ ト 割り当て ........................................... 8- 33 テーブル 8- 22 メ モ リ管理フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ......................................... 8- 37 テーブル 8- 23 バスフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ........................................................ 8- 38 テーブル 8- 24 用法フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ........................................................ 8- 40 テーブル 8- 25 ハー ド フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ................................................... 8- 42 テーブル 8- 26 デバッ グフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て .............................................. 8- 44 テーブル 8- 27 メ モ リ管理フ ォール ト ア ド レス レジス タのビ ッ ト 割り当て .............................................. 8- 45 テーブル 8- 28 バスフ ォール ト ア ド レス レジス タのビ ッ ト 割り当て ............................................................. 8- 45 テーブル 8- 29 補助フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ........................................................ 8- 46 テーブル 8- 30 ソ フ ト ウ ェ ア ト リ ガ割り込みレジス タのビ ッ ト 割り当て .................................................... 8- 47 テーブル 9- 1 MPU レジス タ ................................................................................................................................................... 9- 3

x Copyright © 2005-2008 ARM Limited. All rights reserved. ARM DDI 0337G

非公開 アクセス制限な し

Page 11: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

テーブルリ ス ト

テーブル 9- 2 MPU タ イプレジス タのビ ッ ト 割り当て ............................................................................................. 9- 4 テーブル 9- 3 MPU 制御レジス タのビ ッ ト 割り当て .................................................................................................. 9- 6 テーブル 9- 4 MPU 領域番号レジス タのビ ッ ト 割り当て ........................................................................................ 9- 7 テーブル 9- 5 MPU 領域ベースア ド レス レジス タのビ ッ ト 割り当て ............................................................. 9- 8 テーブル 9- 6 MPU 領域属性およびサイズレジス タのビ ッ ト 割り当て .......................................................... 9- 9 テーブル 9- 7 MPU 保護領域サイズフ ィ ールド ......................................................................................................... 9- 11 テーブル 9- 8 TEX、 C、 B のエン コー ド ........................................................................................................................ 9- 14 テーブル 9- 9 メ モ リ属性エン コー ドのキャ ッ シュポ リ シー ............................................................................. 9- 15 テーブル 9- 10 AP のエン コー ド ........................................................................................................................................... 9- 15 テーブル 9- 11 XN のエン コー ド ........................................................................................................................................... 9- 16 テーブル 10- 1 コアデバッ グ レジス タ ............................................................................................................................. 10- 2 テーブル 10- 2 デバッ グホール ト 制御およびステータ スレジス タ ................................................................... 10- 5 テーブル 10- 3 デバッ グコアレジス タ セレ ク タ レジス タ ..................................................................................... 10- 8 テーブル 10- 4 デバッ グ例外およびモニ タ制御レジス タ ..................................................................................... 10- 11 テーブル 10- 5 コアデバッ グで使用されるアプ リ ケーシ ョ ンレジス タ ....................................................... 10- 16 テーブル 11- 1 FPB レジス タの概要 ................................................................................................................................... 11- 7 テーブル 11- 2 フ ラ ッ シュパッ チ制御レジス タのビ ッ ト 割り当て ................................................................... 11- 9 テーブル 11- 3 COMP マ ッ ピング ...................................................................................................................................... 11- 10 テーブル 11- 4 フ ラ ッ シュパッ チ リ マ ッ プレジス タのビ ッ ト 割り当て ...................................................... 11- 11 テーブル 11- 5 フ ラ ッ シュパッ チ コ ンパレータ レジス タのビ ッ ト 割り当て ............................................ 11- 12 テーブル 11- 6 DWT レジス タの概要 ................................................................................................................................ 11- 14 テーブル 11- 7 DWT 制御レジス タのビ ッ ト 割り当て .............................................................................................. 11- 17 テーブル 11- 8 DWT カ レン ト PC サンプ ラサイ クル カウン ト レジス タのビ ッ ト 割り当て .............. 11- 21 テーブル 11- 9 DWT CPI カウン ト レジス タのビ ッ ト 割り当て ........................................................................... 11- 22 テーブル 11- 10 DWT 例外オーバヘ ッ ド カウン ト レジス タのビ ッ ト 割り当て ........................................... 11- 23 テーブル 11- 11 DWT ス リープカウン ト レジス タのビ ッ ト 割り当て ............................................................... 11- 24 テーブル 11- 12 DWT LSU カウン ト レジス タのビ ッ ト 割り当て ......................................................................... 11- 25 テーブル 11- 13 DWT フ ォールド カウン ト レジス タのビ ッ ト 割り当て .......................................................... 11- 26 テーブル 11- 14 DWT プログラムカウン タ サンプルレジス タのビ ッ ト 割り当て ...................................... 11- 26 テーブル 11- 15 DWT コ ンパレータ レジス タ 0 ~ 3 のビ ッ ト 割り当て ........................................................... 11- 27 テーブル 11- 16 DWT マスク レジス タ 0 ~ 3 のビ ッ ト 割り当て .......................................................................... 11- 28 テーブル 11- 17 DWT 機能レジス タ 0 ~ 3 のビ ッ ト 機能 ......................................................................................... 11- 29 テーブル 11- 18 DWT 機能レジス タの設定 ...................................................................................................................... 11- 30 テーブル 11- 19 ITM レジス タの概要 .................................................................................................................................. 11- 34 テーブル 11- 20 ITM ト レースイネーブル レジス タのビ ッ ト 割り当て ............................................................ 11- 36 テーブル 11- 21 ITM ト レース特権レジス タのビ ッ ト 割り当て ............................................................................ 11- 38 テーブル 11- 22 ITM ト レース制御レジス タのビ ッ ト 割り当て ............................................................................ 11- 39 テーブル 11- 23 ITM 統合書き込みレジス タのビ ッ ト 割り当て ............................................................................ 11- 41 テーブル 11- 24 ITM 統合読み出し レジス タのビ ッ ト 割り当て ............................................................................ 11- 41 テーブル 11- 25 ITM 統合モー ド制御レジス タのビ ッ ト 割り当て ....................................................................... 11- 42 テーブル 11- 26 ITM ロ ッ クアクセス レジス タのビ ッ ト 割り当て ..................................................................... 11- 42 テーブル 11- 27 ITM ロ ッ クステータ ス レジス タのビ ッ ト 割り当て ................................................................ 11- 43 テーブル 11- 28 AHB-AP レジス タの概要 ........................................................................................................................ 11- 45 テーブル 11- 29 AHB-AP 制御およびステータ スワー ド レジス タのビ ッ ト 割り当て .............................. 11- 46 テーブル 11- 30 AHB-AP 転送ア ド レスレジス タのビ ッ ト 割り当て .................................................................. 11- 48 テーブル 11- 31 AHB-AP データ読み出し / 書き込みレジス タのビ ッ ト 割り当て .................................... 11- 48 テーブル 11- 32 AHB-AP バン クデータ レジス タのビ ッ ト 割り当て ................................................................ 11- 49

ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. xi

アクセス制限な し 非公開

Page 12: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

テーブルリ ス ト

テーブル 11- 33 AHB-AP デバッ グ ROM ア ド レスレジス タのビ ッ ト 割り当て .......................................... 11- 49 テーブル 11- 34 AHB-AP ID レジス タのビ ッ ト 割り当て ........................................................................................ 11- 50 テーブル 12- 1 命令フ ェ ッ チ .................................................................................................................................................. 12- 4 テーブル 12- 2 バスマ ッパーのアンアラ イ ン ド アクセス .................................................................................... 12- 11 テーブル 12- 3 メ モ リ属性 .................................................................................................................................................... 12- 16 テーブル 12- 4 イ ン タ フ ェースのタ イ ミ ング特性 ................................................................................................... 12- 17 テーブル 14- 1 ETM コアイ ン タ フ ェースの入力と出力 ........................................................................................... 14- 4 テーブル 14- 3 ト レースポー ト 信号 ................................................................................................................................... 14- 5 テーブル 14- 2 その他のコ ン フ ィ ギュ レーシ ョ ン入力 ............................................................................................ 14- 5 テーブル 14- 4 その他の信号 .................................................................................................................................................. 14- 6 テーブル 14- 5 ク ロ ッ ク と リ セ ッ ト ................................................................................................................................... 14- 6 テーブル 14- 6 APB イ ン タ フ ェース信号 ......................................................................................................................... 14- 6 テーブル 14- 7 Cortex-M3 リ ソース .................................................................................................................................... 14- 8 テーブル 14- 8 例外 ト レースのマ ッ ピング .................................................................................................................. 14- 13 テーブル 14- 9 ETM レジス タ .............................................................................................................................................. 14- 16 テーブル 14- 10 イベン ト のブール関数エン コー ド ................................................................................................... 14- 23 テーブル 14- 11 リ ソース ID のエン コー ド ..................................................................................................................... 14- 24 テーブル 14- 12 入力接続 ......................................................................................................................................................... 14- 24 テーブル 14- 13 ト リ ガ出力接続 .......................................................................................................................................... 14- 25 テーブル 15- 1 ETM イ ン タ フ ェースポー ト .................................................................................................................... 15- 3 テーブル 15- 2 分岐ステータ ス信号の機能 ..................................................................................................................... 15- 6 テーブル 15- 3 分岐と プロセ ッサによ って評価されるステージ ........................................................................ 15- 7 テーブル 15- 4 オペコー ド シーケンスの例 .................................................................................................................. 15- 11 テーブル 16- 1 AHB イ ン タ フ ェースのポー ト ............................................................................................................... 16- 3 テーブル 17- 1 ト レース出力ポー ト の信号 ..................................................................................................................... 17- 6 テーブル 17- 2 ATB ポー ト の信号 ........................................................................................................................................ 17- 6 テーブル 17- 3 その他の構成入力 ........................................................................................................................................ 17- 7 テーブル 17- 4 APB イ ン タ フ ェース ................................................................................................................................... 17- 8 テーブル 17- 5 TPIU レジス タ ................................................................................................................................................ 17- 9 テーブル 17- 6 非同期ク ロ ッ ク プ リ スケーラ レジス タのビ ッ ト 割り当て ................................................ 17- 12 テーブル 17- 7 選択ピンプロ ト コル レジス タのビ ッ ト 割り当て .................................................................... 17- 13 テーブル 17- 8 フ ォーマ ッ タおよびフ ラ ッ シュステータ ス レジス タのビ ッ ト 割り当て .................. 17- 14 テーブル 17- 9 フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タのビ ッ ト 割り当て ................................... 17- 15 テーブル 17- 10 統合テス ト レジス タ - ITATBCTR2 のビ ッ ト 割り当て ......................................................... 17- 18 テーブル 17- 11 統合テス ト レジス タ - ITATBCTR0 のビ ッ ト 割り当て ......................................................... 17- 18 テーブル 17- 12 統合モー ド制御レジス タのビ ッ ト 割り当て ............................................................................... 17- 19 テーブル 17- 13 統合レジス タ : TRIGGER のビ ッ ト 割り当て ............................................................................... 17- 20 テーブル 17- 14 統合レジス タ : FIFO データ 0 のビ ッ ト 割り当て ..................................................................... 17- 21 テーブル 17- 15 統合レジス タ : FIFO データ 1 のビ ッ ト 割り当て ..................................................................... 17- 22 テーブル 18- 1 命令のタ イ ミ ング ........................................................................................................................................ 18- 3 テーブル 19- 1 その他の入力ポー ト のタ イ ミ ングパラ メ ータ ............................................................................. 19- 2 テーブル 19- 2 低電力入力ポー ト のタ イ ミ ングパラ メ ータ .................................................................................. 19- 2 テーブル 19- 3 割り込み入力ポー ト のタ イ ミ ングパラ メ ータ ............................................................................. 19- 3 テーブル 19- 4 AHB 入力ポー ト のタ イ ミ ングパラ メ ータ ...................................................................................... 19- 3 テーブル 19- 5 PPB 入力ポー ト のタ イ ミ ングパラ メ ータ ...................................................................................... 19- 4 テーブル 19- 6 デバッ グ入力ポー ト のタ イ ミ ングパラ メ ータ ............................................................................. 19- 4 テーブル 19- 7 テス ト 入力ポー ト のタ イ ミ ングパラ メ ータ .................................................................................. 19- 5

xii Copyright © 2005-2008 ARM Limited. All rights reserved. ARM DDI 0337G

非公開 アクセス制限な し

Page 13: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

テーブルリ ス ト

テーブル 19- 8 ETM 入力ポー ト のタ イ ミ ングパラ メ ータ ...................................................................................... 19- 5 テーブル 19- 9 その他の出力ポー ト のタ イ ミ ングパラ メ ータ ............................................................................. 19- 5 テーブル 19- 10 低電力出力ポー ト のタ イ ミ ングパラ メ ータ .................................................................................. 19- 6 テーブル 19- 11 AHB 出力ポー ト のタ イ ミ ングパラ メ ータ ...................................................................................... 19- 6 テーブル 19- 12 PPB 出力ポー ト のタ イ ミ ングパラ メ ータ ...................................................................................... 19- 8 テーブル 19- 13 デバッ グイ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ .......................................... 19- 8 テーブル 19- 14 ETM イ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ .................................................... 19- 9 テーブル 19- 15 HTM イ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ ................................................. 19- 10 テーブル 19- 16 テス ト 出力ポー ト のタ イ ミ ングパラ メ ータ ................................................................................ 19- 10 テーブル A- 1 ク ロ ッ ク信号 .................................................................................................................................................... A- 2 テーブル A- 2 リ セ ッ ト 信号 .................................................................................................................................................... A- 3 テーブル A- 3 その他の信号 .................................................................................................................................................... A- 4 テーブル A- 4 割り込みイ ン タ フ ェースの信号 ............................................................................................................. A- 6 テーブル A- 5 低電力イ ン タ フ ェースの信号 .................................................................................................................. A- 7 テーブル A- 6 ICode イ ン タ フ ェース .................................................................................................................................. A- 8 テーブル A- 7 DCode イ ン タ フ ェース ................................................................................................................................ A- 9 テーブル A- 8 システムバス イ ン タ フ ェース ............................................................................................................. A- 10 テーブル A- 9 専用ペ リ フ ェ ラルバス イ ン タ フ ェース ......................................................................................... A- 11 テーブル A- 10 ITM イ ン タ フ ェース ................................................................................................................................... A- 12 テーブル A- 11 AHB-AP イ ン タ フ ェース ......................................................................................................................... A- 13 テーブル A- 12 ETM イ ン タ フ ェース .................................................................................................................................. A- 14 テーブル A- 13 HTM イ ン タ フ ェース ................................................................................................................................. A- 16 テーブル A- 14 テス ト イ ン タ フ ェース ............................................................................................................................. A- 17 テーブル A- 15 WIC イ ン タ フ ェースの信号 .................................................................................................................... A- 18 テーブル B- 1 E 版と F 版の相違点 ...................................................................................................................................... B- 1 テーブル B- 2 F 版と G 版の相違点 ..................................................................................................................................... B- 5

ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. xiii

アクセス制限な し 非公開

Page 14: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

テーブルリ ス ト

xiv Copyright © 2005-2008 ARM Limited. All rights reserved. ARM DDI 0337G

非公開 アクセス制限な し

Page 15: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

タ イ ミ ング図の規則を表す記号 ............................................................................................................. xxiii 図 1- 1 Cortex-M3 のブロ ッ ク図 ............................................................................................................................ 1- 5 図 1- 2 Cortex-M3 のパイプ ラ イ ンステージ .................................................................................................. 1- 12 図 2- 1 プロセ ッサのレジス タ セ ッ ト .................................................................................................................. 2- 4 図 2- 2 APSR のビ ッ ト 割り当て ............................................................................................................................. 2- 6 図 2- 3 IPSR のビ ッ ト 割り当て ............................................................................................................................... 2- 7 図 2- 4 実行プログラム ステータ スレジス タ ................................................................................................. 2- 8 図 2- 5 リ ト ルエンデ ィ アンおよびビ ッ グエンデ ィ アンのメ モ リ フ ォーマ ッ ト ....................... 2- 12 図 4- 1 プロセ ッサのメ モ リ マ ッ プ ...................................................................................................................... 4- 2 図 4- 2 ビ ッ ト バン ド のマ ッ ピング ...................................................................................................................... 4- 6 図 5- 1 横取り後のス タ ッ クの内容 .................................................................................................................... 5- 11 図 5- 2 例外開始のタ イ ミ ング .............................................................................................................................. 5- 13 図 5- 3 テールチ ェ イ ンのタ イ ミ ング ................................................................................................................ 5- 15 図 5- 4 後着例外のタ イ ミ ング .............................................................................................................................. 5- 17 図 5- 5 例外退出のタ イ ミ ング .............................................................................................................................. 5- 20 図 5- 6 割り込み処理のフ ローチャー ト ........................................................................................................... 5- 37 図 5- 7 横取りのフ ローチャー ト ......................................................................................................................... 5- 38 図 5- 8 割り込みからの復帰のフ ローチャー ト ............................................................................................ 5- 39 図 6- 1 リ セ ッ ト 信号 .................................................................................................................................................... 6- 6 図 6- 2 パワーオン リ セ ッ ト ..................................................................................................................................... 6- 6 図 6- 3 内部リ セ ッ ト の同期 ..................................................................................................................................... 6- 7 図 7- 1 SLEEPING 電力制御の例 ............................................................................................................................. 7- 4 図 7- 2 SLEEPDEEP 電力制御の例 ......................................................................................................................... 7- 5

ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. xv

アクセス制限な し 非公開

Page 16: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

図リ ス ト

図 7- 3 WIC モー ドの許可シーケンス .................................................................................................................. 7- 7 図 7- 4 電力オフのタ イ ミ ングシーケンス ........................................................................................................ 7- 9 図 7- 5 PMU、 WIC、 および Cortex-M3 の相互接続 ................................................................................... 7- 10 図 8- 1 割り込みコ ン ト ローラ タ イプ レジス タのビ ッ ト 割り当て ..................................................... 8- 8 図 8- 2 補助制御レジス タのビ ッ ト 割り当て ................................................................................................... 8- 9 図 8- 3 SysTick 制御およびステータ スレジス タのビ ッ ト 割り当て .................................................. 8- 10 図 8- 4 SysTick リ ロー ド値レジス タのビ ッ ト 割り当て .......................................................................... 8- 11 図 8- 5 SysTick 現在値レジス タのビ ッ ト 割り当て .................................................................................... 8- 12 図 8- 6 SysTick 較正値レジス タのビ ッ ト 割り当て .................................................................................... 8- 13 図 8- 7 割り込み優先度レジス タの 0 ~ 31 ビ ッ ト の割り当て ............................................................ 8- 18 図 8- 8 CPUID ベースレジス タのビ ッ ト 割り当て ....................................................................................... 8- 19 図 8- 9 割り込み制御状態レジス タのビ ッ ト 割り当て ............................................................................. 8- 21 図 8- 10 ベク タ テーブル オフセ ッ ト レジス タのビ ッ ト 割り当て ........................................................ 8- 23 図 8- 11 アプ リ ケーシ ョ ン割り込みおよびリ セ ッ ト 制御レジス タのビ ッ ト 割り当て ............. 8- 24 図 8- 12 システム制御レジス タのビ ッ ト 割り当て ....................................................................................... 8- 27 図 8- 13 構成制御レジス タのビ ッ ト 割り当て ................................................................................................. 8- 29 図 8- 14 システムハン ド ラ優先度レジス タのビ ッ ト 割り当て .............................................................. 8- 31 図 8- 15 システムハン ド ラ制御および状態レジス タのビ ッ ト 割り当て ........................................... 8- 32 図 8- 16 構成可能フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て .............................................. 8- 35 図 8- 17 メ モ リ管理フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ......................................... 8- 36 図 8- 18 バスフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ........................................................ 8- 38 図 8- 19 用法フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ........................................................ 8- 40 図 8- 20 ハー ド フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て ................................................... 8- 41 図 8- 21 デバッ グフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て .............................................. 8- 43 図 8- 22 ソ フ ト ウ ェ ア ト リ ガ割り込みレジス タのビ ッ ト 割り当て .................................................... 8- 47 図 9- 1 MPU タ イプレジス タのビ ッ ト 割り当て ............................................................................................. 9- 4 図 9- 2 MPU 制御レジス タのビ ッ ト 割り当て .................................................................................................. 9- 5 図 9- 3 MPU 領域番号レジス タのビ ッ ト 割り当て ........................................................................................ 9- 7 図 9- 4 MPU 領域ベースア ド レス レジス タのビ ッ ト 割り当て .............................................................. 9- 8 図 9- 5 MPU 領域属性およびサイズレジス タのビ ッ ト 割り当て .......................................................... 9- 9 図 10- 1 デバッ グホール ト 制御およびステータ スレジス タのビ ッ ト 割り当て ............................ 10- 5 図 10- 2 デバッ グコアレジス タ セレ ク タ レジス タのビ ッ ト 割り当て .............................................. 10- 8 図 10- 3 デバッ グ例外およびモニ タ制御レジス タのビ ッ ト 割り当て ............................................ 10- 11 図 11- 1 システムデバッ グ アクセスのブロ ッ ク図 ..................................................................................... 11- 4 図 11- 2 フ ラ ッ シュパッ チ制御レジス タのビ ッ ト 割り当て ................................................................... 11- 9 図 11- 3 フ ラ ッ シュパッ チ リ マ ッ プレジス タのビ ッ ト 割り当て ..................................................... 11- 11 図 11- 4 フ ラ ッ シュパッ チ コ ンパレータ レジス タのビ ッ ト 割り当て ........................................... 11- 12 図 11- 5 DWT 制御レジス タのビ ッ ト 割り当て ............................................................................................. 11- 17 図 11- 6 DWT CPI カウン ト レジス タのビ ッ ト 割り当て .......................................................................... 11- 22 図 11- 7 DWT 例外オーバヘ ッ ド カウン ト レジス タのビ ッ ト 割り当て .......................................... 11- 22 図 11- 8 DWT ス リープカウン ト レジス タのビ ッ ト 割り当て .............................................................. 11- 23 図 11- 9 DWT LSU カウン ト レジス タのビ ッ ト 割り当て ......................................................................... 11- 24 図 11- 10 DWT フ ォールド カウン ト レジス タのビ ッ ト 割り当て ......................................................... 11- 25 図 11- 11 DWT マスク レジス タ 0 ~ 3 のビ ッ ト 割り当て ......................................................................... 11- 27 図 11- 12 DWT 機能レジス タ 0 ~ 3 のビ ッ ト 割り当て .............................................................................. 11- 29 図 11- 13 ITM ト レース特権レジス タのビ ッ ト 割り当て ........................................................................... 11- 37 図 11- 14 ITM ト レース制御レジス タのビ ッ ト 割り当て ........................................................................... 11- 39

xvi Copyright © 2005-2008 ARM Limited. All rights reserved. ARM DDI 0337G

非公開 アクセス制限な し

Page 17: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

図リ ス ト

図 11- 15 ITM 統合書き込みレジス タのビ ッ ト 割り当て ............................................................................ 11- 40 図 11- 16 ITM 統合読み出し レジス タのビ ッ ト 割り当て ............................................................................ 11- 41 図 11- 17 ITM 統合モー ド制御レジス タのビ ッ ト 割り当て ....................................................................... 11- 42 図 11- 18 ITM ロ ッ クステータ ス レジス タのビ ッ ト 割り当て ................................................................ 11- 43 図 11- 19 AHB-AP 制御およびステータ スワー ド レジス タ ..................................................................... 11- 46 図 11- 20 AHB-AP ID レジス タ ................................................................................................................................. 11- 50 図 12- 1 ICode/DCode マルチプレ クサ ................................................................................................................ 12- 9 図 14- 1 ETM のブロ ッ ク図 ....................................................................................................................................... 14- 3 図 14- 2 例外からの復帰を示すパケ ッ ト のエン コー ド ........................................................................... 14- 12 図 14- 3 分岐パケ ッ ト の例外のエン コー ド .................................................................................................... 14- 15 図 15- 1 条件付き後方分岐が行われなかった場合 ....................................................................................... 15- 8 図 15- 2 条件付き後方分岐が行われた場合 ...................................................................................................... 15- 9 図 15- 3 条件付き前方分岐が行われなかった場合 ....................................................................................... 15- 9 図 15- 4 条件付き前方分岐が行われた場合 ...................................................................................................... 15- 9 図 15- 5 パイプ ラ イ ンがス ト ールし ない場合の無条件分岐 ................................................................. 15- 10 図 15- 6 パイプ ラ イ ンがス ト ールし た場合の無条件分岐 ...................................................................... 15- 10 図 15- 7 実行段での無条件分岐、 飛び先がアラ イ ン ド な命令 ............................................................ 15- 11 図 15- 8 実行段での無条件分岐、 飛び先がアンアラ イ ン ド な命令 .................................................. 15- 11 図 15- 9 オペコー ド シーケンスの例 .................................................................................................................. 15- 13 図 17- 1 TPUI のブロ ッ ク図 (ETM をサポー ト し ない構成) ................................................................... 17- 3 図 17- 2 TPUI のブロ ッ ク図 (ETM をサポー ト する構成) ........................................................................ 17- 4 図 17- 3 サポー ト される同期化ポー ト サイズ レジス タのビ ッ ト 割り当て .................................. 17- 11 図 17- 4 非同期ク ロ ッ ク プ リ スケーラ レジス タのビ ッ ト 割り当て ................................................. 17- 12 図 17- 5 選択ピンプロ ト コル レジス タのビ ッ ト 割り当て ..................................................................... 17- 13 図 17- 6 フ ォーマ ッ タおよびフ ラ ッ シュステータ ス レジス タのビ ッ ト 割り当て ................... 17- 14 図 17- 7 フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タのビ ッ ト 割り当て .................................... 17- 15 図 17- 8 統合テス ト レジス タ - ITATBCTR2 のビ ッ ト 割り当て .......................................................... 17- 17 図 17- 9 統合テス ト レジス タ - ITATBCTR0 のビ ッ ト 割り当て .......................................................... 17- 18 図 17- 10 統合モー ド 制御レジス タのビ ッ ト 割り当て ................................................................................ 17- 19 図 17- 11 統合レジス タ : TRIGGER のビ ッ ト 割り当て ................................................................................ 17- 20 図 17- 12 統合レジス タ : FIFO データ 0 のビ ッ ト 割り当て ...................................................................... 17- 20 図 17- 13 統合レジス タ : FIFO データ 1 のビ ッ ト 割り当て ...................................................................... 17- 21 図 17- 14 TRACESWO 専用ピン ............................................................................................................................... 17- 24 図 17- 15 TRACEPORT と SWO の共用 ................................................................................................................ 17- 25 図 17- 16 JTAG-TDO と SWO の共用 .................................................................................................................... 17- 25

ARM DDI 0337G Copyright © 2005-2008 ARM Limited. All rights reserved. xvii

アクセス制限な し 非公開

Page 18: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

図リ ス ト

xviii Copyright © 2005-2008 ARM Limited. All rights reserved. ARM DDI 0337G

非公開 アクセス制限な し

Page 19: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

本章では、 Cortex-M3 テ ク ニカル リ フ ァ レ ン ス マニ ュ アル (TRM) について説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• 本書について p. xx

• ご意見 ・ ご質問 p. xxv

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. xix

アクセス制限な し 公開

Page 20: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

本書について

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

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

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

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

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

対象読者

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

本書の使用法

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

1 章 Introduction

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

2 章 Programmer’s Model

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

3 章 System Control

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

4 章 Memory Map

プロセ ッ サの メ モ リ マ ッ プおよびビ ッ ト バン ド機能について説明し ます。

5 章 Exceptions

プロセ ッ サの例外モデルについて説明し ます。

6 章 Clocking and Resets

プロセ ッ サの ク ロ ッ クおよび リ セ ッ ト について説明し ます。

xx Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 21: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

7 章 Power Management

プロセ ッ サの電力管理および省電力について説明し ます。

8 章 Nested Vectored Interrupt Controller

プロセ ッ サの割 り 込み処理およびその制御について説明し ます。

9 章 Memory Protection Unit

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

10 章 Core Debug

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

11 章 System Debug

プロセ ッ サのシステムデバッ グ コ ンポーネン ト について説明します。

12 章 Bus Interface

プロセ ッ サのバス イ ン タ フ ェースについて説明し ます。

13 章 Debug Port

プロセ ッ サのデバッ グポー ト 、 シ リ アルワ イヤ JTAG デバッ グポー ト (SWJ-DP)、 シ リ アルワ イヤ デバッ グポー ト (SW-DP) について説明し ます。

14 章 Embedded Trace Macrocell

プロセ ッ サのエンベデッ ド ト レース マ ク ロセル (ETM) について説明し ます。

15 章 Embedded Trace Macrocell Interface

プロセ ッ サの ETM イ ン タ フ ェースについて説明し ます。

16 章 AHB Trace Macrocell Interface

プロセ ッ サのア ド バン ス ト ハイパフ ォーマン ス バス (AHB) トレースマ ク ロセル イ ン タ フ ェースについて説明し ます。

17 章 Trace Port Interface Unit

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

18 章 Instruction Timing

プロセ ッサの命令のタ イ ミ ングおよびク ロ ッ クサイ クルについて説明し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. xxi

アクセス制限な し 公開

Page 22: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

19 章 AC Characteristics

プロセ ッ サの AC 特性について説明し ます。

付録 A Signal Descriptions

プロセ ッ サの信号の概要について説明し ます。

付録 B Revisions

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

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

表記規則

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

• 書体の一般的な規則

• タ イ ミ ング図 p. xxiii

• 信号 p. xxiii

書体の一般的な規則

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

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

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

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

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

monospace italic 特定の値で置き換え可能な引数を示し ています。

monospace サンプルコー ド以外で使用されている場合、 言語のキー

ワード を示し ています。

xxii Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 23: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

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

MRC p15, 0 <Rd>, <CRn>, <CRm>, <Opcode_2>

タ イ ミ ング図

タ イ ミ ング図の規則を表す記号は、 タ イ ミ ング図で使用される構成要素を示し ています。 この図と異な る意味で使用されている場合は、 その都度明記されています。 タ イ ミ ング図に明示されていないタ イ ミ ング情報については、推測で判断し ないで下さい。

影が付いたバス と信号の部分は定義されていないため、 バス と信号は、 その時点で影付きの領域内の任意の値を取 り 得ます。 実際のレベルは重要ではなく 、 通常の動作には影響し ません。

タ イ ミ ング図の規則を表す記号

信号

信号の表記規則は次の とお り です。

信号レベル アサー ト される信号レベルは、 その信号がア ク テ ィ ブHIGH かア ク テ ィ ブ LOW かに依存し ます。 「アサー ト された (asserted)」 と は、 次の状態を意味し ます。

• ア ク テ ィ ブ HIGH の信号に対し ては HIGH

• ア ク テ ィ ブ LOW の信号に対し ては LOW

小文字の n ア ク テ ィ ブ LOW 信号の信号名の 初または 後に付加されます。

クロック

HIGHからLOWへ

過渡

HIGH/LOWからHIGHへ

バスが安定状態

バスが高インピーダンスへ遷移

バスの変化

高インピーダンスから安定状態

のバスへ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. xxiii

アクセス制限な し 公開

Page 24: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

接頭文字 A グ ローバルなア ド バン ス ト エ ク ステンシブル イ ン タフ ェース (AXI) 信号を表し ます。

接頭文字 AR AXI の読み出し ア ド レ スチャネル信号を表し ます。

接頭文字 AW AXI の書き込みア ド レ スチャネル信号を表し ます。

接頭文字 B AXI の書き込み応答チャネル信号を表し ます。

接頭文字 C AXI の低電力イ ン タ フ ェース信号を表し ます。

接頭文字 H ア ド バン ス ト ハイパフ ォーマン スバス (AHB) 信号を表します。

接頭文字 P ア ド バン ス ト ペ リ フ ェ ラルバス (APB) 信号を表し ます。

接頭文字 R AXI の読み出しデータチャネル信号を表し ます。

接頭文字 W AXI の書き込みデータチャネル信号を表し ます。

参考資料

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

ARM の出版物は http://infocenter.arm.com で参照でき ます。

ARM の刊行物

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

• ARMv7-M Architecture Reference Manual (ARM DDI 0403)

• ARM AMBA® 3 AHB-Lite Protocol (v1.0) (ARM IHI 0033)

• ARM CoreSight ™ Components Technical Reference Manual (ARM DDI 0314)

• ARM Debug Interface v5, Architecture Specification (ARM IHI 0031)

• ARM Embedded Trace Macrocell Architecture Specification (ARM IHI 0014)

その他の刊行物

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

• IEEE Standard, Test Access Port and Boundary-Scan Architecture specification 1149.1-2001 (JTAG)

xxiv Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 25: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

ご意見 ・ ご質問

ARM では、 Cortex-M3 製品 と本書に関する ご意見等をお待ち し てお り ます。

製品に関するご意見

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

• 製品名

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

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

本書に関するご意見

本書に関する ご意見等がございま し た ら、 電子 メ ールに次の情報をご記入の上、 [email protected] までお寄せ下さい。

• 題名

• 資料番号

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

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

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

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. xxv

アクセス制限な し 公開

Page 26: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

序章

xxvi Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 27: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

1 章 はじめに

本章では、 プロセ ッ サおよび命令セ ッ ト について説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• プロセ ッ サについて p. 1- 2

• コ ンポーネン ト 、 階層、 実装 p. 1- 4

• 実行パイプラ イ ン ステージ p. 1- 12

• プ リ フ ェ ッ チユニ ッ ト p. 1- 14

• 分岐ターゲ ッ ト のフ ォ ワーデ ィ ング p. 1- 15

• ス ト アバッ フ ァ p. 1- 18

• 製品 リ ビジ ョ ン p. 1- 19

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 1

アクセス制限な し 公開

Page 28: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.1 プロセ ッサについて

こ のプロセ ッ サは、 少ないゲー ト 数、 短い割 り 込みレ イ テンシ、 および低コス ト のデバッ グを特徴とする低電力プロセ ッ サです。 高速な割 り 込み応答機能を要求する組み込み用途に向いています。 プロセ ッ サには、 ARMv7-Mアーキテ クチャが実装されています。

こ のプロセ ッ サには次の機能が組み込まれています。

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

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

— レジス タの う ち、 ス タ ッ ク ポ イ ン タ (SP) のみがバン ク切替え

— ハー ド ウ ェ ア除算命令の SDIV および UDIV(Thumb 32 ビ ッ ト 命令 )

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

— Thumb 状態 とデバッ グ状態

— 短い割 り 込みレ イ テンシのために、 中断可能で中断後から継続可能な複数転送 (LDM/STM)、 PUSH/POP

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

— ARMv6 BE8 ア ク セス または LE ア ク セスのサポー ト

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

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

— 外部割 り 込みは、 1 ~ 240 の間でサイ ズを構成可能

— 優先度は、 3 ~ 8 ビ ッ ト の間でサイ ズを構成可能

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

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

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

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

1- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 29: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

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

— 8 つの メ モ リ 領域

— サブ領域無効化 (SRD)(Sub Region Disable) によ る メ モ リ 領域の効率的な利用

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

• バス イ ン タ フ ェース

— ア ド バン ス ト ハイパフ ォーマン スバス ラ イ ト (AHB-Lite)。 ICodeバス、 Dcode バスおよびシステムバス イ ン タ フ ェース

— ア ド バン ス ト ペ リ フ ェ ラルバス (APB) イ ン タ フ ェースに基づ く 専用ペ リ フ ェ ラルバス (PPB)(Private Peripheral Bus)

— 不可分なビ ッ ト バン ド書き込み と読み出し を備えたビ ッ ト バン ドのサポー ト

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

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

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

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

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

— シ リ アルワ イ ヤ デバッ グポー ト (SW-DP)(Serial Wire Debug Port) および、 シ リ アルワ イ ヤ JTAG デバッ グポー ト (SWJ-DP)(Serial Wire JTAG Debug Port) の、 一方または両方によ るデバッ グア ク セス

— フ ラ ッ シュパッチおよびブレーク ポ イ ン ト (FPB)(Flash Patch and Breakpoint) ユニ ッ ト によ り 、 ブレーク ポ イ ン ト およびコードへのパッ チを実現

— データ ウ ォ ッチポイ ン ト および ト レース (DWT)(Data Watchpoint and Trace) ユニ ッ ト によ り 、 ウ ォ ッチポ イ ン ト 、 データ ト レース、およびシステムプロ フ ァ イ リ ングを実現

— 計装 ト レース マ ク ロセル (ITM)(Instrumentation Trace Macrocell) によ り 、 printf 方式のデバッ グをサポー ト

— ト レースポー ト イ ン タ フ ェースユニ ッ ト (TPIU) が、 ト レースポート アナラ イザ (TPA)(Trace Port Analyzer) へのブ リ ッ ジ と な り ます。

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

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 3

アクセス制限な し 公開

Page 30: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.2 コ ンポーネン ト 、 階層、 実装

こ のセ ク シ ョ ンでは、 プロセ ッ サのコ ンポーネン ト 、 階層、 実装について説明し ます。 また、 構成可能なオプシ ョ ンについて も説明し ます。 このセ クシ ョ ンは以下の項目から構成されています。

• プロセ ッ サコ ア p. 1- 5

• NVIC p. 1- 7

• バスマ ト リ ッ ク ス p. 1- 7

• FPB p. 1- 8

• DWT p. 1- 9

• ITM p. 1- 9

• MPU p. 1- 9

• ETM p. 1- 9

• AHB-AP p. 1- 10

• AHB ト レースマ ク ロセル イ ン タ フ ェース p. 1- 10

• TPIU p. 1- 10

• WIC p. 1- 10

• SW/SWJ-DP p. 1- 11

• 割 り 込み p. 1- 11

• 監視 p. 1- 11

• ROM テーブル p. 1- 11

プロセ ッ サの構造を、 図 1- 1 p. 1- 5 に示し ます。

1- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 31: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

図 1- 1 Cortex-M3 のブロ ッ ク図

1.2.1 プロセ ッサコ ア

プロセ ッ サコ アには、 ARMv7-M アーキテ クチャが実装されています。 主な機能を次に示し ます。

• 16 ビ ッ ト と 32 ビ ッ ト のすべての基本 Thumb 命令で構成された Thumb命令セ ッ ト のサブセ ッ ト 。 詳細については、 『ARMv7-M アーキテ クチャ リ フ ァ レ ン スマニュ アル』 を参照し て下さい。

• ハーバー ド プロセ ッ サアーキテ クチャによ り 、 命令フ ェ ッ チ と、 データのロー ド / ス ト アが同時に実行でき ます。

• 3 ステージのパイプラ イ ン

• 単一サイ クルでの 32 ビ ッ ト 乗算

オプションETM

専用ペリフェラルバス

(内部)

オプションDWT

トリガ

オプションITM

オプションTPIU

CM3Core

命令 データ

オプションFPB

オプションMPU

オプションAHB-AP

NVIC

SW/SWJ-DP

バスマト

リックス

APBインタ

フェース

I-codeバス

D-codeバス

システムバス

オプションROM

テーブル

専用

ペリフェラル

バス(外部)

トレースポート

(シリアルワイヤ

またはマルチピン)

Cortex-M3

SW/JTAG

デバッグ

スリープ

割り込みINTNMI

SLEEPING

SLEEPDEEP

INTISR[239:0]

オプションWIC

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 5

アクセス制限な し 公開

Page 32: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

• ハー ド ウ ェ ア除算

• Thumb 状態 とデバッ グ状態

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

• 短いレ イ テンシの ISR 入退出

— プロセ ッ サ状態の保存と復元は、 命令フ ェ ッチのオーバーヘッ ドがあ り ません。 例外ベク タは、 状態保存 と同時に メ モ リ からフ ェ ッ チされる ため、 ISR エン ト リ が高速にな り ます。

— 後着割 り 込みのサポー ト

— 割 り 込みコ ン ト ローラ と密接に結合された イ ン タ フ ェースによ り 、後着割 り 込みの効率的な処理が可能

— 割 り 込みのテールチェ イ ンによ り 、 割 り 込み間での状態の保存と復元のオーバーヘッ ド な しで、 連続し て割 り 込み処理が可能になり ます。

• 中断可能で中断後から継続可能な複数転送 (LDM/STM)、 PUSH/POP

• ARMv6 互換の BE8 および LE ア ク セスのサポー ト

• ARMv6 互換のアンア ラ イ ン ド ア ク セスのサポー ト

レジス タ

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

• 13 個の汎用 32 ビ ッ ト レジス タ、 R0 ~ R12

• リ ン ク レジス タ (LR)

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

• プロ グ ラ ム ステータ ス レジス タ、 xPSR

• 2 つのバン ク を持つ SP レジス タ

メ モ リ イ ン タ フ ェース

こ のプロセ ッ サはハーバード イ ン タ フ ェース を採用し ている ため、 命令フ ェ ッ チ と、 データのロード / ス ト アが同時に可能です。 メ モ リ ア ク セスは次のユニ ッ ト によ り 制御されます。

• 独立し た ロード ス ト ア ユニ ッ ト (LSU)(Load Store Unit) があ り 、 ロードおよびス ト ア動作が算術論理演算ユニ ッ ト (ALU)(Arithmetic and Logic Unit) から分離されています。

1- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 33: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

• 3 エン ト リ のプ リ フ ェ ッチユニ ッ ト (PFU)(Prefetch Unit)。 1 回につき 1ワード がフ ェ ッチされます。 この 1 ワード と い う のは、 Thumb 命令が 2つか、 ワード ア ラ イ ン ド の Thumb 32 ビ ッ ト 命令が 1 つか、 ハーフ ワード ア ラ イ ン ド の Thumb 32 ビ ッ ト 命令の上位か下位半分のハーフ ワードが 1 つに加えて Thumb 命令 1 つか、 あ るいは (加え るのが Thumb 命令ではな く て) ハーフ ワード にア ラ イ ン された別の Thumb 32 ビ ッ ト 命令の下位か上位半分のハーフ ワード が 1 つかのいずれかです。 コ アからのすべてのフ ェ ッチア ド レ スはワード ア ラ イ ン ド です。 Thumb 32 ビ ッ ト命令がハーフ ワード ア ラ イ ンの場合、 その Thumb 32 ビ ッ ト 命令をフ ェ ッチするには 2 回のフ ェ ッ チが必要にな り ます。 しかし、 3 エン トリ のプ リ フ ェ ッチバッ フ ァ によ り 、 初にフ ェ ッチする Thumb 32 ビ ット 命令のハーフ ワード のみにス ト ールサイ クルが必要な こ と が保証されます。

1.2.2 NVIC

NVIC はプロセ ッ サ コ アに密接に結合されています。 これによ り 、 低レ イ テンシの例外処理を容易に行 う こ と ができ ます。 主な機能を次に示し ます。

• 1 ~ 240 の間で外部割込みの数を構成可能

• 3 ~ 8 ビ ッ ト の間で優先度のビ ッ ト 数を構成可能

• レベルによ る割 り 込みと パルスによ る割 り 込みをサポー ト

• 割 り 込みの動的な優先度再設定

• 優先度のグループ化

• 割 り 込みのテールチェ イ ンをサポー ト

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

NVIC については 8 章 Nested Vectored Interrupt Controller で詳し く 説明し ます。

1.2.3 バスマ ト リ ッ クス

バスマ ト リ ッ ク スは、 プロセ ッ サおよびデバッ グ イ ン タ フ ェース を外部バスに接続し ます。 バスマ ト リ ッ ク スは以下の外部バスへのイ ン タ フ ェースになり ます。

• ICode バス。 このバスはコード空間からの、 命令およびベク タのフ ェ ッチに使用されます。 これは、 32 ビ ッ ト AHB-Lite バスです。

• DCode バス。 このバスはデータのロード / ス ト アおよび、 コード 空間へのデバッ グア ク セスに使用されます。 これは、 32 ビ ッ ト AHB-Lite バスです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 7

アクセス制限な し 公開

Page 34: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

• システムバス。 このバスはシステム空間への、 命令およびベク タのフ ェ ッ チ、 データのロー ド / ス ト ア、 デバッ グア ク セスに使用されます。 これは、 32 ビ ッ ト AHB-Lite バスです。

• PPB。 このバスは PPB 空間への、 データのロード / ス ト アおよびデバッグア ク セスに使用されます。 これは、 32 ビ ッ ト APB (v3.0) バスです。

バスマ ト リ ッ ク スには次の制御機能も含まれています。

• アンア ラ イ ン ド ア ク セス。 バスマ ト リ ッ ク スはア ラ イ ン されていないプロセ ッ サア ク セス を、 ア ラ イ ン ド ア ク セスに変換し ます。

• ビ ッ ト バンデ ィ ング。 バスマ ト リ ッ ク スは、 ビ ッ ト バン ド エイ リ アスへのア ク セス を、 ビ ッ ト バン ド 領域へのア ク セスに変換し ます。 こ の際、次の処理が行われます。

— ビ ッ ト バン ド ロー ド用のビ ッ ト フ ィ ール ド 抽出

— ビ ッ ト バン ド ス ト アに対する不可分な読み出し - 変更 - 書き込み(atomic read-modify-write)

• ラ イ ト バッ フ ァ。 バスマ ト リ ッ ク スには、 バスのス ト ールをプロセッサコアから切り 離すため、 1 エン ト リ の書き込みバッ フ ァが含まれています。

バス イ ン タ フ ェースについては、 12 章 Bus Interface で説明し ます。

1.2.4 FPB

FPB を含める よ う に実装を構成する こ と ができ ます。 FPB はハード ウ ェ アブレーク ポ イ ン ト を実装し、 コー ド空間からのア ク セス をシステム空間にパッチし ます。 存在する場合は、 FPB を次のよ う に構成する こ と ができ ます。

• フ ラ ッ シ ュパッチに加えて、 命令 と リ テ ラルのマ ッチング用の 6 つの命令コ ンパレータ を含む。 これらのコ ンパレータは、 命令フ ェ ッ チを コード空間から システム空間に リ マ ッ プし た り 、 ハード ウ ェ アブレーク ポ イン ト を実行し ます。

• ブレーク ポ イ ン ト にしか使用でき ない 2 つのコ ンパレータ を含む。 これらのコ ンパレータは、 リ テ ラルア ク セス を コード空間から システム空間に リ マ ッ プする こ と ができ ます。

FPB については、 11 章 System Debug で説明し ます。

1- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 35: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.2.5 DWT

DWT を含める よ う に実装を構成する こ と ができ ます。 存在する場合は、 次のデバッ グ機能を組み込むよ う に DWT を構成する こ と ができ ます。

• ハード ウ ェ ア ウ ォ ッチポイ ン ト 、 ETM ト リ ガ、 PC サンプラのイベン トト リ ガ、 またはデータ ア ド レ ス サンプラのイベン ト ト リ ガ と し て構成する こ と ができ る 4 つのコ ンパレータ

• 複数のカ ウ ン タ または性能測定用のデータ一致イベン ト ト リ ガ

• 定義された間隔で PC サンプルを送信し た り 、 割 り 込みイベン ト 情報を送信する よ う に構成可能

DWT については、 11 章 System Debug で説明し ます。

1.2.6 ITM

ITM を含める よ う に実装を構成する こ と ができ ます。 ITM は、 アプ リ ケーシ ョ ンのイベン ト ト レースや printf 方式のデバッ グをサポー ト する、 アプ リケーシ ョ ン駆動型の ト レース ソースです。

ITM では、 次の ト レース情報ソースが提供されます。

• ソ フ ト ウ ェ ア ト レース。 ソ フ ト ウ ェ アは ITM ステ ィ ム ラ ス レジス タに直接書き込むこ と ができ ます。 これによ り 、 パケ ッ ト が送信されます。

• ハード ウ ェ ア ト レース。 パケ ッ ト は DWT によ り 生成され、 ITM によ り送信されます。

• タ イ ムス タ ンプ。 タ イ ム ス タ ンプはパケ ッ ト を基準と し て送信されます。

ITM については、 11 章 System Debug で説明し ます。

1.2.7 MPU

MPU を含むよ う に実装を構成し て メ モ リ 保護を行 う こ と ができ ます。 MPUはア ク セス許可および メ モ リ 属性をチェ ッ ク し ます。 8 つの領域が含まれおり 、 これに加えてバッ ク グ ラ ウ ン ド領域を設定する と、 デフ ォル ト の メ モ リマ ッ プ属性を設定でき ます。

MPU については、 9 章 Memory Protection Unit で説明し ます。

1.2.8 ETM

実装時に、 ETM を含める よ う にシステムを構成する こ と ができ ます。 これは、 命令 ト レースのみをサポー ト する低コ ス ト の ト レースマ ク ロセルです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 9

アクセス制限な し 公開

Page 36: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

ETM については、 14 章 Embedded Trace Macrocell で説明し ます。

1.2.9 AHB-AP

AHB-AP を含める よ う に実装を構成する こ と ができ ます。

AHB-AP については、 AHB-AP p. 11- 44 で説明し ます。

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

実装時に、 AHB ト レース マ ク ロセル (HTM)(AHB Trace Macrocell) イ ン タフ ェース を含める よ う にシステムを構成する こ と ができ ます。 実装時に このオプシ ョ ンを有効にし ない と、 必要な回路が含まれないため、 HTM イ ン タフ ェースは動作し ません。

1.2.11 TPIU

実装時に、 TPIU を含める よ う にシステムを構成する こ と ができ ます。 TPIUは、 ITM (と、 存在する場合は ETM) からの Cortex-M3 ト レースデータ と、チ ッ プ外の ト レースポー ト アナラ イザ と の間でブ リ ッ ジ と し て動作し ます。

TPIU の実装オプシ ョ ンは次の とお り です。

• ETM がシステムに存在する場合、 TPIU への二つの入力ポー ト は と もに存在し ます。 ETM が存在せず ITM が存在する場合は、 1 つのポー ト のみが使用され、 1 つの入力用 FIFO のゲー ト コ ス ト が節約されます。

• ARM TPIU ブロ ッ クは、 パー ト ナー独自の CoreSight ™に準拠し た TPIUと 置き換え る こ と ができ ます。

• 製品版のデバイ スでは、 TPIU が取 り 除かれている こ と があ り ます。

Note

TPIU が取 り 除かれている場合、 Cortex-M3 の ト レース機能は使用できません。

TPIU については、 17 章 Trace Port Interface Unit で説明し ます。

1.2.12 WIC

ウ ェーク ア ッ プ割 り 込みコ ン ト ローラ (WIC)(Wake-up Interrupt Controller) を含める よ う に実装を構成する こ と ができ ます。

WIC の機能については、 システム電力管理 p. 7- 3 で説明し ます。

1- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 37: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.2.13 SW/SWJ-DP

プロセ ッ サを構成し て、 SW-DP または SWJ-DP のデバッ グポー ト イ ン タフ ェース をプロセ ッ サに持たせる こ と ができ ます。 デバッ グポー ト は、 プロセ ッ サのレジス タ を含む、 システム中のすべてのレジス タおよび メ モ リ に対するデバッ グア ク セス を提供し ます。

SW/SWJ-DP の実装オプシ ョ ンを以下に示し ます。

• 実装は SW-DP または SWJ-DP のどち らかが含まれます。

• ARM SW-DP は、 パー ト ナー独自の CoreSight に準拠し た SW-DP と置き換え る こ と ができ ます。

• ARM SWJ-DP は、 パー ト ナー独自の CoreSight に準拠し た SWJ-DP と置き換え る こ と ができ ます。

• パー ト ナー独自のテス ト イ ン タ フ ェース を、 SW-DP または SWJ-DP と同時に使用する こ と ができ ます。

Note

デバッ グ機能が実装されていない場合は、 製品版のデバイ ス内にSW/SWJ-DP が存在し ない可能性があ り ます。

SW/SWJ-DP については、 13 章 Debug Port で説明し ます。

1.2.14 割り込み

実装時に、 外部割 り 込みの本数を 1 ~ 240 の間で構成する こ と ができ ます。また、 割 り 込み優先度のビ ッ ト 数を 3 ~ 8 ビ ッ ト の間で構成する こ と ができます。

1.2.15 監視

実装時に、 一部の内部信号を監視でき る よ う にシステムを構成する こ と ができ ます。 監視対象には、 レジス タバン ク ポー ト やパイプラ イ ンの実行ステージ内の命令が含まれます。

1.2.16 ROM テーブル

ROM テーブルは次の場合に、 ROM メ モ リ テーブル p. 4- 8 に記載された ものから変更されます。

• システムにデバッ グ コ ンポーネン ト が追加された場合

• 実装からすべてのデバッ グ機能が削除された場合

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 11

アクセス制限な し 公開

Page 38: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.3 実行パイプラ イ ンステージ

パイプラ イ ンは次のステージによ り 構成されます。

• フ ェ ッ チステージ

• デコード ステージ

• 実行ステージ

プロセ ッ サのパイプラ イ ン ステージ、 および各ステージで実行されるパイプラ イ ン処理について、 図 1- 2 に示し ます。

図 1- 2 Cortex-M3 のパイプ ラ イ ンステージ

フェッチ

命令デコード

レジスタ読み出し

Fe

アドレス生成

ユニット

分岐

シフト

ALUと

分岐

アドレス

フェーズ と

ライトバック

データ

フェーズ

ロード/ストア

分岐

WR乗算

除算

De Ex

LSU分岐結果

フォワード/ 投機できないALU分岐

LSU分岐結果

分岐フォワーディングと投機

1- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 39: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

パイプラ イ ン ステージの名前と機能は、 次の とお り です。

Fe 命令フ ェ ッ チで、 命令 メ モ リ からデータが入ってき ます。

De 命令デコード で、 フ ォ ワード されたレジス タポー ト を使用し たLSU ア ド レ スの生成、 および即値のオフセ ッ ト や リ ン ク レジスタ (LR) での分岐によ る フ ォ ワーデ ィ ング

Ex 命令実行で、 複数サイ クルのス ト ールがあ る単一パイプラ イ ン、AHB イ ン タ フ ェースへの LSU ア ド レ ス / データのパイプラ イ ン処理、 乗算 / 除算、 および分岐結果付き ALU

ALU 使用ペナルテ ィ の無いパイプラ イ ン化された 2 サイ クルの メ モ リ ア ク セス、 および間接ポイ ン タ用のア ド レ ス生成フ ォ ワーデ ィ ングがパイプラ イ ンの構造によ り 提供されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 13

アクセス制限な し 公開

Page 40: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.4 プ リ フ ェ ッ チユニ ッ ト

プ リ フ ェ ッチユニ ッ ト (PFU) は、 次の目的に使用されます。

• あ らかじめ命令をフ ェ ッチし、 PC 相対分岐命令を フ ォ ワード し ます。条件分岐の場合、 フ ェ ッチは投機的にな り ます。

• Thumb 32 ビ ッ ト 命令を検出し、 単一命令ワード と し て出力し ます。

• ベク タ ロー ド を実行し ます。

PFU は、 サイ クル毎に 1 ワード を供給可能な メ モ リ システムから命令をフ ェ ッ チし ます。 PFU は 3 ワード までのフ ェ ッ チを FIFO にバッ フ ァする こと ができ ます。 つま り 、 大 3 つの Thumb 32 ビ ッ ト 命令または 6 つのThumb 命令をバッ フ ァする こ と ができ ます。

PC + 即値の ALU 加算 と し て生成される分岐の大部分は、 実際には、 分岐オペコード のデコー ド フ ェーズ よ り 後に生成される こ と はあ り ません。 条件付きで実行される分岐の場合、 ア ド レ スは (バスのフ ェ ッチス ロ ッ ト を消費して) 投機的に出力されます。 そ し て、 (ALU から) フ ォ ワード された結果に基づき、 その分岐パスがフ ェ ッチキ ューを フ ラ ッ シュするか、 保存するかが決定されます。

短いサブルーチン復帰は、 BX LR の場合における フ ォ ワーデ ィ ングの動作を有効に利用する よ う に 適化されています。

1- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 41: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.5 分岐ターゲ ッ ト のフ ォワーデ ィ ング

オペコー ド が実行ステージに到達する よ り も少な く と も 1 サイ クル前に、 分岐の メ モ リ ト ラ ンザ ク シ ョ ンを出力する こ と で、 プロセ ッ サはあ る種の分岐タ イプを前も って出力し ます。 分岐は組み込みコ ン ト ローラのアプ リ ケーシ ョ ンにおいてかな り の部分を占めるので、 分岐フ ォ ワーデ ィ ングによ ってコ アのパフ ォーマン スが向上し ます。 影響があ る分岐は、 即値をオフセ ッ トとする PC 相対分岐、 または LR を ターゲ ッ ト レジス タ と し て使用する分岐です。 オペコード定義または IT ブロ ッ ク内にあ る こ と で、 フ ォ ワード される条件分岐については、 条件評価が内部ク リ テ ィ カルパスのため、 ア ド レ スが投機的に出力される必要があ り ます。

条件付きのオペコード において投機フ ェ ッチを し た場合、 分岐フ ォ ワーデ ィングは、 1 回のフ ェ ッチの機会を失います。 しかし、 3 エン ト リ のフ ェ ッチキ ュー、 16 ビ ッ ト と 32 ビ ッ ト オペコード の混在、 および 1 サイ クルの ALUによ って、 これを軽減する こ と ができ ます。 追加のペナルテ ィ は、 パイプライ ン ス ト ールの 1 サイ クルです。 悪のケースは、 3 つの 32 ビ ッ ト の単一ロード / ス ト アオペコード で、 その命令がワード ア ラ イ ン ド でな く 、 データウ ェ イ ト ステー ト のない場合です。 BRCHSTAT イ ン タ フ ェースが提供する情報は、 条件実行に対する フ ォ ワード された分岐、 条件分岐の場合は分岐方向、および先行する条件付きオペコード がその後成功し た場合には判定が立ち下が り にレジス タ出力されます。 BRCHSTAT の詳細については、 分岐ステータス イ ン タ フ ェース p. 15- 6 を参照し て下さい。

プ リ フ ェ ッチでレジス タ出力される ICODE を使ったコ アの性能は、 10% ほど遅いだけで、 分岐フ ォ ワーデ ィ ング イ ン タ フ ェース を持たないコ ア と事実上同じです。 分岐フ ォ ワーデ ィ ングは、 ア ド レ ス イ ン タ フ ェースでレジス タ出力される前の内部ア ド レ ス生成回路と見なすこ と ができ ます。 1 サイ クル早めの情報を利用でき る タ イ ミ ング余裕があれば、 メ モ リ コ ン ト ローラに対する柔軟性が向上し ます。 例えば、 0.13μm プロセスから さ らに 65nm プロセスの、よ り 低い MHz で消費電力を抑えなければな ら ないターゲ ッ ト 。 ほかには、 この早い時期のア ド レ スへのア クセスで、 システムへレジス タ出力される前に、メ モ リ コ ン ト ローラがルッ ク ア ップでき る と い う 柔軟性も得られます。

予測の失敗が発生するので、 分岐の投機はウ ェ イ ト ステー ト があ る よ う な メモ リ に対し てはコ ス ト が掛か り ます。 こ のオーバヘッ ド を避けるには、 コ ント ローラにおける規則と し て、 条件分岐は投機的にフ ェ ッ チせずレジス タ出力をする よ う にすれば、 サブルーチンのコールや復帰は予測失敗のペナルテ ィ な しで分岐フ ォ ワーデ ィ ングの利点を得る こ と ができ ます。 改良でき る点は、 後方へ戻る条件分岐のみを予測し て、 ループを高速化する こ と です。も う 1 つの選択肢 と し て、 ARM コ ンパイ ラでは、 ループの底部では後方へ無条件分岐し て、 ループの脱出の判定で前方への条件分岐を行な う よ う になっているので、 ループの開始でコ アがフ ェ ッチのキ ューを進めてお く と、 動作が良 く な り ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 15

アクセス制限な し 公開

Page 42: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

BRCHSTAT には、 次に実行段階に達するオペコード についての、 他の情報も含まれています。 BRCHSTAT がその ト ラ ンザク シ ョ ンに対応し ている フ ォワード された分岐 と違って、 BRCHSTAT はオペコード の実行 と い う 点ではどの ト ラ ンザク シ ョ ン と も関連のないひとつの ヒ ン ト であ り 、 複数サイ クルの間アサー ト される可能性があ り ます。 コ ン ト ローラは分岐がすぐに発生するこ と を知っているので、 この情報を使用し て、 追加のプ リ フ ェ ッチを抑制する こ と ができ ます。 これによ り 、 分岐先のターゲ ッ ト が実行段階で生成されて も。

以下のシナ リ オでは、 分岐フ ォ ワーデ ィ ング と BRCHSTAT 制御を使って、 自分の メ モ リ システムで 高の性能を実現する ための方法が示されています。シナ リ オでは、 理想的なハーバード アーキテ クチャの構成を前提と し ているので、 命令が ICODE から実行され、 リ テ ラルが (ICODE に統合された)DCODE から実行され、 そ し てス タ ッ ク / ヒ ープ / アプ リ ケーシ ョ ンのデータが SYSTEM から実行されます。

• 0 ウ ェ イ ト ステー ト

• 0 ウ ェ イ ト ステー ト 、 レジス タ出力のフ ェ ッチイ ン タ フ ェース (ICODE)

• 1 ウ ェ イ ト ステー ト のフ ラ ッ シ ュ メ モ リ

• 1 ウ ェ イ ト ステー ト のフ ラ ッ シ ュ メ モ リ 、 レジス タ出力される フ ェ ッ チイ ン タ フ ェース (ICODE)

• 2 ウ ェ イ ト ステー ト のフ ラ ッ シ ュ メ モ リ p. 1- 17

1.5.1 0 ウ ェ イ ト ステー ト

分岐予測によ り 、 それががない場合と比べて約 10% の向上が得られます。 そし て、 極端な場合を除いて、 プロセ ッ サは 100% 分岐予測のすべての恩恵を受けますが、 分岐の投機によ るペナルテ ィ はあ り ません。

1.5.2 0 ウ ェ イ ト ステー ト 、 レジス タ出力のフ ェ ッ チイ ン タ フ ェース (ICODE)

分岐フ ォ ワーデ ィ ングは、 ICODE イ ン タ フ ェースでのタ イ ミ ングがよ り 厳しく な り ます。 も し このバスがシステムの ク リ テ ィ カルパスの場合、 ICODE イン タ フ ェースがレジス タ出力されているか も しれません。 1 ウ ェ イ ト ステート が追加される こ と によ る約 25% のペナルテ ィ を避けるには、 単一エン ト リのプ リ フ ェ ッ チャ と し て機能する回路を追加する こ と ができ ます。

1.5.3 1 ウ ェ イ ト ステー ト のフ ラ ッ シュ メ モ リ

フ ラ ッ シ ュ メ モ リ へのウ ェ イ ト ステー ト の追加は、 どんなコ アでもパフ ォーマン スに影響し ます。 キ ャ ッ シュ を使用し て、 こ のペナルテ ィ を軽減する こと もでき ますが、 リ アルタ イ ム性の保証およびシ リ コ ン面積に大き な影響を及ぼし ます。 2 ラ イ ンのエン ト リ を持つキ ャ ッ シ ュ ラ イ ンのプ リ フ ェ ッチャによ り 、 少ないゲー ト を使用し て、 キ ャ ッ シュに匹敵するパフ ォーマン ス を

1- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 43: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

提供する こ と ができ ます。 例えば ARM7 ターゲ ッ ト の場合には、 32 ビ ッ ト 命令セ ッ ト が使用されているので、 128 ビ ッ ト が一般的なプ リ フ ェ ッ チ幅です。プロセ ッ サは、 16 ビ ッ ト と 32 ビ ッ ト の混在命令セ ッ ト であ る Thumb 32 ビ ット 命令の恩恵を受けます。 つま り 、 64 ビ ッ ト のプ リ フ ェ ッチ幅によ り 、 128ビ ッ ト イ ン タ フ ェース と ほぼ同等の恩恵を受ける こ と ができ ます。

1.5.4 1 ウ ェ イ ト ステー ト のフ ラ ッ シュ メ モ リ、 レジス タ出力される フ ェ ッ チイ ン タ フ ェース(ICODE)

ICODE イ ン タ フ ェース を レジス タ出力にする必要があ る場合、 予測 ミ スのコス ト をプ リ フ ェ ッ チコ ン ト ローラのス レーブ側のみに軽減する こ と ができ ます。 こ の場合も 0 ウ ェ イ ト ステー ト の場合と同様に、 コ アは ICODE イ ン タフ ェースでのフ ェ ッチキ ュー要求の機会を失います。 しかし、 後に続 く 条件付き実行のレジス タ出力された BRCHSTAT[3] ステータ スによ り 、 コ ン トローラのレジス タ出力されたシステム イ ン タ フ ェースでア イ ド ルサイ クルのよ う に見せて、 外部の予測 ミ ス をマス クする こ と ができ ます。

1.5.5 2 ウ ェ イ ト ステー ト のフ ラ ッ シュ メ モ リ

これは 1 ウ ェ イ ト ステー ト の場合と同じですが、 分岐に対するペナルテ ィ が大き く な り ます。 コ ンパイ ラ ツールが分岐のオーバヘッ ド を減ら し、 条件ループをハード ウ ェ アの都合の良いほ う にする度合いに応じ て、 コ ア と メ モリ システムの速度の ミ スマ ッチの影響は減 り ます。 128 ビ ッ ト のイ ン タフ ェースはこれらの点において優れています。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 17

アクセス制限な し 公開

Page 44: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.6 ス ト アバッ フ ァ

プロセ ッ サには、 2 つのス ト アバッ フ ァ が組み込まれています。

• 即値オフセ ッ ト を持つオペコード用の、 Cortex-M3 コ ア LSU のス ト アバッ フ ァ

• ウ ェ イ ト ステー ト およびアンア ラ イ ン ド の ト ラ ンザク シ ョ ン用の、 バスマ ト リ ッ ク スのス ト アバッ フ ァ

コ アのス ト アバッ フ ァ によ り 、 コ ンパイルされた コード によ く あ る STR rx,[ry,#imm] の場合が 適化されます。 つま り 、 次のオペコー ド がス ト アのデー

タ フ ェーズ と重なる こ と が可能なので、 パイプラ イ ンの観点から見る と、 オペコード を 1 サイ クルにする こ と ができ ます。

プロセ ッ サ内のバスマ ト リ ッ ク ス相互接続によ り 、 コ アのアンア ラ イ ン ド動作と ビ ッ ト バン ド が管理されます。 バスマ ト リ ッ ク スのス ト アバッ フ ァは、システムのウ ェ イ ト ステー ト の解消および複数の ト ラ ンザク シ ョ ンに分かれたアンア ラ イ ン ド ア ク セスに有用です。

バッ フ ァ可 と し てマーク された ト ラ ンザ ク シ ョ ンのみがス ト アバッ フ ァ を使用し ます。 ス タ ッ ク操作は本質的にバッ フ ァ不可なので、 どち らのバッ フ ァも使用し ません。

1- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 45: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.7 製品リ ビジ ョ ン

このセ ク シ ョ ンでは、 プロセ ッ サの リ リ ース ご と の機能の違いについて、 概要を説明し ます。

• r0p0 と r1p0 の間の機能面での相違点

• r1p0 と r1p1 の間の機能面での相違点 p. 1- 20

• r1p1 と r2p0 の機能面の相違点 p. 1- 21

1.7.1 r0p0 と r1p0 の間の機能面での相違点

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

• 構成可能なデータ値比較を DWT モジ ュールに追加。 DWT p. 11- 13 を参照し て下さい。

• DWT_FUNCTION へ MATCHED ビ ッ ト を追加。 DWT p. 11- 13 を参照して下さい。

• Cortex-M3 への入力と し て ETMFIFOFULL を追加。 ETM イ ン タ フ ェース p. A- 14 を参照し て下さい。

• Cortex-M3 への出力と し て ETMISTALL を追加。 ETM イ ン タ フ ェース p. A- 14 を参照し て下さい。

• ITM に SWVMode を追加。 SWVMode をサポー ト する ために、 TPIUACTVと TPIUBAUD を TPIU からの出力およびプロセ ッ サの入力 と し て追加。ITM p. 11- 33 を参照し て下さい。

• CPUID ベース レジス タのバ リ アン ト (VARIANT) フ ィ ール ド が Rev1 を示すよ う 変更。 NVIC レジス タの説明 p. 8- 7 を参照し て下さ い。

• Cortex-M3 Rev0 のビ ッ ト バン ド ア ク セスは、 BE8 モード では、 ア ク セスサイ ズがバイ ト の必要があ り ま し た。 Cortex-M3 Rev1 では、 BE8 のビ ット バン ド ア ク セスがどのア ク セスサイ ズで も機能する よ う に変更されまし た。

• すべての例外が 8 バイ ト のス タ ッ ク ア ラ イ メ ン ト を持つよ う に、STKALIGN と呼ばれる構成ビ ッ ト を追加。 NVIC レジス タの説明 p. 8- 7を参照し て下さい。

• 補助フ ォール ト ステータ ス レジス タ をア ド レ ス 0xE000ED3C に追加。 この

レジス タ を設定する ために、 AUXFAULT と呼ばれる 32 ビ ッ ト バスが追加されま し た。 NVIC レジス タの説明 p. 8- 7 を参照し て下さい。

• HTM サポー ト の追加。 16 章 AHB Trace Macrocell Interface を参照し て下さい。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 19

アクセス制限な し 公開

Page 46: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

• ICode と DCode のキ ャ ッ シ ュ可 と バッ フ ァ可の HPROT 値が、 恒久的にラ イ ト スルーに接続されま し た。 ICode バス イ ン タ フ ェース p. 12- 4 とDCode バス イ ン タ フ ェース p. 12- 6 を参照し て下さ い。

• IFLUSH と い う 名前の新しい入力が追加されま し た。 その他の命令 p. A- 4 を参照し て下さい。

• HMASTER ポー ト の追加。DCode イ ン タ フ ェース p. A- 9 と システムバス イ ン タ フ ェース p. A- 10 を参照し て下さい。

• SWJ-DP の追加。 これは、 JTAG-DP と SW-DP を結合させる標準的なCoreSight ™デバッ グポー ト です。DP について p. 13- 2 を参照して下さい。

• ア ド レ ス 0xE000101C に、 DWT_PCSR レジス タ を追加。 DWT p. 11- 13 を参

照し て下さい。

• DNOTITRANS と呼ばれる新しい入力を追加。 コード バスの統合 p. 12- 9を参照し て下さい。

• r0p0 リ リ ース までのエラーを修正。

1.7.2 r1p0 と r1p1 の間の機能面での相違点

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

• ウ ォ ッ チポ イ ン ト の生成用のデータ値一致が実装時に構成にな り ま した。 DWT p. 11- 13 を参照し て下さい。

• ETM にアーキテ クチャ ク ロ ッ ク ゲーテ ィ ングをオプシ ョ ンで実装するための定義を追加。 以前の リ リ ースでは、 ETM にはアーキテ クチャ クロ ッ ク ゲーテ ィ ングが常に存在し ていま し た。

• r0p0 および r1p0 では、 DAPCLKEN は静的な信号の必要があ り ま し た。こ の要件は r1p1 では取 り 除かれています。

• 現在の未完了の命令フ ェ ッ チが完了する までは、 SLEEPING 信号が抑制される よ う にな り ま し た。

• r1p0 リ リ ース までのエラーを修正。

1- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 47: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

1.7.3 r1p1 と r2p0 の機能面の相違点

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

• さ まざまなレベルのデバッ グサポー ト と ト レースサポー ト を選択する ための実装時オプシ ョ ンが追加されま し た。 これによ って、 以前のTIEOFF_FPBEN オプシ ョ ン と TIEOFF_TRCENA オプシ ョ ンが置き換えられま し た。

• プロセ ッ サ内部のすべてのレジス タ を リ セ ッ ト 可能な新しい実装オプシ ョ ン。

• アーキテ クチャ ク ロ ッ ク ゲー ト 機能の有無が、 1 つの実装オプシ ョ ンで制御でき る よ う にな り ま し た。

• マルチコ ア システムのデバッ グで使用する ための DBGRESTART 入力とDBGRESTARTED 出力が追加されま し た。 詳細については、 『ARMv7-Mアーキテ クチャ リ フ ァ レ ン スマニ ュ アル』 を参照し て下さい。

• SLEEPING の拡張を可能にする ための SLEEPHOLDREQn 入力 とSLEEPHOLDACKn が追加されま し た。 ス リ ープの延長 p. 7- 5 を参照して下さい。

• APB イ ン タ フ ェースが v2.0 から v3.0 にア ッ プグレード されま し た。 外部専用ペ リ フ ェ ラル イ ン タ フ ェース p. 12- 10 を参照し て下さ い。

• OBSERVATION 実装オプシ ョ ンが使用されている場合にコ ア内部の一部の状態の監視を可能にする INTERNALSTATE と い う 名前の新しい出力信号が追加されま し た。

• 以下の目的のために新機能を無効にする ビ ッ ト を含む補助制御レジス タが追加されま し た。

— 複数ロー ド / ス ト ア、 除算、 および乗算の割 り 込みの禁止

— IT フ ォールデ ィ ングの禁止

— デフ ォル ト の メ モ リ マ ッ プ ア ク セスのための Cortex-M3 内のラ イト バッ フ ァ の無効化

補助制御レジス タの詳細については、 補助制御レジス タ p. 8- 8 を参照して下さい。

• ア ド レ スの 0xE000ED14 における構成制御レジス タ内の STKALIGN ビ ッ ト

の リ セ ッ ト 値が反転されま し た。 現在の リ セ ッ ト 値は 1 で、 ス タ ッ ク フレームがデフ ォル ト で 8 バイ ト にア ラ イ ン される こ と を意味し ます。 構成制御レジス タ p. 8- 28

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 1- 21

アクセス制限な し 公開

Page 48: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

はじめに

• ス リ ープ中も常に ク ロ ッ ク が供給される領域内の回路を 小化する ためにウ ェーク ア ッ プ割 り 込みコ ン ト ローラが追加されま し た。 詳細については、 ウ ェーク ア ッ プ割 り 込みコ ン ト ローラの使用 p. 7- 6 を参照し て下さい。

• 必要に応じ て、 デバッ ガが AHB ト ラ ンザ ク シ ョ ンを コ アデータ側 と してマーク し ないよ う にする ために FIXHMASTERTYPE ピンが追加されまし た。

• r1p1 リ リ ース までのエラーを修正。

1- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 49: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

2 章 プログラマモデル

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

• プロ グ ラ マモデルについて p. 2- 2

• 特権ア ク セスおよびユーザア ク セス p. 2- 3

• レジス タ p. 2- 4

• データ タ イプ p. 2- 10

• メ モ リ フ ォーマ ッ ト p. 2- 11

• 命令セ ッ ト の概要 p. 2- 13

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 1

アクセス制限な し 公開

Page 50: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

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

プロセ ッ サには、 ARMv7-M アーキテ クチャが実装されています。 これには、すべての 16 ビ ッ ト Thumb 命令 と基本 32 ビ ッ ト Thumb 命令が含まれます。こ のプロセ ッ サは、 ARM 命令を実行する こ と はでき ません。 ARMv7-M Thumb 命令の詳細については、 『ARMv7-M アーキテ クチャ リ フ ァ レ ン スマニ ュ アル』 を参照し て下さい。

2.1.1 動作モー ド

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

• ス レ ッ ド モード は リ セ ッ ト で開始され、 例外復帰の結果と し て入る こ とができ ます。 ス レ ッ ド モード では、 特権コード と ユーザ (非特権) コード の両方が実行でき ます。

• ハン ド ラモード には、 例外の結果 と し て入 り ます。 ハン ド ラモード では、 すべてのコー ド が特権コード です。

2.1.2 動作状態

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

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

• デバッ グ状態。 これは、 デバッ グホール ト 中の状態です。

2- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 51: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

2.2 特権アクセスおよびユーザアクセス

コード は、 特権または非特権で実行でき ます。 非特権実行の場合は、 一部のリ ソースへのア ク セスが制限されるか排除されます。 特権実行の場合は、 すべての リ ソースにア ク セスでき ます。 ハン ド ラモード は常に特権です。 スレ ッ ド モード は、 特権または非特権が可能です。

ス レ ッ ド モード は リ セ ッ ト によ り 特権にな り ますが、 MSR 命令を使用し てCONTROL[0] ビ ッ ト を ク リ アする こ と によ り 、 ユーザすなわち非特権に変更する こ と ができ ます。 ユーザでのア ク セスによ り 、 次の こ と が防止されます。

• FAULTMASK と PRIMASK をセ ッ ト する CPS などの一部の命令の使用

• システム制御空間 (SCS) での大部分のレジス タへのア ク セス

ス レ ッ ド モード が特権からユーザに変更される と、 ユーザから特権に戻すこと はでき ません。 ハン ド ラのみが、 ス レ ッ ド モード を特権に変更でき ます。ハン ド ラモード は常に特権です。

2.2.1 メ イ ンス タ ッ クおよびプロセスス タ ッ ク

リ セ ッ ト によ り 、 すべてのコード は メ イ ン ス タ ッ ク を使用し ます。 SVC などの例外ハン ド ラは、 ハン ド ラ退出時に使用する EXC_RETURN を変更する こ とによ り 、 ス レ ッ ド モード で使用されている ス タ ッ ク を メ イ ン ス タ ッ ク からプロセス ス タ ッ クに変更する こ と ができ ます。 すべての例外は メ イ ン ス タ ッ クを継続し て使用し ます。 ス タ ッ ク ポ イ ン タ r13 は、 SP_main と SP_process と の間で切 り 替わるバン ク レジス タです。 プロセス ス タ ッ ク または メ イ ン ス タ ックのいずれか一方のス タ ッ クのみが、 r13 を使用し て常に可視です。

ス レ ッ ド モード では、 MSR 命令を使用し て CONTROL[1] に書き込むこ と により 、 メ イ ン ス タ ッ ク からプロセス ス タ ッ クに切 り 替えが可能であ り 、 さ らにハン ド ラモード から退出時に EXC_RETURN 値を使用し て選択も可能です。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 3

アクセス制限な し 公開

Page 52: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

2.3 レジス タ

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

• 汎用レジス タは 13 個で、 r0 ~ r12

• ス タ ッ ク ポ イ ン タは、 バン ク になっている レジス タのエイ リ アスで、 実体は SP_process および SP_main

• リ ン ク レジス タ、 r14

• プロ グ ラ ムカ ウ ン タ、 r15

• 1 つのプロ グ ラ ム ステータ ス レジス タ、 xPSR

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

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

2.3.1 汎用レジス タ

汎用レジス タ r0 ~ r12 には、 アーキテ クチャで定義された特別な使用方法はあ り ません。 汎用レジス タ を指定する大部分の命令は、 r0 ~ r12 を使用できます。

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

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

プログラムステータスレジスタ

r13 (SP)r14 (LR)r15 (PC)

r5r6r7

r0r1

r3r4

r2

r10r11r12

r8r9

下位レジスタ

上位レジスタ

SP_mainSP_process

xPSR

2- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 53: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

レジス タ 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 を汎用レジス タ と して使用でき ます。

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

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

2.3.2 専用プログラムステータ ス レジス タ (xPSR)

xPSR に関し て、 システム レベルのプロセ ッ サステータ スは、 次の 3 つのカテゴ リ に分け られます。

• アプ リ ケーシ ョ ン PSR

• 割 り 込み PSR p. 2- 6

• 実行 PSR p. 2- 7

これらは、 個別のレジス タ、 3 つの う ちの任意の 2 つの組み合わせ、 または 3つすべての組み合わせと し て、 ステータ スから レジス タへの移動 (MRS) 命令および MSR 命令を使用し てア ク セスでき ます。

アプ リ ケーシ ョ ン PSR

アプ リ ケーシ ョ ン PSR(APSR) には、 条件コー ド フ ラ グが含まれています。 例外処理に入る前に、 プロセ ッ サがス タ ッ ク上に条件コード フ ラ グを保存し ます。 MSR(2) および MRS(2) 命令を使用し て APSR にア ク セスでき ます。

APSR のビ ッ ト 割 り 当てを、 図 2- 2 p. 2- 6 に示し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 5

アクセス制限な し 公開

Page 54: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

図 2- 2 APSR のビ ッ ト 割り当て

APSR のビ ッ ト 割 り 当ての説明を、 テーブル 2- 1 に示し ます。

割り込み PSR

割 り 込み PSR (IPSR) には、 現在ア ク テ ィ ブになっている例外の割 り 込み処理ルーチン (ISR) 番号が含まれています。

IPSR のビ ッ ト 割 り 当てを、 図 2- 2 に示し ます。

31 30 29 28 27

N Z C V

0

予約Q

26

テーブル 2- 1 APSR のビ ッ ト 割り当て

フ ィ ールド 名前 定義

[31] N 負または、 よ り 小さいフ ラ グ

1 = 結果が負または、 よ り 小さい

0 = 結果が正または、 よ り 大きい

[30] Z ゼロ フ ラ グ

1 = 結果が 0

0 = 結果が 0 でない

[29] C キ ャ リ ー / ボローフ ラ グ

1 = キ ャ リ ーまたはボロー

0 = キ ャ リ ーおよびボローな し

[28] V オーバフ ローフ ラ グ

1 = オーバフ ロー

0 = オーバフ ローな し

[27] Q ステ ィ ッ キー飽和フ ラ グ

[26:0] - 予約

2- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 55: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

図 2- 3 IPSR のビ ッ ト 割り当て

IPSR のビ ッ ト 割 り 当ての説明を、 テーブル 2- 2 に示し ます。

実行 PSR

実行 PSR (EPSR) には、 次の重複する 2 つのフ ィ ール ド が含まれています。

• 割 り 込みされた複数ロード および複数ス ト ア命令用の中断可能で中断後から継続可能な命令 (ICI) フ ィ ール ド

• If-Then (IT) 命令用の実行状態フ ィ ール ド、 および Thumb 状態ビ ッ ト(T-bit)

中断可能で中断後から継続可能な命令フ ィ ールド

複数ロー ド (LDM) 操作および複数ス ト ア (STM) 操作は割 り 込みで中断可能です。 EPSR の ICI フ ィ ール ド には、 中断が発生し た箇所から複数ロード または複数ス ト アを継続する ために必要な情報が保持されています。

31 0

予約 ISR NUMBER

89

テーブル 2- 2 IPSR のビ ッ ト 割り当て

フ ィ ールド 名前 定義

[31:9] - 予約

[8:0] ISR NUMBER 横取 り される例外の番号

ベース レベル = 0

NMI = 2

SVCall = 11

INTISR[0] = 16

INTISR[1] = 17

.

.

.

INTISR[15] = 31

.

.

.

INTISR[239] = 255

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 7

アクセス制限な し 公開

Page 56: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

If-then 状態フ ィ ールド

EPSR の IT フ ィールドには、 If-Then 命令用の実行状態ビ ッ ト が含まれています。

Note

ICI フ ィ ール ド と IT フ ィ ール ド は重複し ている ため、 If-Then ブロ ッ ク内の複数ロード または複数ス ト アは中断継続可能ではあ り ません。

EPSR のビ ッ ト 割 り 当てを、 図 2- 4 に示し ます。

図 2- 4 実行プログラム ステータ スレジス タ

EPSR には直接ア ク セスでき ません。 EPSR を変更でき るのは、 次の 2 つのイベン ト です。

• LDM または STM 命令中に発生する割 り 込み

• If-Then 命令の実行

EPSR のビ ッ ト 割 り 当ての説明を、 テーブル 2- 3 に示し ます。

31 0

予約 予約

27 26 25 24 16 15 10 9

予約ICI/IT ICI/IT

23

T

テーブル 2- 3 EPSR のビ ッ ト の機能

フ ィ ールド 名前 定義

[31:27] - 予約

[26:25], [15:10]

ICI 中断可能で中断後から継続可能な命令ビ ッ ト 。 LDM または STM 転送中に割 り 込みが発生する と、 複数転送は一時的に中止されます。 EPSR はビ ッ ト [15:12] を使用し て、 複数転送のオペラ ン ド になっている レジス タの次の番号を記憶し ます。割 り 込み処理の後、 プロセ ッサは [15:12] によ って示される レジス タに復帰し て複数転送を再開し ます。

[26:25], [15:10]

IT If-Then ビ ッ ト 。 これらは If-Then 命令の実行状態ビ ッ ト です。 こ こには、If-Then ブロ ッ ク内の命令数および実行条件が含まれています。

[24] T T ビ ッ ト は、 書き込まれた PC のビ ッ ト [0] が 0 であ る イ ン タ ワーキング命令を使用し て ク リ アする こ と ができ ます。 ス タ ッ ク された T ビ ッ ト が 0 であ る例外のス タ ッ ク から復元する こ と によ って も ク リ アでき ます。

T ビ ッ ト がク リ アされている間に命令を実行する と、 INVSTATE 例外が発生し ます。

[23:16] - 予約

[9:0] - 予約

2- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 57: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

LDM および STM 転送中のベースレジス タ更新

次のよ う な場合に、 LDM または STM によ り ベース レジス タが更新されます。

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

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

次のよ う な場合は、 LDM/STM は継続されずに始めから再開されます。

• LDM/STM でフ ォール ト が発生し た場合

• LDM/STM が IT の内部にあ る場合

LDM がベースのロード を完了し た後で も、 転送はベースのロード前の状態から継続されます。

xPSR ビ ッ ト の保存

例外処理が開始される と、 プロセ ッ サによ り 3 つのステータ ス レジス タ を結合し た情報がス タ ッ クに保存されます。 ス タ ッ ク された xPSR には、 ス タ ックが 8 バイ ト ア ラ イ ン されていたかど う かや、 構成制御レジス タ内のSTKALIGN の値に依存し ないかど う かに関する情報も含まれます。 こ の情報は、 ス タ ッ ク上の xPSR のビ ッ ト [9] に保存されます。 ス タ ッ ク が 8 バイ ト アラ イ ン されている場合の値は 1 です。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 9

アクセス制限な し 公開

Page 58: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

2.4 データ タ イプ

プロセ ッ サは次のデータ タ イプをサポー ト し ています。

• 32 ビ ッ ト ワード

• 16 ビ ッ ト ハーフ ワード

• 8 ビ ッ ト バイ ト

Note

メ モ リ システムは、 すべてのデータ タ イプをサポー ト する必要があ り ます。特に、 システムはワード内で隣接するバイ ト を破損し ないよ う に、 ワード より 小さい書き込みをサポー ト する必要があ り ます。

2- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 59: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

2.5 メ モ リ フ ォーマ ッ ト

プロセ ッ サは メ モ リ を、 線形に配列されていて 0 から昇順に番号が付け られたバイ ト の集合 と し て参照し ます。 例えば、 次の とお り です。

• バイ ト 0 ~ 3 は 初にス ト ア される ワード です。

• バイ ト 4 ~ 7 は 2 番目にス ト ア される ワー ド です。

プロセ ッ サは、 データには、 リ ト ルエンデ ィ アン形式またはビ ッ グエンデ ィアン形式で メ モ リ 上のワード にア ク セスでき ます。 コード には常時 リ ト ルエンデ ィ アンでア ク セス し ます。

Note

ARM プロセ ッ サでは、 リ ト ルエンデ ィ アンがデフ ォル ト の メ モ リ フ ォーマ ット です。

リ ト ルエンデ ィ アン形式では、 ワード内の も下のア ド レ ス を持つバイ ト はそのワー ド の 下位のバイ ト です。 ワード内の も上のア ド レ ス を持つバイト は 上位です。 メ モ リ システムのア ド レ ス 0 のバイ ト は、 データ線の 7 ~0 に接続されます。

ビ ッ グエンデ ィ アン形式では、 ワード内の も下のア ド レ ス を持つバイ ト はそのワー ド の 上位のバイ ト です。 ワード内の も上のア ド レ ス を持つバイト は 下位です。 メ モ リ システムのア ド レ ス 0 のバイ ト は、 データ線の 31 ~24 に接続されます。

図 2- 5 p. 2- 12 に、 リ ト ルエンデ ィ アンの メ モ リ フ ォーマ ッ ト と ビ ッ グエンデ ィ アンの メ モ リ フ ォーマ ッ ト と の違いを示し ます。

プロセ ッ サには構成設定ピン BIGEND があ り 、 それを使用する と リ ト ルエンデ ィ アン または BE-8 のビ ッ グエンデ ィ アン形式のいずれかが選択でき ます。この構成設定ピ ンの状態は、 リ セ ッ ト 時に取 り 込まれます。 リ セ ッ ト の後ではエンデ ィ アンを変更でき ません。

Note

• システム制御空間 (SCS) へのア ク セスは常時 リ ト ルエンデ ィ アンです。

• リ セ ッ ト 以外でエンデ ィ アンを変更し よ う と し て も無視されます。

• 専用ペ リ フ ェ ラルバス (PPB) 空間は BIGEND の設定に関係な く リ ト ルエンデ ィ アンです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 11

アクセス制限な し 公開

Page 60: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

図 2- 5 リ ト ルエンデ ィ アンおよびビ ッ グエンデ ィ アンのメ モ リ フ ォーマ ッ ト

アドレスEのハーフワード0 アドレスCのハーフワード1

アドレスAのハーフワード0 アドレス8のハーフワード1

アドレス6のハーフワード0 アドレス4のハーフワード1

アドレス2のハーフワード0 アドレス0のハーフワード1

ビッグエンディアンのデータフォーマット

31 24 23 16 15 8 7 0

アドレス0のワードアドレス0のバイト3

アドレス1のバイト2

アドレス2のバイト1

アドレス3のバイト0

アドレス4のワードアドレス4のバイト3

アドレス5のバイト2

アドレス6のバイト1

アドレス7のバイト0

アドレス8のワードアドレス8のバイト3

アドレス9のバイト2

アドレスAのバイト1

アドレスBのバイト0

アドレスCのワードアドレスCのバイト3

アドレスDのバイト2

アドレスEのバイト1

アドレスFのバイト0

アドレスEのハーフワード1 アドレスCのハーフワード0

アドレスAのハーフワード1 アドレス8のハーフワード0

アドレス6のハーフワード1 アドレス4のハーフワード0

アドレス2のハーフワード1 アドレス0のハーフワード0

リトルエンディアンのデータフォーマット

31 24 23 16 15 8 7 0

アドレス0のワードアドレス0のバイト0

アドレス1のバイト1

アドレス2のバイト2

アドレス3のバイト3

アドレス4のワードアドレス4のバイト0

アドレス5のバイト1

アドレス6のバイト2

アドレス7のバイト3

アドレス8のワードアドレス8のバイト0

アドレス9のバイト1

アドレスAのバイト2

アドレスBのバイト3

アドレスCのワードアドレスCのバイト0

アドレスDのバイト1

アドレスEのバイト2

アドレスFのバイト3

2- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 61: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

2.6 命令セ ッ ト の概要

このセ ク シ ョ ンでは、 次の内容について説明し ます。

• プロセ ッ サの 16 ビ ッ ト 命令の概要

• プロセ ッ サの 32 ビ ッ ト 命令の概要

Cortex-M3 の 16 ビ ッ ト 命令の一覧を、 テーブル 2- 4 に示し ます。

テーブル 2- 4 Cortex-M3 の 16 ビ ッ ト 命令の概要

操作 アセンブラ

レジス タの値と C フ ラ グを レジス タの値に加算 ADC <Rd>, <Rm>

3 ビ ッ ト 即値をレジス タに加算 ADD <Rd>, <Rn>, #<immed_3>

8 ビ ッ ト 即値をレジス タに加算 ADD <Rd>, #<immed_8>

下位レジス タの値を下位レジス タの値に加算 ADD <Rd>, <Rn>, <Rm>

上位レジス タの値を下位または上位レジス タの値に加算 ADD <Rd>, <Rm>

PC 相対 4 × (8 ビ ッ ト 即値) でレジス タに加算 ADD <Rd>, PC, #<immed_8> * 4

SP 相対 4 × (8 ビ ッ ト 即値) でレジス タに加算 ADD <Rd>, SP, #<immed_8> * 4

4 × (7 ビ ッ ト 即値) を SP に加算 ADD SP, #<immed_7> * 4

レジス タの値をビ ッ ト 単位論理積 AND <Rd>, <Rm>

即値の数値によ り 算術右シフ ト ASR <Rd>, <Rm>, #<immed_5>

レジス タの数値によ り 算術右シフ ト ASR <Rd>, <Rs>

条件付き分岐 B<cond> <target address>

無条件分岐 B <target_address>

ビ ッ ト ク リ ア BIC <Rd>, <Rm>

ソ フ ト ウ ェアブレーク ポイ ン ト BKPT <immed_8>

リ ン ク付き分岐 BL <Rm>

リ ン ク付き分岐 と状態遷移 BLX <Rm>

分岐と状態遷移 BX <Rm>

比較し て非 0 で分岐 CBNZ <Rn>,<label>

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 13

アクセス制限な し 公開

Page 62: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

比較し て 0 で分岐 CBZ <Rn>,<label>

レジス タ値の 2 の補数 (負数、 negation) を別のレジス タの値と比較 CMN <Rn>, <Rm>

8 ビ ッ ト 即値と比較 CMP <Rn>, #<immed_8>

レジス タ と比較 CMP <Rn>, <Rm>

上位レジス タ を下位または上位レジス タ と比較 CMP <Rn>, <Rm>

プロセ ッ サ状態変更 CPS <effect>, <iflags>

上位または下位レジス タの値を別の上位または下位レジス タにコ ピー CPY <Rd> <Rm>

レジス タの値をビ ッ ト 単位で排他的論理和 EOR <Rd>, <Rm>

次の命令を条件付け

次の 2 つの命令を条件付け

次の 3 つの命令を条件付け

次の 4 つの命令を条件付け

IT <cond>

IT<x> <cond>

IT<x><y> <cond>

IT<x><y><z> <cond>

複数ワード を連続する メ モ リ から ロード LDMIA <Rn>!, <registers>

ベース レジス タのア ド レ ス + 5 ビ ッ ト 即値オフセ ッ ト の メ モ リ から ワード をロード

LDR <Rd>, [<Rn>, #<immed_5> * 4]

ベース レジス タのア ド レ ス + レジス タオフセ ッ ト の メ モ リ から ワード を ロード LDR <Rd>, [<Rn>, <Rm>]

PC ア ド レ ス + 8 ビ ッ ト 即値オフセ ッ ト の メ モ リ から ワード を ロード LDR <Rd>, [PC, #<immed_8> * 4]

SP ア ド レ ス + 8 ビ ッ ト 即値オフセ ッ ト の メ モ リ から ワード を ロード LDR, <Rd>, [SP, #<immed_8> * 4]

レジス タ ア ド レ ス + 5 ビ ッ ト 即値オフセ ッ ト の メ モ リ からバイ ト [7:0] を ロード LDRB <Rd>, [<Rn>, #<immed_5>]

レジス タ ア ド レ ス + レジス タオフセ ッ ト の メ モ リ からバイ ト [7:0] を ロード LDRB <Rd>, [<Rn>, <Rm>]

レジス タ ア ド レ ス + 5 ビ ッ ト 即値オフセ ッ ト の メ モ リ からハーフ ワード [15:0] を ロード

LDRH <Rd>, [<Rn>, #<immed_5> * 2]

レジス タ ア ド レ ス + レジス タオフセ ッ ト の メ モ リ からハーフ ワード [15:0] をロード

LDRH <Rd>, [<Rn>, <Rm>]

レジス タ ア ド レ ス + レジス タオフセ ッ ト の メ モ リ から符号付きバイ ト [7:0] をロード

LDRSB <Rd>, [<Rn>, <Rm>]

テーブル 2- 4 Cortex-M3 の 16 ビ ッ ト 命令の概要 (続 く )

操作 アセンブ ラ

2- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 63: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

レジス タ ア ド レ ス + レジス タオフセ ッ ト の メ モ リ から符号付きハーフ ワード[15:0] を ロード

LDRSH <Rd>, [<Rn>, <Rm>]

即値によ り 論理左シフ ト LSL <Rd>, <Rm>, #<immed_5>

レジス タの値によ り 論理左シフ ト LSL <Rd>, <Rs>

即値によ り 論理右シフ ト LSR <Rd>, <Rm>, #<immed_5>

レジス タの値によ り 論理右シフ ト LSR <Rd>, <Rs>

8 ビ ッ ト 即値をレジス タに移動 MOV <Rd>, #<immed_8>

下位レジス タの値を下位レジス タに移動 MOV <Rd>, <Rn>

上位または下位レジス タの値を上位または下位レジス タに移動 MOV <Rd>, <Rm>

レジス タの値を乗算 MUL <Rd>, <Rm>

レジス タの値の否定 (1 の補数、 complement) を レジス タに移動 MVN <Rd>, <Rm>

レジス タの値を負 (2 の補数、 negative) にし てレジス タに保存 NEG <Rd>, <Rm>

無操作 NOP <c>

レジス タの値をビ ッ ト 単位で論理和 ORR <Rd>, <Rm>

ス タ ッ ク から複数レジス タ をポ ッ プ POP <registers>

ス タ ッ ク から複数レジス タおよび PC をポ ッ プ POP <registers, PC>

複数レジス タ を ス タ ッ クへプ ッ シュ PUSH <registers>

LR および複数レジス タ を ス タ ッ クへプ ッ シュ PUSH <registers, LR>

ワード中のバイ ト 順を反転し て、 レジス タへコ ピー REV <Rd>, <Rn>

2 つのハーフ ワード中でそれぞれのバイ ト 順を反転し て、 レジス タへコ ピー REV16 <Rd>, <Rn>

下位ハーフ ワード [15:0] でバイ ト 順を反転、 符号拡張し て、 レジス タへコ ピー REVSH <Rd>, <Rn>

レジス タ内の量によ り 、 右ローテー ト ROR <Rd>, <Rs>

レジス タの値と C フ ラ グを レジス タの値から減算 SBC <Rd>, <Rm>

イベン ト 送信 SEV<c>

複数のレジス タから ワード を連続する メ モ リ 位置へス ト ア STMIA <Rn>!, <registers>

テーブル 2- 4 Cortex-M3 の 16 ビ ッ ト 命令の概要 (続 く )

操作 アセンブラ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 15

アクセス制限な し 公開

Page 64: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

レジス タのア ド レ ス + 5 ビ ッ ト 即値のオフセ ッ ト へレジス タのワード を ス ト ア STR <Rd>, [<Rn>, #<immed_5> * 4]

レジス タのア ド レ スへレジス タのワード を ス ト ア STR <Rd>, [<Rn>, <Rm>]

SP ア ド レ ス + 8 ビ ッ ト 即値のオフセ ッ ト へレジス タのワード を ス ト ア STR <Rd>, [SP, #<immed_8> * 4]

レジス タのア ド レ ス + 5 ビ ッ ト 即値のオフセ ッ ト へレジス タのバイ ト [7:0] を スト ア

STRB <Rd>, [<Rn>, #<immed_5>]

レジス タのア ド レ スへレジス タのバイ ト [7:0] を ス ト ア STRB <Rd>, [<Rn>, <Rm>]

レジス タのア ド レ ス + 5 ビ ッ ト 即値のオフセ ッ ト へレジス タのハーフ ワード[15:0] を ス ト ア

STRH <Rd>, [<Rn>, #<immed_5> * 2]

レジス タのア ド レ ス + レジス タによ るオフセ ッ ト へレジス タのハーフ ワード[15:0] を ス ト ア

STRH <Rd>, [<Rn>, <Rm>]

3 ビ ッ ト 即値を レジス タから減算 SUB <Rd>, <Rn>, #<immed_3>

8 ビ ッ ト 即値を レジス タの値から減算 SUB <Rd>, #<immed_8>

レジス タの値を減算 SUB <Rd>, <Rn>, <Rm>

4 × (7 ビ ッ ト 即値) を SP から減算 SUB SP, #<immed_7> * 4

8 ビ ッ ト 即値の呼び出し コード によ り 、 オペレーテ ィ ングシステムのサービ ス呼び出し

SVC <immed_8>

レジス タからバイ ト [7:0] を抽出し、 レジス タに移動して、 32 ビ ッ ト に符号拡張 SXTB <Rd>, <Rm>

レジス タからハーフ ワード [15:0] を抽出し、 レジス タに移動し て、 32 ビ ッ ト に符号拡張

SXTH <Rd>, <Rm>

別のレジス タの値と論理積を実行し て、 レジス タの設定されている ビ ッ ト をテス ト

TST <Rn>, <Rm>

レジス タからバイ ト [7:0] を抽出し、 レジス タに移動して、 32 ビ ッ ト にゼロ拡張 UXTB <Rd>, <Rm>

レジス タからハーフ ワード [15:0] を抽出し、 レジス タに移動し て、 32 ビ ッ ト にゼロ拡張

UXTH <Rd>, <Rm>

イベン ト 待ち WFE <c>

割 り 込み待ち WFI <c>

テーブル 2- 4 Cortex-M3 の 16 ビ ッ ト 命令の概要 (続 く )

操作 アセンブ ラ

2- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 65: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

Cortex-M3 の 32 ビ ッ ト 命令の一覧を、 テーブル 2- 5 に示し ます。

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要

操作 アセンブラ

レジス タの値、 12 ビ ッ ト 即値、 C ビ ッ ト を加算 ADC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12>

レジス タの値、 シフ ト し たレジス タの値、 C ビ ッ ト を加算 ADC{S}.W <Rd>, <Rn>, <Rm>{, <shift>}

レジス タの値と 12 ビ ッ ト 即値を加算 ADD{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト し たレジス タの値を加算 ADD{S}.W <Rd>, <Rm>{, <shift>}

レジス タの値と 12 ビ ッ ト 即値を加算 ADDW.W <Rd>, <Rn>, #<immed_12>

レジス タの値と 12 ビ ッ ト 即値をビ ッ ト 単位論理積 AND{S}.W <Rd>, <Rn>, #<modify_constant(immed_12>

レジス タの値と シフ ト されたレジス タの値をビ ッ ト 単位論理積 AND{S}.W <Rd>, <Rn>, Rm>{, <shift>}

レジス タの数値によ り 算術右シフ ト ASR{S}.W <Rd>, <Rn>, <Rm>

条件分岐 B{cond}.W <label>

ビ ッ ト フ ィ ール ド を ク リ ア BFC.W <Rd>, #<lsb>, #<width>

ビ ッ ト フ ィ ール ド を 1 つのレジス タの値から別のレジス タの値に挿入

BFI.W <Rd>, <Rn>, #<lsb>, #<width>

レジス タの値と 12 ビ ッ ト 即値の否定 (1 の補数) と をビ ッ ト 単位の論理積

BIC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト されたレジス タの値の否定 (1 の補数) とをビ ッ ト 単位の論理積

BIC{S}.W <Rd>, <Rn>, <Rm>{, <shift>}

リ ン ク付き分岐 BL <label>

リ ン ク付き分岐 (即値) BL<c> <label>

無条件分岐 B.W <label>

排他ク リ アは、 実行中のプロセ ッ サのローカルレ コード で、 アド レ スが排他ア ク セスの要求を受けている ものを ク リ ア し ます。

CLREX <c>

レジス タの値に含まれる先行ゼロの数を返す CLZ.W <Rd>, <Rn>

レジス タの値と 12 ビ ッ ト 即値の 2 の補数と を比較 CMN.W <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト されたレジス タの値の 2 の補数と を比較 CMN.W <Rn>, <Rm>{, <shift>}

レジス タの値と 12 ビ ッ ト 即値と を比較 CMP.W <Rn>, #<modify_constant(immed_12)>

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 17

アクセス制限な し 公開

Page 66: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

レジス タの値と シフ ト されたレジス タの値 と を比較 CMP.W <Rn>, <Rm>{, <shift>}

データ メ モ リ バ リ ア DMB <c>

データ同期化バ リ ア DSB <c>

レジス タの値と 12 ビ ッ ト 即値で排他的論理和 EOR{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト されたレジス タの値で排他的論理和 EOR{S}.W <Rd>, <Rn>, <Rm>{, <shift>}

命令同期化バ リ ア ISB <c>

ポス ト イ ン ク リ メ ン ト (IA) またはプ リ デク リ メ ン ト (DB) で、 メモ リ から レジス タへ複数ロード

LDM{IA|DB}.W <Rn>{!}, <registers>

ベース レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト の メ モリ から ワード を ロード

LDR.W <Rxf>, [<Rn>, #<offset_12>]

ベース レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト の メ モリ から PC へワード を ロード (分岐)

LDR.W PC, [<Rn>, #<offset_12>]

ポス ト イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から PC へワード を ロード (分岐)

LDR.W PC, [Rn], #<+/-<offset_8>

ポス ト イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から ワード を ロード

LDR.W <Rxf>, [<Rn>], #+/-<offset_8>

プレ イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から ワード を ロード

LDR.W <Rxf>, [<Rn>, #<+/-<offset_8>]!

LDRT.W <Rxf>, [<Rn>, #<offset_8>]

プレ イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から PC へワード を ロード (分岐)

LDR.W PC, [<Rn>, #+/-<offset_8>]!

位置が 0、 1、 2、 または 3 つ左にシフ ト されたレジス タのア ド レスの メ モ リ から ワード を ロード

LDR.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

位置が 0、 1、 2、 または 3 つ左にシフ ト されたレジス タのア ド レスの メ モ リ から PC へワード を ロード (分岐)

LDR.W PC, [<Rn>, <Rm>{, LSL #<shift>}]

PC ア ド レ スに 12 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から ワード を ロード

LDR.W <Rxf>, [PC, #+/-<offset_12>]

PC ア ド レ スに 12 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から PC へワード を ロード (分岐)

LDR.W PC, [PC, #+/-<offset_12>]

ベース レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト の メ モリ からバイ ト [7:0] を ロード

LDRB.W <Rxf>, [<Rn>, #<offset_12>]

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 (続 く )

操作 アセンブ ラ

2- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 67: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

ポス ト イ ンデク スで、 ベース レジス タのア ド レ ス を 8 ビ ッ ト 即値でオフセ ッ ト し た メ モ リ からバイ ト [7:0] を ロード

LDRB.W <Rxf>.[<Rn>], #+/-<offset_8>

位置が 0、 1、 2、 または 3 つ左にシフ ト されたレジス タのア ド レスの メ モ リ からバイ ト [7:0] を ロード

LDRB.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

プレ イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値でオフセ ッ ト し た メ モ リ からバイ ト [7:0] を ロード

LDRB.W <Rxf>, [<Rn>, #<+/-<offset_8>]!

PC ア ド レ スに 12 ビ ッ ト 即値でオフセ ッ ト し た メ モ リ からバイト を ロード

LDRB.W <Rxf>, [PC, #+/-<offset_12>]

プレ イ ンデク スで、 レジス タのア ド レ スに、 8 ビ ッ ト 即値 × 4 をオフセ ッ ト し た メ モ リ から ダブルワード を ロード

LDRD.W <Rxf>, <Rxf2>, [<Rn>, #+/-<offset_8> * 4]{!}

ポス ト イ ンデク スで、 レジス タのア ド レ スに、 8 ビ ッ ト 即値 × 4 をオフセ ッ ト し た メ モ リ から ダブルワード を ロード

LDRD.W <Rxf>, <Rxf2>, [<Rn>], #+/-<offset_8> * 4

排他レジス タ ロード は、 ベース レジス タの値と即値オフセ ッ トから ア ド レ ス を計算し、 ワード を メ モ リ から ロード し て、 レジス タに書き込み

LDREX<c> <Rt>,[<Rn>{,#<imm>}]

排他レジス タ ロード ハーフ ワード は、 ベース レジス タの値と即値オフセ ッ ト から ア ド レ ス を計算し、 ハーフ ワード を メ モ リ から ロード し て、 レジス タに書き込み

LDREXH<c> <Rt>,[<Rn>{,#<imm>}]

排他レジス タ ロード バイ ト は、 ベース レジス タの値と即値オフセ ッ ト から ア ド レ ス を計算し、 バイ ト を メ モ リ から ロード し て、レジス タに書き込み

LDREXB<c> <Rt>,[<Rn>{,#<imm>}]

ベース レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト の メ モリ からハーフ ワード [15:0] を ロード

LDRH.W <Rxf>, [<Rn>, #<offset_12>]

プレ イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値でオフセ ッ ト し てハーフ ワード [15:0] を ロード

LDRH.W <Rxf>, [<Rn>, #<+/-<offset_8>]!

ポス ト イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値でオフセ ッ ト し てハーフ ワード [15:0] を ロード

LDRB.W <Rxf>.[<Rn>], #+/-<offset_8>

位置が 0、 1、 2、 または 3 つ左にシフ ト されたレジス タのア ド レスの メ モ リ からハーフ ワード [15:0] を ロード

LDRH.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

PC ア ド レ スに 12 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ からハーフ ワード を ロード

LDRH.W <Rxf>, [PC, #+/-<offset_12>]

ベース レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト の メ モリ から符号付きバイ ト [7:0] を ロード

LDRSB.W <Rxf>, [<Rn>, #<offset_12>]

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 (続 く )

操作 アセンブラ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 19

アクセス制限な し 公開

Page 68: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

ポス ト イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から符号付きバイ ト [7:0] を ロード

LDRSB.W <Rxf>.[<Rn>], #+/-<offset_8>

プレ イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から符号付きバイ ト [7:0] を ロード

LDRSB.W <Rxf>, [<Rn>, #<+/-<offset_8>]!

位置が 0、 1、 2、 または 3 つ左にシフ ト されたレジス タのア ド レスの メ モ リ から符号付きバイ ト [7:0] を ロード

LDRSB.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

PC ア ド レ スに 12 ビ ッ ト 即値をオフセ ッ ト し た メ モ リ から符号付きバイ ト を ロード

LDRSB.W <Rxf>, [PC, #+/-<offset_12>]

ベース レジス タのア ド レ ス + 12 ビ ッ ト 即値をオフセ ッ ト し た メモ リ から符号付きハーフ ワード [15:0] を ロード

LDRSH.W <Rxf>, [<Rn>, #<offset_12>]

ポス ト イ ンデク スで、 ベース レジス タのア ド レ ス を 8 ビ ッ ト 即値でオフセ ッ ト し て、 符号付きハーフ ワード [15:0] を ロード

LDRSB.W <Rxf>.[<Rn>], #+/-<offset_8>

プレ イ ンデク スで、 ベース レジス タのア ド レ スに 8 ビ ッ ト 即値でオフセ ッ ト し て、 符号付きハーフ ワード [15:0] を ロード

LDRSH.W <Rxf>, [<Rn>, #<+/-<offset_8>]!

位置が 0、 1、 2、 または 3 つ左にシフ ト されたレジス タのア ド レスから メ モ リ 符号付きハーフ ワード [15:0] を ロード

LDRSH.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

PC ア ド レ ス を 12 ビ ッ ト 即値でオフセ ッ ト し た メ モ リ から符号付きハーフ ワード を ロード

LDRSH.W <Rxf>, [PC, #+/-<offset_12>]

レジス タの数値によ り レジス タ値を論理左シフ ト LSL{S}.W <Rd>, <Rn>, <Rm>

レジス タの数値によ り レジス タ値を論理右シフ ト LSR{S}.W <Rd>, <Rn>, <Rm>

2 つの符号付き または符号な し レジス タ値を乗算し、 下位 32ビ ッ ト を レジス タの値に加算 (積和)

MLA.W <Rd>, <Rn>, <Rm>, <Racc>

2 つの符号付き または符号な し レジス タ値を乗算し、 下位 32ビ ッ ト を レジス タの値から減算

MLS.W <Rd>, <Rn>, <Rm>, <Racc>

12 ビ ッ ト 即値を レジス タに移動 MOV{S}.W <Rd>, #<modify_constant(immed_12)>

シフ ト し たレジス タの値を レジス タに移動 MOV{S}.W <Rd>, <Rm>{, <shift>}

16 ビ ッ ト 即値を レジス タの上位ハーフ ワード [31:16] に移動 MOVT.W <Rd>, #<immed_16>

16 ビ ッ ト 即値を レジス タの下位ハーフ ワード [15:0] に移動し、上位ハーフ ワード [31:16] を ク リ ア

MOVW.W <Rd>, #<immed_16>

ステータ ス レジス タから レジス タに移動 MRS<c> <Rd>, <psr>

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 (続 く )

操作 アセンブ ラ

2- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 69: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

ステータ ス レジス タに移動 MSR<c> <psr>_<fields>,<Rn>

2 つの符号付き または符号な し レジス タ値を乗算 MUL.W <Rd>, <Rn>, <Rm>

無操作 NOP.W

レジス タの値と 12 ビ ッ ト 即値の NOT と を論理和 ORN{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト し たレジス タの値の NOT と を論理和 ORN[S}.W <Rd>, <Rn>, <Rm>{, <shift>}

レジス タの値と 12 ビ ッ ト 即値を論理和 ORR{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト し たレジス タの値を論理和 ORR{S}.W <Rd>, <Rn>, <Rm>{, <shift>}

ビ ッ ト の順序を反転 RBIT.W <Rd>, <Rm>

ワード中のバイ ト 順を反転 REV.W <Rd>, <Rm>

各ハーフ ワード中のバイ ト 順をそれぞれ反転 REV16.W <Rd>, <Rn>

下位ハーフ ワード のバイ ト 順を反転し て、 符号拡張 REVSH.W <Rd>, <Rn>

レジス タ内の数によ り 、 右ローテー ト ROR{S}.W <Rd>, <Rn>, <Rm>

拡張付き右ローテー ト RRX{S}.W <Rd>, <Rm>

レジス タの値を 12 ビ ッ ト 即値から減算 RSB{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

レジス タの値をシフ ト し たレジス タの値から減算 RSB{S}.W <Rd>, <Rn>, <Rm>{, <shift>}

12 ビ ッ ト 即値と C ビ ッ ト を レジス タの値から減算 SBC{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

シフ ト し たレジス タの値と C ビ ッ ト をレジス タの値から減算 SBC{S}.W <Rd>, <Rn>, <Rm>{, <shift>}

選択されたビ ッ ト を レジス タにコ ピーし、 符号拡張 SBFX.W <Rd>, <Rn>, #<lsb>, #<width>

符号付き除算 SDIV<c> <Rd>,<Rn>,<Rm>

イベン ト 送信 SEV<c>

符号付き ワード を乗算し て、 符号拡張された値を、 一対のレジス タ値に累算

SMLAL.W <RdLo>, <RdHi>, <Rn>, <Rm>

2 つの符号付き レジス タ値を乗算 SMULL.W <RdLo>, <RdHi>, <Rn>, <Rm>

符号付き飽和 SSAT.W <c> <Rd>, #<imm>, <Rn>{, <shift>}

複数レジス タのワード を連続 メ モ リ 位置へス ト ア STM{IA|DB}.W <Rn>{!}, <registers>

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 (続 く )

操作 アセンブラ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 21

アクセス制限な し 公開

Page 70: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト に、 レジス タのワード を ス ト ア

STR.W <Rxf>, [<Rn>, #<offset_12>]

ポス ト イ ンデク スで、 レジス タのア ド レ ス + 8 ビ ッ ト 即値のオフセ ッ ト に、 レジス タのワード を ス ト ア

STR.W <Rxf>, [<Rn>], #+/-<offset_8>

位置が 0、 1、 2、 または 3 つシフ ト されたレジス タのア ド レ スに、 レジス タのワード を ス ト ア

STR.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

プレ イ ンデク ス またはポス ト イ ンデク スで、 レジス タのア ド レス + 8 ビ ッ ト 即値のオフセ ッ ト に、 レジス タのワード を ス ト ア

STR.W <Rxf>, [<Rn>, #+/-<offset_8>]{!}

STRT.W <Rxf>, [<Rn>, #<offset_8>]

プレ イ ンデク スで、 レジス タのア ド レ ス を 8 ビ ッ ト 即値でオフセ ッ ト し て、 レジス タのバイ ト [7:0] を ス ト ア

STRB{T}.W <Rxf>, [<Rn>, #+/-<offset_8>]{!}

レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト に、 レジス タのバイ ト [7:0] を ス ト ア

STRB.W <Rxf>, [<Rn>, #<offset_12>]

ポス ト イ ンデク スで、 レジス タのア ド レ ス を 8 ビ ッ ト 即値でオフセ ッ ト し て、 レジス タのバイ ト [7:0] を ス ト ア

STRB.W <Rxf>, [<Rn>], #+/-<offset_8>

位置が 0、 1、 2、 または 3 つシフ ト されたレジス タのア ド レ スに、 レジス タのバイ ト [7:0] を ス ト ア

STRB.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

ダブルワード をプレ イ ンデク スでス ト ア STRD.W <Rxf>, <Rxf2>, [<Rn>, #+/-<offset_8> * 4]{!}

ダブルワード をポス ト イ ンデク スでス ト ア STRD.W <Rxf>, <Rxf2>, [<Rn>, #+/-<offset_8> * 4]

排他レジス タ ス ト アは、 ベース レジス タの値 と即値オフセ ッ トから ア ド レ ス を計算し、 実行中のプロセ ッ サがア ド レ ス指定された メ モ リ に対する排他ア ク セス を持っている場合、 ワード をレジス タから メ モ リ にス ト ア

STREX <c> <Rd>,<Rt>,[<Rn>{,#<imm>}]

排他レジス タ ス ト ア バイ ト は、 ベース レジス タの値から ア ド レス を導出し、 実行中のプロセ ッ サがア ド レ ス指定された メ モ リに対する排他ア ク セス を持っている場合、 バイ ト を レジス タから メ モ リ にス ト ア

STREXB <c> <Rd>,<Rt>,[<Rn>]

排他レジス タ ス ト ア ハーフ ワード は、 ベース レジス タの値からア ド レ ス を導出し、 実行中のプロセ ッ サがア ド レ ス指定されたメ モ リ に対する排他ア ク セス を持っている場合、 ハーフ ワードを レジス タから メ モ リ にス ト ア

STREXH <c> <Rd>,<Rt>,[<Rn>]

レジス タのア ド レ ス + 12 ビ ッ ト 即値のオフセ ッ ト に、 レジス タのハーフ ワード [15:0] を ス ト ア

STRH.W <Rxf>, [<Rn>, #<offset_12>]

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 (続 く )

操作 アセンブ ラ

2- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 71: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラ マモデル

位置が 0、 1、 2、 または 3 つシフ ト されたレジス タのア ド レ スに、 レジス タのハーフ ワード [15:0] を ス ト ア

STRH.W <Rxf>, [<Rn>, <Rm>{, LSL #<shift>}]

プレ イ ンデク スで、 レジス タのア ド レ ス を 8 ビ ッ ト 即値でオフセ ッ ト し て、 レジス タのハーフ ワード [15:0] を ス ト ア

STRH{T}.W <Rxf>, [<Rn>, #+/-<offset_8>]{!}

ポス ト イ ンデク スで、 レジス タのア ド レ ス を 8 ビ ッ ト 即値でオフセ ッ ト し て、 レジス タのハーフ ワード [15:0] を ス ト ア

STRH.W <Rxf>, [<Rn>], #+/-<offset_8>

12 ビ ッ ト 即値を レジス タの値から減算 SUB{S}.W <Rd>, <Rn>, #<modify_constant(immed_12)>

シフ ト し たレジス タの値を レジス タの値から減算 SUB{S}.W <Rd>, <Rn>, <Rm>{, <shift>}

12 ビ ッ ト 即値を レジス タの値から減算 SUBW.W <Rd>, <Rn>, #<immed_12>

バイ ト を 32 ビ ッ ト に符号拡張 SXTB.W <Rd>, <Rm>{, <rotation>}

ハーフ ワード を 32 ビ ッ ト に符号拡張 SXTH.W <Rd>, <Rm>{, <rotation>}

バイ ト でテーブル分岐 TBB [<Rn>, <Rm>]

ハーフ ワード でテーブル分岐 TBH [<Rn>, <Rm>, LSL #1]

レジス タの値と 12 ビ ッ ト 即値で排他的論理和 TEQ.W <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト されたレジス タの値で排他的論理和 TEQ.W <Rn>, <Rm>{, <shift}

レジス タの値と 12 ビ ッ ト 即値で論理積 TST.W <Rn>, #<modify_constant(immed_12)>

レジス タの値と シフ ト し たレジス タの値で論理積 TST.W <Rn>, <Rm>{, <shift>}

レジス タの値のビ ッ ト フ ィ ール ド を レジス タにコ ピーし、 32ビ ッ ト にゼロ拡張

UBFX.W <Rd>, <Rn>, #<lsb>, #<width>

符号な し除算 UDIV<c> <Rd>,<Rn>,<Rm>

2 つの符号な し レジス タ値を乗算し て、 一対のレジス タ値に累算 UMLAL.W <RdLo>, <RdHi>, <Rn>, <Rm>

2 つの符号な し レジス タ値を乗算 UMULL.W <RdLo>, <RdHi>, <Rn>, <Rm>

符号な し飽和 USAT <c> <Rd>, #<imm>, <Rn>{, <shift>}

符号な しバイ ト を レジス タにコ ピーし て、 32 ビ ッ ト にゼロ拡張 UXTB.W <Rd>, <Rm>{, <rotation>}

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 (続 く )

操作 アセンブラ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 2- 23

アクセス制限な し 公開

Page 72: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

プログラマモデル

符号な しハーフ ワード を レジス タにコ ピーし て、 32 ビ ッ ト にゼロ拡張

UXTH.W <Rd>, <Rm>{, <rotation>}

イベン ト 待ち WFE.W

割 り 込み待ち WFI.W

テーブル 2- 5 Cortex-M3 の 32 ビ ッ ト 命令の概要 (続 く )

操作 アセンブ ラ

2- 24 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 73: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

3 章 システム制御

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

• プロセ ッ サレジス タの概要 p. 3- 2

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 1

アクセス制限な し 公開

Page 74: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

3.1 プロセ ッサレジス タの概要

こ のセ ク シ ョ ンでは、 機能を制御する レジス タについて説明し ます。 こ のセク シ ョ ンは次の項目から構成されています。

• ネス ト 型ベク タ割 り 込みコ ン ト ローラ レジス タ

• コ アデバッ グ レジス タ p. 3- 6

• システムデバッ グ レジス タ p. 3- 6

• デバッ グ イ ン タ フ ェースポー ト レジス タ p. 3- 13

• メ モ リ 保護ユニ ッ ト レジス タ p. 3- 13

• ト レースポー ト イ ン タ フ ェースユニ ッ ト レジス タ p. 3- 14

• エンベデッ ド ト レース マ ク ロセル レジス タ p. 3- 16

3.1.1 ネス ト 型ベク タ割り込みコ ン ト ローラ レジス タ

ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC) レジス タの概要をテーブル 3- 1に示し ます。 NVIC レジス タの詳細については、 8 章 Nested Vectored Interrupt Controller を参照し て下さい。

テーブル 3- 1 NVIC レジス タ

レジス タ名 タ イプ ア ド レス リセッ ト時の値

割 り 込み制御タ イプレジス タ 読み出し専用 0xE000E004 a

補助制御レジス タ 読み出し / 書き込み 0xE000E008 0x0

SysTick 制御およびステータ ス レジス タ 読み出し / 書き込み 0xE000E010 0x00000000

SysTick リ ロード値レジス タ 読み出し / 書き込み 0xE000E014 予測不能

SysTick 現在値レジス タ 読み出し / 書き込みク リ ア

0xE000E018 予測不能

SysTick 較正値レジス タ 読み出し専用 0xE000E01C STCALIB

割 り 込み要求 (IRQ)0 ~ 31 イ ネーブルセ ッ ト レジス タ

読み出し / 書き込み 0xE000E100 0x00000000

. . . .

. . . .

. . . .

割 り 込み要求 (IRQ)224 ~ 239 イネーブルセ ッ ト レジス タ

読み出し / 書き込み 0xE000E11C 0x00000000

3- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 75: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

割 り 込み要求 (IRQ)0 ~ 31 イネーブルク リ ア レジス タ

読み出し / 書き込み 0xE000E180 0x00000000

. . . .

. . . .

. . . .

割 り 込み要求 (IRQ)224 ~ 239 イネーブルク リ ア レジス タ

読み出し / 書き込み 0xE000E19C 0x00000000

割 り 込み要求 (IRQ)0 ~ 31 保留セ ッ ト レジス タ 読み出し / 書き込み 0xE000E200 0x00000000

. . . .

. . . .

. . . .

割 り 込み要求 (IRQ)224 ~ 239 保留セ ッ ト レジス タ 読み出し / 書き込み 0xE000E21C 0x00000000

割 り 込み要求 (IRQ)0 ~ 31 保留ク リ アレジス タ 読み出し / 書き込み 0xE000E280 0x00000000

. . . .

. . . .

. . . .

割 り 込み要求 (IRQ)224 ~ 239 保留ク リ アレジス タ 読み出し / 書き込み 0xE000E29C 0x00000000

割 り 込み要求 (IRQ)0 ~ 31 ア ク テ ィ ブビ ッ ト レジス タ

読み出し専用 0xE000E300 0x00000000

. . . .

. . . .

. . . .

割 り 込み要求 (IRQ)224 ~ 239 ア ク テ ィ ブビ ッ ト レジス タ

読み出し専用 0xE000E31C 0x00000000

通常割 り 込み要求 (IRQ)0 ~ 3 優先度レジス タ 読み出し / 書き込み 0xE000E400 0x00000000

. . . .

. . . .

テーブル 3- 1 NVIC レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 3

アクセス制限な し 公開

Page 76: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

. . . .

通常割 り 込み要求 (IRQ)236 ~ 239 優先度レジス タ 読み出し / 書き込み 0xE000E4EC 0x00000000

CPUID ベース レジス タ 読み出し専用 0xE000ED00 0x412FC230

割 り 込み制御状態レジス タ 読み出し / 書き込み、または読み出し専用

0xE000ED04 0x00000000

ベク タ テーブルオフセ ッ ト レジス タ 読み出し / 書き込み 0xE000ED08 0x00000000

アプ リ ケーシ ョ ン割 り 込み / リ セ ッ ト 制御レジス タ 読み出し / 書き込み 0xE000ED0C 0x00000000

システム制御レジス タ 読み出し / 書き込み 0xE000ED10 0x00000000

構成制御レジス タ 読み出し / 書き込み 0xE000ED14 0x00000200

システムハン ド ラ 4 ~ 7 優先度レジス タ 読み出し / 書き込み 0xE000ED18 0x00000000

システムハン ド ラ 8 ~ 11 優先度レジス タ 読み出し / 書き込み 0xE000ED1C 0x00000000

システムハン ド ラ 12 ~ 15 優先度レジス タ 読み出し / 書き込み 0xE000ED20 0x00000000

システムハン ド ラ制御および状態レジス タ 読み出し / 書き込み 0xE000ED24 0x00000000

構成可能フ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED28 0x00000000

ハード フ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED2C 0x00000000

デバッ グフ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED30 0x00000000

メ モ リ 管理ア ド レ ス レジス タ 読み出し / 書き込み 0xE000ED34 予測不能

バス フ ォール ト ア ド レ ス レジス タ 読み出し / 書き込み 0xE000ED38 予測不能

補助フ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED3C 0x00000000

PFR0: プロセ ッサ機能レジス タ 0 読み出し専用 0xE000ED40 0x00000030

PFR0: プロセ ッサ機能レジス タ 1 読み出し専用 0xE000ED44 0x00000200

DFR0: デバッ グ機能レジス タ 0 読み出し専用 0xE000ED48 0x00100000

AFR0: 補助機能レジス タ 0 読み出し専用 0xE000ED4C 0x00000000

MMFR0: メ モ リ モデル機能レジス タ 0 読み出し専用 0xE000ED50 0x00000030

MMFR1: メ モ リ モデル機能レジス タ 1 読み出し専用 0xE000ED54 0x00000000

テーブル 3- 1 NVIC レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値

3- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 77: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

MMFR2: メ モ リ モデル機能レジス タ 2 読み出し専用 0xE000ED58 0x00000000

MMFR3: メ モ リ モデル機能レジス タ 3 読み出し専用 0xE000ED5C 0x00000000

ISAR0: ISA 機能レジス タ 0 読み出し専用 0xE000ED60 0x01141110

ISAR1: ISA 機能レジス タ 1 読み出し専用 0xE000ED64 0x02111000

ISAR2: ISA 機能レジス タ 2 読み出し専用 0xE000ED68 0x21112231

ISAR3: ISA 機能レジス タ 3 読み出し専用 0xE000ED6C 0x01111110

ISAR4: ISA 機能レジス タ 4 読み出し専用 0xE000ED70 0x01310102

ソ フ ト ウ ェア ト リ ガ割 り 込みレジス タ 書き込み専用 0xE000EF00 -

ペ リ フ ェ ラル識別レジス タ (PID4) 読み出し専用 0xE000EFD0 0x04

ペ リ フ ェ ラル識別レジス タ (PID5) 読み出し専用 0xE000EFD4 0x00

ペ リ フ ェ ラル識別レジス タ (PID6) 読み出し専用 0xE000EFD8 0x00

ペ リ フ ェ ラル識別レジス タ (PID7) 読み出し専用 0xE000EFDC 0x00

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [7:0] (PID0) 読み出し専用 0xE000EFE0 0x00

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [15:8] (PID1) 読み出し専用 0xE000EFE4 0xB0

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [23:16] (PID2) 読み出し専用 0xE000EFE8 0x2B

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [31:24] (PID3) 読み出し専用 0xE000EFEC 0x00

コ ンポーネン ト 識別レジス タ ビ ッ ト [7:0] (CID0) 読み出し専用 0xE000EFF0 0x0D

コ ンポーネン ト 識別レジス タ ビ ッ ト [15:8] (CID1) 読み出し専用 0xE000EFF4 0xE0

コ ンポーネン ト 識別レジス タ ビ ッ ト [23:16] (CID2) 読み出し専用 0xE000EFF8 0x05

コ ンポーネン ト 識別レジス タ ビ ッ ト [31:24] (CID3) 読み出し専用 0xE000EFFC 0xB1

a. リ セ ッ ト 時の値は、 定義されている割 り 込みの数によ って異な り ます。

テーブル 3- 1 NVIC レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 5

アクセス制限な し 公開

Page 78: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

3.1.2 コ アデバッ グ レジス タ

コ アデバッ グ レジス タの概要をテーブル 3- 2 に示し ます。 これらのレジス タの詳細については、 10 章 Core Debug を参照し て下さい。

3.1.3 システムデバッ グ レジス タ

こ のセ ク シ ョ ンでは、 システムデバッ グ レジス タの一覧を示し ます。

テーブル 3- 2 コアデバッ グ レジス タ

レジス タ名 タ イプ ア ド レス リセッ ト時の値

デバッ グホール ト 制御およびステータ スレジス タ

読み出し /書き込み

0xE000EDF0 0x00000000a

a. ビ ッ ト [5]、 [3]、 [2]、 [1]、 [0] は、 PORESETn によ って リ セ ッ ト されます。 ビ ッ ト

[1] は SYSRESETn によ って、 およびアプ リ ケーシ ョ ン割 り 込みおよび リ セ ッ ト 制御

レジス タの VECTRESET ビ ッ ト に 1 を書き込むこ と によ って リ セ ッ ト されます。

デバッ グ コ アレジス タ セレ ク タ レジス タ 書き込み専用

0xE000EDF4 -

デバッ グ コ アレジス タ データ レジス タ 読み出し / 書き込み

0xE000EDF8 -

デバッ グ例外およびモニタ制御レジス タ 読み出し / 書き込み

0xE000EDFC 0x00000000b

b. ビ ッ ト [16]、 [17]、 [18]、 [19] は SYSRESETn によ って、 およびアプ リ ケーシ ョ ン割

り 込みおよび リ セ ッ ト 制御レジス タの VECTRESET ビ ッ ト に 1 を書き込むこ と に

よ って リ セ ッ ト されます。

3- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 79: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

フ ラ ッ シュパッ チおよびブレークポイ ン ト レジス タ

フ ラ ッ シュパッチおよびブレーク ポ イ ン ト (FPB) レジス タの概要をテーブル 3- 3 に示し ます。 FPB レジス タの詳細については、 11 章 System Debug を参照し て下さい。

テーブル 3- 3 フ ラ ッ シュパッ チ レジス タの概要

名前 タ イプ ア ド レス リ セ ッ ト 時の値 説明

FP_CTRL 読み出し / 書き込み

0xE0002000 ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ制御レジス タ

FP_REMAP読み出し / 書き込み

0xE0002004- フ ラ ッ シュパッチ リ マ ッ プレジ

ス タ

FP_COMP0読み出し / 書き込み

0xE0002008ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

FP_COMP1読み出し / 書き込み

0xE000200Cビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

FP_COMP2読み出し / 書き込み

0xE0002010ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

FP_COMP3 読み出し / 書き込み

0xE0002014 ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

FP_COMP4 読み出し / 書き込み

0xE0002018 ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

FP_COMP5 読み出し / 書き込み

0xE000201C ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

FP_COMP6 読み出し / 書き込み

0xE0002020 ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

FP_COMP7 読み出し / 書き込み

0xE0002024 ビ ッ ト [0] は 1'b0 にリ セ ッ ト されます。

フ ラ ッ シュパッチ コ ンパレータレジス タ

PID4 読み出し専用 0xE0002FD0 - 値 0x04

PID5 読み出し専用 0xE0002FD4 - 値 0x00

PID6 読み出し専用 0xE0002FD8 - 値 0x00

PID7 読み出し専用 0xE0002FDC - 値 0x00

PID0 読み出し専用 0xE0002FE0 - 値 0x03

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 7

アクセス制限な し 公開

Page 80: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

データ ウォ ッ チポイ ン ト および ト レースレジス タ

データ ウ ォ ッ チポ イ ン ト および ト レース (DWT) レジス タの概要を、 テーブル 3- 4 に示し ます。 DWT レジス タの詳細については、 11 章 System Debug を参照し て下さい。

PID1 読み出し専用 0xE0002FE4 - 値 0xB0

PID2 読み出し専用 0xE0002FE8 - 値 0x2B

PID3 読み出し専用 0xE0002FEC - 値 0x00

CID0 読み出し専用 0xE0002FF0 - 値 0x0D

CID1 読み出し専用 0xE0002FF4 - 値 0xE0

CID2 読み出し専用 0xE0002FF8 - 値 0x05

CID3 読み出し専用 0xE0002FFC - 値 0xB1

テーブル 3- 3 フ ラ ッ シュパッ チ レジス タの概要 (続 く )

名前 タ イプ ア ド レス リ セ ッ ト 時の値 説明

テーブル 3- 4 DWT レジス タの概要

名前 タ イプ ア ド レス リセッ ト時の値 説明

DWT_CTRL 読み出し / 書き込み

0xE0001000 0x40000000 DWT 制御レジス タ

DWT_CYCCNT 読み出し / 書き込み

0xE00010040x00000000 DWT カレ ン ト PC サンプラサイ クル

カ ウ ン ト レジス タ

DWT_CPICNT 読み出し / 書き込み

0xE0001008- DWT カレ ン ト CPI カ ウ ン ト レジス タ

DWT_EXCCNT 読み出し / 書き込み

0xE000100C - DWT カレ ン ト 割 り 込みオーバヘッ ドカ ウ ン ト レジス タ

DWT_SLEEPCNT 読み出し / 書き込み

0xE0001010 - DWT カレ ン ト ス リ ープカ ウ ン ト レジス タ

DWT_LSUCNT 読み出し / 書き込み

0xE0001014 - DWT カレ ン ト LSU カ ウ ン ト レジス タ

DWT_FOLDCNT 読み出し / 書き込み

0xE0001018 - DWT カレ ン ト フ ォル ド カ ウ ン ト レジス タ

3- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 81: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

DWT_PCSR 読み出し専用

0xE000101C - DWT PC サンプルレジス タ

DWT_COMP0読み出し / 書き込み

0xE0001020 - DWT コ ンパレータ レジス タ

DWT_MASK0読み出し / 書き込み

0xE0001024 - DWT マス ク レジス タ

DWT_FUNCTION0読み出し / 書き込み

0xE0001028 0x00000000 DWT 機能レジス タ

DWT_COMP1読み出し / 書き込み

0xE0001030 - DWT コ ンパレータ レジス タ

DWT_MASK1読み出し / 書き込み

0xE0001034 - DWT マス ク レジス タ

DWT_FUNCTION1 読み出し / 書き込み

0xE0001038 0x00000000 DWT 機能レジス タ

DWT_COMP2読み出し / 書き込み

0xE0001040 - DWT コ ンパレータ レジス タ

DWT_MASK2読み出し / 書き込み

0xE0001044 - DWT マス ク レジス タ

DWT_FUNCTION2 読み出し / 書き込み

0xE0001048 0x00000000 DWT 機能レジス タ

DWT_COMP3読み出し / 書き込み

0xE0001050 - DWT コ ンパレータ レジス タ

DWT_MASK3読み出し / 書き込み

0xE0001054 - DWT マス ク レジス タ

DWT_FUNCTION3 読み出し / 書き込み

0xE0001058 0x00000000 DWT 機能レジス タ

PID4 読み出し専用

0xE0001FD0 0x04 値 0x04

PID5 読み出し専用

0xE0001FD4 0x00 値 0x00

PID6 読み出し専用

0xE0001FD8 0x00 値 0x00

テーブル 3- 4 DWT レジス タの概要 (続 く )

名前 タ イプ ア ド レス リセッ ト時の値 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 9

アクセス制限な し 公開

Page 82: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

計装 ト レースマク ロセル レジス タ

計装 ト レースマ ク ロセル (ITM) レジス タの概要を、 テーブル 3- 5 に示し ます。ITM レジス タの詳細については、 11 章 System Debug を参照し て下さい。

PID7 読み出し専用

0xE0001FDC 0x00 値 0x00

PID0 読み出し専用

0xE0001FE0 0x02 値 0x02

PID1 読み出し専用

0xE0001FE4 0xB0 値 0xB0

PID2 読み出し専用

0xE0001FE8 0x0B0 値 0x2B

PID3 読み出し専用

0xE0001FEC 0x00 値 0x00

CID0 読み出し専用

0xE0001FF0 0x0D 値 0x0D

CID1 読み出し専用

0xE0001FF4 0xE0 値 0xE0

CID2 読み出し専用

0xE0001FF8 0x05 値 0x05

CID3 読み出し専用

0xE0001FFC 0xB1 値 0xB1

テーブル 3- 4 DWT レジス タの概要 (続 く )

名前 タ イプ ア ド レス リセッ ト時の値 説明

テーブル 3- 5 ITM レジス タの概要

名前 タ イプ ア ド レス リセッ ト時の値

ステ ィ ム ラ スポー ト 0 ~ 31 読み出し / 書き込み

0xE0000000 ~ 0xE000007C -

ト レース イネーブル 読み出し / 書き込み

0xE0000E000x00000000

ト レース特権 読み出し / 書き込み

0xE0000E400x00000000

3- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 83: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

ト レース制御レジス タ 読み出し / 書き込み

0xE0000E80 0x00000000

統合書き込み 書き込み専用

0xE0000EF8 0x00000000

統合読み出し 読み出し専用

0xE0000EFC 0x00000000

統合モード制御 読み出し / 書き込み

0xE0000F00 0x00000000

ロ ッ ク ア ク セス レジス タ書き込み専用

0xE0000FB0 0x00000000

ロ ッ ク ステータ ス レジス タ読み出し専用

0xE0000FB4 0x00000003

PID4読み出し専用

0xE0000FD0 0x00000004

PID5読み出し専用

0xE0000FD4 0x00000000

PID6 読み出し専用

0xE0000FD8 0x00000000

PID7 読み出し専用

0xE0000FDC 0x00000000

PID0 読み出し専用

0xE0000FE0 0x00000001

PID1 読み出し専用

0xE0000FE4 0x000000B0

PID2 読み出し専用

0xE0000FE8 0x0000002B

PID3 読み出し専用

0xE0000FEC 0x00000000

CID0 読み出し専用

0xE0000FF0 0x0000000D

テーブル 3- 5 ITM レジス タの概要 (続 く )

名前 タ イプ ア ド レス リセッ ト時の値

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 11

アクセス制限な し 公開

Page 84: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

ア ドバンス ト ハイパフ ォーマンスバス アクセスポー ト レジス タ

ア ド バン ス ト ハイパフ ォーマン スバス ア ク セスポー ト (AHB-AP) レジス タの概要をテーブル 3- 6 に示し ます。 AHB-AP レジス タの詳細については、 11 章 System Debug を参照し て下さい。

CID1 読み出し専用

0xE0000FF4 0x000000E0

CID2 読み出し専用

0xE0000FF8 0x00000005

CID3 読み出し専用

0xE0000FFC 0x000000B1

テーブル 3- 6 AHB-AP レジス タの概要

名前 タ イプ ア ド レス リセッ ト時の値

制御およびステータ ス ワード 読み出し / 書き込み

0x00 レジス タ参照

転送ア ド レ ス 読み出し / 書き込み

0x04 -

データ読み出し / 書き込み 読み出し / 書き込み

0x0C -

バン クデータ 0 読み出し / 書き込み

0x10 -

バン クデータ 1 読み出し / 書き込み

0x14 -

バン クデータ 2 読み出し / 書き込み

0x18 -

バン クデータ 3 読み出し / 書き込み

0x1C -

デバッ グ ROM ア ド レ ス読み出し専用

0xF8 0xE000E000

識別レジス タ読み出し専用

0xFC 0x24770011

テーブル 3- 5 ITM レジス タの概要 (続 く )

名前 タ イプ ア ド レス リセッ ト時の値

3- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 85: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

3.1.4 デバッ グイ ン タ フ ェ ースポー ト レジス タ

デバッ グ イ ン タ フ ェースポー ト レジス タの概要を、 テーブル 3- 7 に示し ます。 デバッ グ イ ン タ フ ェースポー ト レジス タの詳細については、 13 章 Debug Port を参照し て下さ い。

3.1.5 メ モ リ保護ユニ ッ ト レジス タ

メ モ リ 保護ユニ ッ ト (MPU) レジス タの概要を、 テーブル 3- 8 に示し ます。MPU レジス タの詳細については、 9 章 Memory Protection Unit を参照して下さい。

テーブル 3- 7 デバッ グイ ン タ フ ェースポー ト レジス タの概要

名前 SWJ-DP SW-DP 説明

ABORT はい はい アボー ト レジス タ

IDCODE はい はい ID コード レジス タ

CTRL/STAT はい はい 制御 / ステータ ス レジス タ

SELECT はい はい AP 選択レジス タ

RDBUFF はい はい 読み出しバッ フ ァ レジス タ

WCR いいえ はい ワ イヤ制御レジス タ

RESEND いいえ はい 読み出し再送レジス タ

テーブル 3- 8 MPU レジス タ

名前 タ イプ ア ド レス リセッ ト時の値

MPU タ イプレジス タ 読み出し専用

0xE000ED90 0x00000800

MPU 制御レジス タ 読み出し / 書き込み

0xE000ED94 0x00000000

MPU 領域番号レジス タ 読み出し / 書き込み

0xE000ED98 -

MPU 領域ベースア ド レ ス レジス タ 読み出し / 書き込み

0xE000ED9C -

MPU 領域属性およびサイ ズレジス タ 読み出し / 書き込み

0xE000EDA0 -

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 13

アクセス制限な し 公開

Page 86: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

3.1.6 ト レースポー ト イ ン タ フ ェースユニ ッ ト レジス タ

ト レースポー ト イ ン タ フ ェースユニ ッ ト (TPIU) レジス タの概要を、 テーブル 3- 9 に示し ます。 TPIU レジス タの詳細については、 17 章 Trace Port Interface Unit を参照し て下さい。

MPU エイ リ アス 1 領域ベースア ド レ ス レジス タ

D9C のエイ

リ アス

0xE000EDA4 -

MPU エイ リ アス 1 領域属性およびサイズレジス タ

DA0 のエイ

リ アス

0xE000EDA8 -

MPU エイ リ アス 2 領域ベースア ド レ ス レジス タ

D9C のエイ

リ アス

0xE000EDAC -

MPU エイ リ アス 2 領域属性およびサイズレジス タ

DA0 のエイ

リ アス

0xE000EDB0 -

MPU エイ リ アス 3 領域ベースア ド レ ス レジス タ

D9C のエイ

リ アス

0xE000EDB4 -

MPU エイ リ アス 3 領域属性およびサイズレジス タ

DA0 のエイ

リ アス

0xE000EDB8 -

テーブル 3- 8 MPU レジス タ (続 く )

名前 タ イプ ア ド レス リセッ ト時の値

テーブル 3- 9 TPIU レジス タ

レジス タ名 タ イプ ア ド レス リセッ ト時の値

サポー ト される同期化ポー ト サイ ズ レジス タ

読み出し専用

0xE0040000 0bxx0x

カレ ン ト 同期化ポー ト サイ ズ レジス タ 読み出し / 書き込み

0xE0040004 0x01

非同期ク ロ ッ ク プ リ スケーラ レジス タ 読み出し / 書き込み

0xE0040010 0x0000

選択ピンプロ ト コル レジス タ 読み出し / 書き込み

0xE00400F0 0x01

フ ォーマ ッ タおよびフ ラ ッ シュ ステータ ス レジス タ

読み出し専用

0xE0040300 0x08

3- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 87: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タ

読み出し / 書き込み

0xE0040304 0x00 または

0x102

フ ォーマ ッ タ同期化カ ウ ン タ レジス タ 読み出し専用

0xE0040308 0x00

統合レジス タ : ITATBCTR2 読み出し専用

0xE0040EF0 0x0

統合レジス タ : ITATBCTR0 読み出し専用

0xE0040EF8 0x0

統合モード制御レジス タ 読み出し / 書き込み

0xE0040F00 0x0

統合レジス タ : FIFO データ 0 読み出し専用

0xE0040EEC 0x--000000

統合レジス タ : FIFO データ 1 読み出し専用

0xE0040EFC

0x--000000

ク レーム タ グ セ ッ ト レジス タ 読み出し / 書き込み

0xE0040FA0 0xF

ク レーム タ グ ク リ アレジス タ 読み出し / 書き込み

0xE0040FA4 0x0

デバイ ス ID レジス タ 読み出し専用

0xE0040FCC 0x11

PID4 読み出し専用

0xE0040FD0 0x04

PID5 読み出し専用

0xE0040FD4 0x00

PID6 読み出し専用

0xE0040FD8 0x00

PID7 読み出し専用

0xE0040FDC 0x00

PID0 読み出し専用

0xE0040FE0 0x23

PID1 読み出し専用

0xE0040FE4 0xB9

テーブル 3- 9 TPIU レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 15

アクセス制限な し 公開

Page 88: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

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

エンベデッ ド ト レース マ ク ロセル (ETM) レジス タの概要を、 テーブル 3- 10に示し ます。 ETM レジス タの詳細については、 14 章 Embedded Trace Macrocell を参照し て下さい。

PID2 読み出し専用

0xE0040FE8 0x2B

PID3 読み出し専用

0xE0040FEC 0x00

CID0 読み出し専用

0xE0040FF0 0x0D

CID1 読み出し専用

0xE0040FF4 0x90

CID2 読み出し専用

0xE0040FF8 0x05

CID3 読み出し専用

0xE0040FFC 0xB1

テーブル 3- 9 TPIU レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値

テーブル 3- 10 ETM レジス タ

名前 タ イプ ア ド レス 存在

ETM 制御 読み出し / 書き込み 0xE0041000 はい

コ ンフ ィ ギュ レーシ ョ ン コード 読み出し専用 0xE0041004 はい

ト リ ガイベン ト 書き込み専用 0xE0041008 はい

ASIC 制御 書き込み専用 0xE004100C いいえ

ETM ステータ ス 読み出し専用または読み出し / 書き込み

0xE0041010 はい

システム構成 読み出し専用 0xE0041014 はい

TraceEnable 書き込み専用 0xE0041018、 0xE004101C いいえ

TraceEnable イベン ト 書き込み専用 0xE0041020 はい

3- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 89: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

TraceEnable 制御 1 書き込み専用 0xE0041024 はい

FIFOFULL 領域 書き込み専用 0xE0041028 いいえ

FIFOFULL レベル 書き込み専用または読み出し / 書き込み

0xE004102C はい

ViewData 書き込み専用 0xE0041030 ~ 0xE004103C いいえ

ア ド レ ス コ ンパレータ 書き込み専用 0xE0041040 ~ 0xE004113C いいえ

カ ウ ン タ 書き込み専用 0xE0041140 ~ 0xE004157C いいえ

シーケンサ 読み出し / 書き込み 0xE0041180 ~ 0xE0041194、 0xE0041198 いいえ

外部出力 書き込み専用 0xE00411A0 ~ 0xE00411AC いいえ

CID コ ンパレータ 書き込み専用 0xE00411B0 ~ 0xE00411BC いいえ

実装固有 書き込み専用 0xE00411C0 ~ 0xE00411DC いいえ

同期周波数 読み出し専用 0xE00411E0 はい

ETM ID 読み出し専用 0xE00411E4 はい

コ ンフ ィ ギュ レーシ ョ ン コード拡張機能

読み出し専用 0xE00411E8 はい

拡張外部入力セレ ク タ 書き込み専用 0xE00411EC いいえ

TraceEnable 開始 / 中止エンベデッド ICE

読み出し / 書き込み 0xE00411F0 はい

エンベデッ ド ICE 動作制御 書き込み専用 0xE00411F4 いいえ

CoreSight ト レース ID 読み出し / 書き込み 0xE0041200 はい

OS 保存 / 復元 書き込み専用 0xE0041304 ~ 0xE0041308 いいえ

ITMISCIN 読み出し専用 0xE0041EE0 はい

ITTRIGOUT 書き込み専用 0xE0041EE8 はい

ITATBCTR2 読み出し専用 0xE0041EF0 はい

ITATBCTR0 書き込み専用 0xE0041EF8 はい

統合モード制御 読み出し / 書き込み 0xE0041F00 はい

テーブル 3- 10 ETM レジス タ (続 く )

名前 タ イプ ア ド レス 存在

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 3- 17

アクセス制限な し 公開

Page 90: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システム制御

ク レーム タ グ 読み出し / 書き込み 0xE0041FA0 ~ 0xE0041FA4 はい

ロ ッ ク ア ク セス 書き込み専用 0xE0041FB0 ~ 0xE0041FB4 はい

認証ステータ ス 読み出し専用 0xE0041FB8 はい

デバイ ス タ イプ 読み出し専用 0xE0040FCC はい

ペ リ フ ェ ラル ID 4 読み出し専用 0xE0041FD0 はい

ペ リ フ ェ ラル ID 5 読み出し専用 0xE0041FD4 はい

ペ リ フ ェ ラル ID 6 読み出し専用 0xE0041FD8 はい

ペ リ フ ェ ラル ID 7 読み出し専用 0xE0041FDC はい

ペ リ フ ェ ラル ID 0 読み出し専用 0xE0041FE0 はい

ペ リ フ ェ ラル ID 1 読み出し専用 0xE0041FE4 はい

ペ リ フ ェ ラル ID 2 読み出し専用 0xE0041FE8 はい

ペ リ フ ェ ラル ID 3 読み出し専用 0xE0041FEC はい

コ ンポーネン ト ID 0 読み出し専用 0xE0041FF0 はい

コ ンポーネン ト ID 1 読み出し専用 0xE0041FF4 はい

コ ンポーネン ト ID 2 読み出し専用 0xE0041FF8 はい

コ ンポーネン ト ID 3 読み出し専用 0xE0041FFC はい

テーブル 3- 10 ETM レジス タ (続 く )

名前 タ イプ ア ド レス 存在

3- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 91: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

4 章 メ モ リ マ ッ プ

本章では、 プロセ ッ サに固定の メ モ リ マ ッ プおよびそのビ ッ ト バン ド機能について説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• メ モ リ マ ッ プについて p. 4- 2

• ビ ッ ト バン ド p. 4- 5

• ROM メ モ リ テーブル p. 4- 8

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 4- 1

アクセス制限な し 公開

Page 92: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

4.1 メ モ リ マ ッ プについて

固定の メ モ リ マ ッ プを、 図 4- 1 に示し ます。

図 4- 1 プロセ ッサのメ モ リ マ ッ プ

ベンダ固有

外部デバイス

外部RAM

ペリフェラル

SRAM

コード

0xFFFFFFFF

専用ペリフェラルバス - 外部

0xE01000000xE00FFFFF

0xE003FFFF

0xE0040000

0x9FFFFFFF

0xA0000000

0x5FFFFFFF0x60000000

0x3FFFFFFF

0x40000000

0x1FFFFFFF

0x20000000

0x00000000

ROMテーブル

ETMTPIU

予約

システム制御空間

予約

FPBDWTITM

外部PPB

0xE00FFFFF

0xE0042000

0xE0041000

0xE0040000

0xE003FFFF0xE000F000

0xE000E000

0xE0003000

0xE0002000

0xE00FF000

0x40000000ビットバンド領域

ビットバンドエイリアス32MB

1MB

31MB0x40100000

0x42000000

0x43FFFFFF

0x41FFFFFF

0xE0001000

0xE0000000

専用ペリフェラルバス - 内部

ビットバンド領域

ビットバンドエイリアス32MB

1MB

31MB

0x20000000

0x20100000

0x22000000

0x23FFFFFF

0x21FFFFFF

1.0GB

1.0GB

0.5GB

0.5GB

0.5GB

0xDFFFFFFF0xE0000000

4- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 93: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

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

テーブル 4- 1 メ モ リ イ ン タ フ ェース

メ モ リ マ ッ プ イ ン タ フ ェース

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

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

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

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

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

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

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

専用ペ リ フ ェ ラルバス

次のア ク セスは、 プロセ ッサの内部専用 (PPB) で行われます。 ペ リ フ ェ ラルバス(PPB) で行われます。

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

• ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC)

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

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

• メ モ リ 保護ユニ ッ ト (MPU)

次のア ク セスは、 外部 PPB イ ン タ フ ェース上で行われます。

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

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

• PPB メ モ リ マ ッ プのシステムエ リ ア

メ モ リ 領域は実行不可 (XN) に設定されている ため、 命令フ ェ ッチは禁止です。 MPUがあ る場合でも、 これは変更でき ません。

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

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 4- 3

アクセス制限な し 公開

Page 94: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

プロセ ッ サの メ モ リ 領域のア ク セス許可を、 テーブル 4- 2 に示し ます。

Note

0xE0000000 ~ 0xFFFFFFFF 範囲の専用ペ リ フ ェ ラルバス と システム空間は、 恒久的

に実行不可 (XN) です。 MPU を使って、 これを変更する こ と はでき ません。

プロセ ッ サのバス イ ン タ フ ェースの詳細については、 12 章 Bus Interface を参照し て下さい。

テーブル 4- 2 メ モ リ領域のアクセス許可

名前 領域デバイスのタ イプ

XNキャ ッシュ

コード 0x00000000 ~ 0x1FFFFFFF ノーマル - WT

SRAM 0x20000000 ~ 0x3FFFFFFF ノーマル - WBWA

SRAM_1M +0000000 - - -

SRAM_31M +0100000 - -

SRAM_bitband +2000000 内部 - -

SRAM +4000000 - - -

ペ リ フ ェ ラル 0x40000000 ~ 0x5FFFFFFF デバイ ス XN -

Periph_1IM +0000000 - - -

Periph_31IM +0100000 - - -

Periph_bit band +2000000 内部 - -

ペ リ フ ェ ラル +4000000 - - -

外部 RAM 0x60000000 ~ 0x7FFFFFFF ノーマル - WBWA

外部 RAM 0x80000000 ~ 0x9FFFFFFF ノーマル - WT

外部デバイ ス 0xA0000000 ~ 0xBFFFFFFF デバイ ス XN -

外部デバイ ス 0xC0000000 ~ 0xDFFFFFFF デバイ ス XN -

システム 0xE0000000 ~ 0xFFFFFFFF - XN -

専用ペ リ フ ェ ラル バス +0000000 SO、 共有 XN -

Vendor_SYS +0100000 デバイ ス XN -

4- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 95: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

4.2 ビ ッ ト バン ド

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

メ モ リ マ ッ プは、 2 つの 1MB ビ ッ ト バン ド 領域にマ ッ プされる 2 つの 32MBエイ リ アス領域を持っています。

• 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 のビ ッ ト バン ド 領域 と の間における ビ ッ ト バン ド のマ ッ ピング例を、 図 4- 2 p. 4- 6 に示し ます。

• 0x23FFFFE0 にあ るエイ リ アスのワード は、 0x200FFFFF にあ る ビ ッ ト バン ド の

バイ ト のビ ッ ト [0] にマ ッ プ されます。 0x23FFFFE0 = 0x22000000 + (0xFFFFF*32) + 0*4

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 4- 5

アクセス制限な し 公開

Page 96: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

• 0x23FFFFFC にあ るエイ リ アスのワード は、 0x200FFFFF にあ る ビ ッ ト バン ド の

バイ ト のビ ッ ト [0] にマ ッ プ されます。0x23FFFFFC = 0x22000000 + (0xFFFFF*32) +

7*4

• 0x22000000 にあ るエイ リ アスのワード は、 0x20000000 にあ る ビ ッ ト バン ド の

バイ ト のビ ッ ト [0] にマ ッ プ されます。 0x22000000 = 0x22000000 + (0*32) + 0*4

• 0x2200001C にあ るエイ リ アスのワード は、 0x20000000 にあ る ビ ッ ト バン ド の

バイ ト のビ ッ ト [0] にマ ッ プ されます。 0x2200001C = 0x22000000 + (0*32) + 7*4

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

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

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

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

0x23FFFFE4

0x22000004

0x23FFFFE00x23FFFFE80x23FFFFEC0x23FFFFF00x23FFFFF40x23FFFFF80x23FFFFFC

0x220000000x220000140x220000180x2200001C 0x220000080x22000010 0x2200000C

32MBのエイリアス領域

0

7 0

07

0x200000000x200000010x200000020x20000003

6 5 4 3 2 1 07 6 5 4 3 2 1 7 6 5 4 3 2 1 07 6 5 4 3 2 1

07 6 5 4 3 2 1 6 5 4 3 2 107 6 5 4 3 2 1 07 6 5 4 3 2 1

0x200FFFFC0x200FFFFD0x200FFFFE0x200FFFFF

1MBのSRAMビットバンド領域

4- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 97: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

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

き込みは、 0x0E の書き込みと同じ効果があ り ます。

エイ リ アス領域でのワード の読み出しは、 0x01 または 0x00 を返し ます。 0x01 と

い う 値は、 ビ ッ ト バン ド領域のターゲ ッ ト ビ ッ ト が 1 にセ ッ ト されている こと を示し ます。 0x00 と い う 値は、 ターゲ ッ ト ビ ッ ト が 0 に ク リ ア されている こ

と を示し ます。 読み出しでは、 ビ ッ ト [31:1] は常に 0 です。

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

ビ ッ ト バン ド領域に対し て通常の リ ード やラ イ ト で直接ア ク セス し た り 、 その領域に書き込んだ り する こ と もでき ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 4- 7

アクセス制限な し 公開

Page 98: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

4.3 ROM メ モ リ テーブル

ROM メ モ リ の説明を、 テーブル 4- 3 に示し ます。

テーブル 4- 3 ROM テーブル

オフセッ ト

値 名前 説明

0x000 0xFFF0F003 NVIC 0xE000E000 にあ る NVIC を指し示し ます。

0x004 存在し なければ0xFFF02002、 存在すれば

0xFFF02003

DWT 0xE0001000 にあ るデータ ウ ォ ッチポイ ン ト および ト レース

ブロ ッ ク を指し示し ます。 DWT が搭載されている場合は、 値のビ ッ ト [0] がセ ッ ト されています。

0x008 存在し なければ0xFFF03002、 存在すれば

0xFFF03003

FPB 0xE0002000 にあ る フ ラ ッ シュパッチおよびブレーク ポイ ン

ト ブロ ッ ク を指し示し ます。 FPB が搭載されている場合、 値のビ ッ ト [0] は 1 にセ ッ ト されています。

0x00C 存在し なければ0xFFF02002、 存在すれば

0xFFF02003

ITM 0xE0000000 にあ る計装 ト レース ブロ ッ ク を指し示し ます。

ITM が搭載されている場合は、 値のビ ッ ト [0] がセ ッ トされています。

0x010 存在し なければ0xFFF41002、 存在すれば 0xFFF41003

TPIU TPIU を指し示し ます。 TPIU が搭載されている場合は、値のビ ッ ト [0] がセ ッ ト されています。 TPIU は 0xE0040000に位置し ます。

0x014 存在し なければ0xFFF42002、 存在すれば

0xFFF42003

ETM ETM を指し示し ます。 ETM が搭載されている場合は、値のビ ッ ト [0] がセ ッ ト されています。 ETM は 0xE0041000に位置し ます。

0x018 0 End ROM テーブルの終わ り のマーカです。 CoreSight コ ンポーネン ト が追加されている場合、 コ ンポーネン ト はこの位置から追加され、 End のマーカは追加されたコ ンポーネン ト の後の次の位置に移動されます。

0xFCC 0x1 MEMTYPE ビ ッ ト [31:1] は 0 と し て読み出されます (RAZ)。 (デバッガが) DAP 経由でシステム メ モ リ をア ク セス可能な場合、 ビ ッ ト [0] が 1 にセ ッ ト されます。 DAP を使ってアク セス可能なのがデバッ グ コ ンポーネン ト のみでシステム メ モ リ にア ク セスでき ない場合、 ビ ッ ト [0] は 0 に クリ ア されます。

0xFD0 0x0 PID4 -

0xFD4 0x0 PID5 -

0xFD8 0x0 PID6 -

4- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 99: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

0xFDC 0x0 PID7 -

0xFE0 0x0 PID0 -

0xFE4 0x0 PID1 -

0xFE8 0x0 PID2 -

0xFEC 0x0 PID3 -

0xFF0 0x0D CID0 -

0xFF4 0x10 CID1 -

0xFF8 0x05 CID2 -

0xFFC 0xB1 CID3 -

テーブル 4- 3 ROM テーブル (続 く )

オフセッ ト

値 名前 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 4- 9

アクセス制限な し 公開

Page 100: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ マ ッ プ

4- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 101: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

5 章 例外

本章では、 プロセ ッ サの例外モデルについて説明し ます。 本章は以下のセ クシ ョ ンから構成されています。

• 例外モデルについて p. 5- 2

• 例外のタ イプ p. 5- 4

• 例外の優先度 p. 5- 6

• 特権 と ス タ ッ ク p. 5- 9

• 横取 り p. 5- 11

• テールチェ イ ン p. 5- 15

• 後着 p. 5- 17

• 退出 p. 5- 19

• リ セ ッ ト p. 5- 22

• 例外制御の移行 p. 5- 27

• 複数のス タ ッ クの設定 p. 5- 28

• アボー ト モデル p. 5- 30

• 起動レベル p. 5- 35

• フ ローチャー ト p. 5- 37

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 1

アクセス制限な し 公開

Page 102: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.1 例外モデルについて

プロセ ッ サ と ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC) はすべての例外に優先度を付けて処理し ます。 すべての例外はハン ド ラモード で処理されます。プロセ ッ サの状態は、 例外の発生時に自動的にス タ ッ クに保存され、 割 り 込み処理ルーチン (ISR) の終了時に自動的にス タ ッ ク から復元されます。 割 り 込みへのエン ト リ を効率的にするため、 ベク タのフ ェ ッ チは状態の保存と並行し て行われます。 プロセ ッ サはテールチェ イ ンをサポー ト し ているため、 状態の保存と 復元のオーバヘッ ド な しに連続し た割 り 込みが可能です。 次に示す機能によ り 、 効率的でレ イ テンシの短い割 り 込み処理が可能になっています。

• 自動的な状態の保存 と復元。 プロセ ッ サは ISR へ入る前にレジス タ を スタ ッ ク にプ ッ シ ュ し、 ISR の退出時にポ ッ プし ます。 これらの処理に命令オーバヘッ ド は発生し ません。

• 自動的なベク タ テーブルのエン ト リ 読み出し。 こ こには、 コード メ モ リやデータ SRAM にあ る ISR のア ド レ スが存在し ます。 こ の処理は状態の保存 と並行し て行われます。

Note

ベク タ テーブルのエン ト リ は ARM/Thumb イ ン タ ワーキング互換です。

こ のため、 ベク タの値のビ ッ ト [0] は例外の開始時に EPSR の T ビ ッ トにロード されます。 ビ ッ ト [0] が ク リ ア されたテーブルエン ト リ を作成する と、 そのベク タに対応するハン ド ラの 初の命令で INVSTATEフ ォール ト が生成されます。

• テールチェ イ ンをサポー ト 。 テールチェ イ ンでは、 プロセ ッ サは ISR とISR と の間でレジス タのポ ッ プ と プ ッ シ ュ を行わず、 連続し て割 り 込みを処理し ます。

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

• プロセ ッ サコ ア と NVIC と の間の密接な イ ン タ フ ェースによ り 、 割 り 込みの早期処理 と、 高い優先度を持つ後着割 り 込みの処理が可能

• 割 り 込みの数は 1 ~ 240 で構成可能

• 割 り 込み優先度の番号は 3 ~ 8 ビ ッ ト で構成可能 (8 ~ 256 レベル)

• ハン ド ラモード と ス レ ッ ド モード のための、 独立し たス タ ッ ク と特権レベル

• ARM アーキテ クチャプロ シージ ャ呼び出し標準 (AAPCS) で、 C/C++ 標準の呼び出し規則を使用し た ISR 制御の移行

• ク リ テ ィ カル領域をサポー ト する優先度マス ク

5- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 103: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

Note

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

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 3

アクセス制限な し 公開

Page 104: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.2 例外のタ イプ

プロセ ッ サには、 各種の例外が存在し ます。 フ ォール ト は、 命令の実行によ ってエラー条件が発生し た こ と によ る例外です。 フ ォール ト は、 原因となった命令 と同期報告される こ と も あれば、 非同期に報告される こ と も あ ります。 一般的にはフ ォール ト は同期し て報告されます。 不正確なバス フ ォール ト は、 ARMv7-M プロ フ ァ イルでサポー ト されている非同期フ ォール ト です。 同期フ ォール ト は常に、 フ ォール ト の原因 と なった命令 と と もに報告されます。 非同期フ ォール ト では、 フ ォール ト の原因と なった命令に関し て、どのよ う に報告されるかの保証はあ り ません。

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

例外のタ イプ、 位置、 優先度を、 テーブル 5- 1 に示し ます。 位置は、 ベク タテーブルの先頭から計算し たワード オフセ ッ ト を意味し ています。 優先度の列では、 小さい数値が高い優先度を示し ています。 各タ イプの例外がどのよう にア ク テ ィ ブにな るか、 同期か非同期か も示されています。 優先度の正確な意味と使用法については、 例外の優先度 p. 5- 6 を参照し て下さい。

テーブル 5- 1 例外のタ イプ

例外のタ イプ 位置 優先度 説明

- 0 - リ セ ッ ト 時に、 ベク タ テーブルの 初のエン ト リ から ス タ ッ ク の先頭がロード されます。

リ セ ッ ト 1 -3 ( 高) 電源投入時 と ウ ォーム リ セ ッ ト 時に呼び出されます。初の命令で 低の優先度に落 と されます (ス レ ッ

ド モード)。 この例外は非同期です。

マス ク不能割 り 込み 2 –2 リ セ ッ ト 以外のどの例外によ って も、 中断も横取 りもでき ません。 この例外は非同期です。

ハード フ ォール ト 3 –1 優先度の関係で、 または構成可能なフ ォール ト のハン ド ラが無効にされているためにフ ォール ト を発生でき ない と きの、 すべてのク ラ スのフ ォール ト 。 この例外は同期です。

メ モ リ 管理 4 構成可能a メ モ リ 保護ユニ ッ ト (MPU) の不整合。 これにはア クセス違反 と不一致が含まれます。 この例外は同期です。 この例外は、 デフ ォル ト の メ モ リ マ ッ プの実行不可 (XN) 領域をサポー ト する ため、 MPU が無効にされているか存在し ない と きでも使用されます。

5- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 105: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

バス フ ォール ト 5 構成可能 a プ リ フ ェ ッチフ ォール ト 、 メ モ リ ア ク セス フ ォールト 、 その他のア ド レ スや メ モ リ 関連のフ ォール ト 。この例外は正確な場合は同期、 不正確な場合は非同期です。

用法フ ォール ト 6 構成可能 a 用法フ ォール ト 、 例えば未定義命令の実行や不正な状態への遷移の試み。 この例外は同期です。

- 7-10 - 予約

SVCall 11 構成可能 SVC 命令によ る システムサービ ス呼び出し。 この例外は同期です。

デバッ グモニタ 12 構成可能 ホール ト 中でない と きのデバッ グモニタ。 この例外は同期ですが、 許可されている と きのみア ク テ ィ ブにな り ます。 現在ア ク テ ィ ブな ものよ り 優先度が低い場合はア ク テ ィ ブにな り ません。

- 13 - 予約

PendSV 14 構成可能 システムサービ スへの保留可能な要求。 この例外は非同期で、 ソ フ ト ウ ェアによ ってのみ保留されます。

SysTick 15 構成可能 システム タ イマの報知。 この例外は非同期です。

外部割 り 込み 16 以上 構成可能 コ アの外部 (INTISR[239:0]) から アサー ト され、 NVIC経由で (優先度付け されて) 供給されます。 これらの例外はすべて非同期です。

a. こ の例外の優先度は変更可能です。 システムハン ド ラ優先度レジス タのビ ッ ト 割 り 当て p. 8- 31 を参照し て下さ

い。 設定可能なのは 0 ~ N までの NVIC 優先度の値で、 N は実装されている 大の優先度です。 内部的には、

ユーザが設定可能な 高の優先度 (0) は 4 と し て扱われます。 このフ ォール ト は使用可能にも禁止にもでき ま

す。 システムハン ド ラ制御および状態レジス タのビ ッ ト 割 り 当て p. 8- 32 を参照し て下さい。

テーブル 5- 1 例外のタ イプ (続 く )

例外のタ イプ 位置 優先度 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 5

アクセス制限な し 公開

Page 106: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.3 例外の優先度

プロセ ッ サが例外を処理する時期 と方法に優先度が与え る影響を、 テーブル 5- 2 に示し ます。 こ の表には、 例外が優先度に応じ てどのよ う な動作を行う かが一覧表示されています。

プロセ ッ サの例外モデルでは、 プロセ ッ サが例外を処理する時期と方法は、優先度によ って決定されます。 以下を実行する こ と ができ ます。

• 割 り 込みに ソ フ ト ウ ェ アの優先度レベルを割 り 当てる。

• 優先度レベルを横取 り 優先度と サブ優先度と に分け、 優先度をグループ化する。

テーブル 5- 2 優先度に応じ た例外の動作

動作 説明

横取 り 新しい例外が現在の例外優先度やス レ ッ ド よ り も高い優先度を持っていて、 現在のフ ローに割 り 込みます。

これは保留中の割 り 込みへの応答で、 保留中の割 り 込みがア ク テ ィ ブな ISR やス レ ッ ド よ りも優先度が高い場合に、 ISR が開始される こ と にな り ます。 あ る ISR が別の ISR を横取 り し た場合、 割 り 込みがネス ト されます。

例外の開始時にプロセ ッ サは自動的にプロセ ッ サ状態を ス タ ッ クにプ ッ シュ し て、 保存し ます。 この動作 と並行し て、 割 り 込みに対応するベク タがフ ェ ッチされます。 ISR の 初の命令の実行は、 プロセ ッ サの状態が保存され、 ISR の 初の命令がプロセ ッ サのパイプラ イ ンの実行ステージに入った時点で開始されます。 状態の保存は、 システムバスおよび DCode バス経由で行われます。 ベク タ フ ェ ッチは、 ベク タ テーブルの場所に応じ て、 システムバスかICode バスのいずれかを経由し て行われます。 これについては、 ベク タ テーブルオフセ ッ ト レジス タ p. 8- 22 を参照し て下さい。

テールチェイ ン

プロセ ッ サが割 り 込み処理を高速化する ために使用する機構。 ISR の完了時に、 ISR または復帰先のス レ ッ ド よ り も優先度が高い保留中の割 り 込みが存在すれば、 ス タ ッ クのポ ッ プを スキ ッ プし て、 新しい ISR に制御が移されます。

復帰 保留中の例外がない場合や、 ス タ ッ ク されている ISR よ り も優先度の高い保留中の例外が存在し ない場合、 プロセ ッ サはス タ ッ ク をポ ッ プし てス タ ッ ク された ISR やス レ ッ ド モード に復帰し ます。

ISR の完了時に、 プロセ ッサは自動的にス タ ッ ク をポ ッ プし て、 ISR の開始の原因 と なった割り 込みが発生する前の時点にプロセ ッ サの状態を復元し ます。 状態の復元中に新しい割 り 込みが到着し、 その割 り 込みの優先度が ISR や復帰先のス レ ッ ド よ り も高い場合、 状態の復元は中止され、 新しい割 り 込みがテールチェ イ ン と し て処理されます。

後着 プロセ ッ サの横取 り を高速化するために使用される機構。 前の横取 り によ る状態保存の間に、よ り 高い優先度の割 り 込みが到着し た場合、 プロセ ッ サはよ り 高い優先度の割 り 込みの処理に切 り 替わ り 、 その割 り 込みのベク タ フ ェ ッチを開始し ます。 状態の保存はどち らの割 り 込みについて も同じ なので、 後着割 り 込みの影響を受けずに状態の保存が続行されます。 後着割 り 込みは、 ISR の 初の命令がプロセ ッサパイプラ イ ンの実行ステージに入る まで有効です。 復帰時には、 テールチェ イ ンの通常の規則が適用されます。

5- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 107: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.3.1 優先度レベル

NVIC は、 ソ フ ト ウ ェ アで割 り 当て る優先度レベルをサポー ト し ています。 割り 込み優先度レジス タの 8 ビ ッ ト の PRI_N フ ィ ール ド に値を書き込むこ と で、割 り 込みに 0 ~ 255 の優先度レベルを割 り 当て る こ と ができ ます。 詳細については割 り 込み優先度レジス タ p. 8- 17 を参照し て下さい。 ハード ウ ェ ア優先度は、 割 り 込み番号が大き く な るほど優先度が低 く な り ます。 優先度レベル 0 は も高い優先度レベルを、 優先度レベル 255 は も低い優先度レベルを意味し ます。 この優先度レベルは、 ハード ウ ェ ア優先度よ り 優先されます。例えば、 IRQ[0] に優先度レベル 1 を、 IRQ[31] に優先度レベル 0 を割 り 当てた場合、 IRQ[31] の優先度が IRQ[0] よ り も高 く な り ます。

Note

ソ フ ト ウ ェ アによ る優先度付けは、 リ セ ッ ト 、 マス ク不能割 り 込み (NMI)、ハード フ ォール ト には影響し ません。 これらは常に、 外部割 り 込みよ り も高い優先度で処理されます。

複数の割 り 込みについて優先度番号が同じ場合、 も低い割 り 込み番号を持つ保留中の割 り 込みが優先されます。 例えば、 IRQ[0] と IRQ[1] が両方と も優先度レベル 1 の場合、 IRQ[0] が IRQ[1] よ り も優先されます。

PRI_N フ ィ ール ド の詳細については、 割 り 込み優先度レジス タ p. 8- 17 を参照し て下さい。

5.3.2 優先度のグループ化

多数の割 り 込みの優先度をシステムで適切に制御する ため、 NVIC では優先度のグループ化がサポー ト されています。 アプ リ ケーシ ョ ン割 り 込みおよび リセ ッ ト 制御レジス タ p. 8- 24 に示す PRIGROUP フ ィ ール ド を使用し て、 すべての PRI_N フ ィ ール ド の値を横取 り 優先度フ ィ ール ド と サブ優先度フ ィ ールド に分割する こ と ができ ます。 横取 り 優先度グループは、 グループ優先度と呼ばれます。 複数の保留中の例外が同じ グループ優先度を共有し ている場合、グループ内の優先度はサブ優先度ビ ッ ト フ ィ ール ド によ って解決されます。これを、 グループ内のサブ優先度と呼びます。 グループ優先度と サブ優先度と の組み合わせが、 一般に優先度と呼ばれます。 2 つの保留中の例外があ り 、優先度が同じ場合、 例外番号の低いものが高いものよ り 優先されます。 これは、 優先度の順位決定体系と整合し ています。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 7

アクセス制限な し 公開

Page 108: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

PRIGROUP への書き込みによ り 、 8 ビ ッ ト の PRI_N フ ィ ール ド がどのよ う に横取 り 優先度フ ィ ール ド (x) と サブ優先度フ ィ ール ド (y) に分割されるかをテーブル 5- 3 に示し ます。

Note

• 8 ビ ッ ト の優先度で構成されたプロセ ッ サの優先度を、 テーブル 5- 3 に示し ます。

• 8 ビ ッ ト よ り 少ない優先度で構成されたプロセ ッ サの場合、 レジス タの下位ビ ッ ト は常に 0 です。 例えば、 4 ビ ッ ト の優先度が実装されている場合は、 PRI_N[7:4] で優先度が設定され、 PRI_N[3:0] は 4'b0000 にな り ます。

割 り 込みが進行中の他の割 り 込みを横取 り でき るのは、 横取 り 優先度が進行中の割 り 込みの ものよ り も高い場合のみです。

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

テーブル 5- 3 優先度のグループ化

割り込み優先度レベルフ ィ ールド、 PRI_N[7:0]

PRIGROUP[2:0] 2 進小数点の位置 横取り フ ィ ールド サブ優先度フ ィ ールド 横取り優先度の数 サブ優先度の数

b000 bxxxxxxx.y [7:1] [0] 128 2

b001 bxxxxxx.yy [7:2] [1:0] 64 4

b010 bxxxxx.yyy [7:3] [2:0] 32 8

b011 bxxxx.yyyy [7:4] [3:0] 16 16

b100 bxxx.yyyyy [7:5] [4:0] 8 32

b101 bxx.yyyyyy [7:6] [5:0] 4 64

b110 bx.yyyyyyy [7] [6:0] 2 128

b111 b.yyyyyyyy な し [7:0] 0 256

5- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 109: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.4 特権と ス タ ッ ク

プロセ ッ サは、 次の 2 つの独立し たス タ ッ ク をサポー ト し ています。

プロセス ス タ ッ ク

ス レ ッ ド モード でプロセス ス タ ッ ク を使用する よ う に構成できます。 リ セ ッ ト 以降、 ス レ ッ ド モー ド は メ イ ン ス タ ッ ク を使用し ています。 SP_process は、 プロセス ス タ ッ ク用のス タ ッ ク ポ イン タ (SP) レジス タです。

メ イ ン ス タ ッ ク

ハン ド ラモード は メ イ ン ス タ ッ ク を使用し ます。 SP_main は、 メイ ン ス タ ッ ク用の SP レジス タです。

どの時点で も、 可視になっているのはプロセス ス タ ッ ク または メ イ ン ス タ ックのいずれか 1 つです。 8 つのレジス タ をプ ッ シ ュ し た後で、 ISR は メ イ ン スタ ッ ク を使用し、 以後の割 り 込みの横取 り もすべて メ イ ン ス タ ッ ク を使用します。 コ ンテキス ト を保存する ためのス タ ッ クは次の とお り です。

• ス レ ッ ド モード は、 CONTROL のビ ッ ト [1] の値に従って、 メ イ ン スタ ッ ク またはプロセス ス タ ッ ク のいずれかを使用し ます。 CONTROL[1] には、 ステータ ス レジス タに移動 (MSR) またはステータ スから レジス タへの移動 (MRS) でア ク セス可能です。 ISR を退出する と き、 適切なEXC_RETURN の値によ って、 こ のビ ッ ト をセ ッ ト する こ と もでき ます。ユーザス レ ッ ド を横取 り する例外は、 ス レ ッ ド モード が使用し ている スタ ッ ク に、 ユーザス レ ッ ド のコ ンテキス ト を保存し ます。

• すべての例外は、 自分のローカル変数用に メ イ ン ス タ ッ ク を使用し ます。

ス レ ッ ド モード にはプロセス ス タ ッ ク を、 例外には メ イ ン ス タ ッ ク を使用する こ と で、 オペレーテ ィ ング システム (OS) のスケジ ュー リ ングをサポー トし ます。 再スケジ ュールを行 う と き、 カーネルはハード ウ ェ アによ ってプ ッシュ されない 8 つのレジス タ (r4 ~ r11) を保存し、 SP_process を ス レ ッ ド制御ブロ ッ ク (TCB) にコ ピーするだけで済みます。 仮にプロセ ッ サが メ イ ン スタ ッ ク にコ ンテキス ト を保存する と想定し た場合、 カーネルは 16 のレジス タを TCB にコ ピーする必要があ り ます。

Note

MSR および MRS 命令は、 両方のス タ ッ クが可視でア ク セスでき ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 9

アクセス制限な し 公開

Page 110: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.4.1 ス タ ッ ク

ス タ ッ ク のモデルは特権のモー ド と独立し ています。 つま り 、 ス レ ッ ド モード はプロセス ス タ ッ ク と メ イ ン ス タ ッ ク のどち らで も使用でき、 またユーザモード と特権モー ド のどち ら も可能です。 ス タ ッ ク と特権の 4 つの組み合わせが、 いずれも可能です。 基本的な保護されたス レ ッ ド モデルでは、 ユーザス レ ッ ド はプロセス ス タ ッ ク を使用し てス レ ッ ド モード で実行され、 カーネルおよび割 り 込みは メ イ ン ス タ ッ ク を使用し て特権モード で実行されます。

Note

特権のみでは、 悪意によ る または事故によ る ス タ ッ ク の破壊を防止でき ません。 ユーザコード を分離する ため、 何らかの形式の メ モ リ 保護方式が 1 つか2 つは必要です。 つま り 、 ユーザコード が他のス タ ッ ク など、 自分の所有していない メ モ リ に書き込むこ と を防止する必要があ り ます。

5.4.2 特権

特権はア ク セス権を制御する もので、 ARMv7-M の他のすべての概念と分離されています。 コード は、 特権 と なって完全なア ク セス権を持つこ と も、 非特権で制限されたア ク セス権を持つこ と もでき ます。 次のよ う な操作を行えるかど う かは、 ア ク セス権によ り 決定されます。

• MSR フ ィ ール ド など、 特定の命令の使用または不使用。

• システム制御空間 (SCS) レジス タへのア ク セス。

• システムの設計に基づいて、 メ モ リ やペ リ フ ェ ラルへのア ク セス。 プロセ ッ サはシステムに対し て、 ア ク セス を行っている コード が特権コードかど う かを通知し、 システムはそれに基づいて非特権のア ク セスに対して制限を加え る こ と ができ ます。

• MPU に基づ く 、 メ モ リ 位置へのア ク セス規則。 MPU が搭載されている場合、 ア ク セス制限によ って読み出し、 書き込み、 実行が可能な メ モ リを制御でき ます。

非特権モー ド にする こ と ができ るのはス レ ッ ド モード のみです。 例外はすべて特権モー ド です。

5- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 111: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.5 横取り

以下のセ ク シ ョ ンでは、 プロセ ッ サが例外を取得し た と きの動作について説明し ます。

• ス タ ッ ク操作

• 後着 p. 5- 17

• テールチェ イ ン p. 5- 15

5.5.1 ス タ ッ ク操作

プロセ ッ サは、 例外を呼び出す と きに、 次の 8 つのレジス タ を自動的にこ の順序で SP に保存し ます。

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

• プロ グ ラ ム ステータ ス レジス タ (xPSR)

• r0 ~ r3

• r12

• リ ン ク レジス タ (LR)

ス タ ッ クのプ ッ シ ュが完了する と、 SP は 8 ワード減ら されます。 例外によ って現在のプロ グ ラ ムフ ローが横取 り された後のス タ ッ ク の内容を、 図 5- 1 に示し ます。

図 5- 1 横取り後のス タ ッ クの内容

Note

• 図 5- 1 に示されているのは、 ス タ ッ ク での順序です。

• 構成制御レジス タの STKALIGN がセ ッ ト されている場合、 ス タ ッ ク処理が行われる前に追加ワード を挿入でき ます。 構成制御レジス タ p. 8- 28 を参照し て下さい。

古 いSP

SP

xPSRPCLRr12r3r2r1r0

<以前の 内容>

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 11

アクセス制限な し 公開

Page 112: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

ISR からの復帰後に、 プロセ ッ サは 8 つのレジス タ を ス タ ッ ク から自動的にポ ッ プし ます。 割 り 込みからの復帰は LR 中のデータ フ ィ ール ド と し て渡される ため、 ISR 機能を通常の C/C++ 関数と し て作成でき、 ベニアを必要 と しません。

プロセ ッ サが ISR を開始する前に実行する手順を、 テーブル 5- 4 に示し ます。

例外開始のタ イ ミ ング例を、 図 5- 2 p. 5- 13 に示し ます。

テーブル 5- 4 例外の開始手順

動作 やり直し可能か 説明

8 つのレジス タ をプ ッシュa

不可 xPSR、 PC、 r0、 r1、 r2、 r3、 r12、 LR を選択されているス タ ッ ク にプ ッ シュ し ます。

ベク タ テーブルの読み出し

可。 後着例外によ りや り 直しになる こ とがあ り ます。

テーブルのベース + (例外番号 × 4) のア ド レ スからベク タテーブルを読み出し ます。 ICode バスで読み出すと同時に、 DCode バスでレジス タのプッ シュ を実行でき ます。

ベク タ テーブルから SPを読み出し

不可 リ セッ ト 時のみ、 SP の値を、 ベク タテーブルから読み出したス タ ッ クの先頭に更新し ます。 他の例外は、 ス タ ック選択、 プッ シュ、 ポップを除いて、 SP を変更し ません。

PC の更新 不可 ベク タ テーブルから読み出し た値に PC を更新し ます。後着例外は、 初の命令の実行が開始される まで処理でき ません。

パイプラ イ ンのロード 可。 横取 り が発生する と、 新たに読み出されたベク タ テーブルでパイプラ イ ンが再びロード されます。

ベク タ テーブルが指し示す場所から命令を ロード し ます。 こ の処理は、 レジス タのプ ッ シ ュ と並行し て行われます。

LR の更新 不可 例外から退出のため、 LR が EXC_RETURN に設定されます。 EXC_RETURN は、 『ARMv7-M アーキテ クチャ リフ ァ レ ン スマニュ アル』 で定義されている 16 の値のいずれかです。

a. テールチェ イ ンの場合、 こ の手順はスキ ッ プ されます。

5- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 113: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

図 5- 2 例外開始のタ イ ミ ング

NVIC は、 INTISR[2] が受信された後のサイ クルで、 割 り 込みが受信された こと をプロセ ッ サコ アに通知し ます。 プロセ ッ サコ アはその後のサイ クルで、ス タ ッ クへのプ ッ シ ュ とベク タのフ ェ ッチ と を開始し ます。

ス タ ッ クへのプ ッ シ ュが完了する と、 ISR の 初の命令がパイプラ イ ンの実行ステージに入 り ます。 ISR の実行が開始されるサイ クルに、 次の信号が出力されます。

• ETMINSTAT[2:0] は ISR が開始された こ と を示し ます (3'b001)。 これは 1サイ クルのパルスです。

• CURRPRI[7:0] は、 ア ク テ ィ ブな割 り 込みの優先度を示し ます。CURRPRI は ISR の継続期間中ずっ と アサー ト 状態に維持されます。CURRPRI は、 ETMINTSTAT によ って ISR の開始が示された と き (3'b001)に有効にな り ます。

• ETMINTNUM[8:0] は、 ア ク テ ィ ブな割 り 込みの番号を示し ます。ETMINTNUM は ISR の継続期間中ずっ と アサー ト 状態に維持されます。ETMINTNUM は、 ETMINTSTAT によ って ISR の開始が示された と き(3'b001) に有効にな り ます。 それ以前は、 この信号はどの ISR がフ ェ ッチされているかを示し ます。

ETMINSTAT[2:0]

CLK

ETMINTNUM[8:0]

HADDRS[31:0]

HWDATAS[31:0]

HADDRI[31:0]

HRDATAI[31:0]

PC r0 r1 r2 r3 r12 LR

100 104 108

100

ISRフェッチ ハンドラフェッチ

CURRPRI[7:0] 2

ISR開始まで12サイクルのレイテンシISRの最初の命令が

実行ステージに入る

000 100 001 000

18 18

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

INTISR[2]SP+18

SP+1C

SP+0

SP+4

SP+8

SP+C

SP+10

SP+14

xPSR0x48

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 13

アクセス制限な し 公開

Page 114: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

図 5- 2 では、 割 り 込みのアサー ト から ISR の 初の命令が実行される まで、12 サイ クルのレ イ テンシがあ る こ と が示されています。

5- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 115: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.6 テールチ ェ イ ン

テールチェ イ ンは、 割 り 込みと割 り 込みと の間で状態保存および復元のオーバヘッ ド を伴わない連続割 り 込み処理です。 プロセ ッ サは、 1 つの ISR を退出し て別の ISR の実行を開始する と き、 8 つのレジス タ をポ ッ プし てまた 8つのレジス タ をプ ッ シュする と い う 操作を省き ます。 こ のよ う な処理を し ても ス タ ッ ク の内容には何も影響を与えないからです。

プロセ ッ サは、 保留中の割 り 込みが、 ス タ ッ ク されている どの例外よ り も優先度が高い と き、 テールチェ イ ンを行います。

テールチェ イ ンの例を、 図 5- 3 に示し ます。 保留中の割 り 込みが、 ス タ ッ クされている も優先度が高い例外よ り も さ らに優先度が高い場合、 ス タ ッ クのプ ッ シュ と ポ ッ プは省略され、 プロセ ッ サは保留中の割 り 込みのベク タ を直ちにフ ェ ッチし ます。 テールチェ イ ン される ISR は、 前の ISR の終了から 6サイ クル後に実行開始されます。

図 5- 3 テールチ ェ イ ンのタ イ ミ ング

後の ISR からの復帰時に、 INTISR[2] の優先度が、 ス タ ッ ク されている どのISR や他の保留中の割 り 込みよ り も高いため、 プロセ ッ サは INTISR[2] に対応する ISR へテールチェ イ ンを行います。 INTISR[2] に対応する ISR の実行が開始されるサイ クルに、 次の信号が出力されます。

• ETMINSTAT[2:0] は ISR が開始された こ と を示し ます (3'b001)。 これは 1サイ クルのパルスです。

• CURRPRI[7:0] は、 ア ク テ ィ ブな割 り 込みの優先度を示し ます。CURRPRI は ISR の継続期間中ずっ と アサー ト 状態に維持されます。

• ETMINTNUM[8:0] は、 ア ク テ ィ ブな割 り 込みの番号を示し ます。ETMINTNUM は ISR の継続期間中ずっ と アサー ト 状態に維持されます。

ETMINSTAT[2:0]

CLK

ETMINTNUM[8:0]

HADDRI[31:0]

HRDATAI[31:0]

CURRPRI[7:0] 01

000 100

17

ISRの最後の命令フェッチ(BX LR)

0x104

INTISR[2]

010

02

0x108

18

001

0x48 0x100

0x100

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 15

アクセス制限な し 公開

Page 116: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

図 5- 3 は、 前の ISR から復帰し た後、 新しい ISR の実行までのレ イ テンシが6 サイ クルであ る こ と を示し ています。

5- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 117: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.7 後着

後着割 り 込みは、 先行する ISR の 初の命令がまだ実行ステージに入っておらず、 後着割 り 込みの優先度が先行する割 り 込みよ り も高い場合に、 前の割り 込みを横取 り でき ます。

後着割 り 込みによ って、 新しいベク タ ア ド レ スのフ ェ ッチ と ISR のプ リフ ェ ッチが行われます。 状態保存は、 後着割 り 込みについては行われません。これは、 初の割 り 込みによ ってすでに状態保存が行われている ため、 繰 り返し実行する必要がないからです。

後着割 り 込みの例を、 図 5- 4 に示し ます。

図 5- 4 後着例外のタ イ ミ ング

図 5- 4 で、 INTISR[8] は INTISR[2] を横取 り し ます。 状態保存は INTISR[2] に対し てすでに行われている ため、 繰 り 返す必要はあ り ません。 図 5- 4 は、INTISR[2] の ISR の 初の命令が実行ステージに入る前の、 INTISR[8] が横取り でき る 後の時点を示し ています。 こ の時点よ り 後に、 よ り 高い優先度の割 り 込みが発生する と、 横取 り と し て管理されます。

CURRPRI[7:0]

HRDATAI[31:0]

INTISR[2]

INTISR[8]

INTISR[9]

HADDRS[31:0]

HWDATAS[31:0]

HADDRI[31:0]

CLK

PC r0 r1 r2 r12r3 LR

100 500 504 600 604 608

100 500 600

ISR6のフェッチ ISR12のフェッチ

ISRの最初の命令が

実行ステージに入る

1 2 3 64 5 7 8 9 1210 11 13 14 15 16 1917 18 20 21 2422 23 25

ETMINSTAT[2:0]

ETMINTNUM[8:0]

000 100 000001

ISR開始まで

8サイクルのレイテンシ

018 024 025

104 108

FF

ISR15のフェッチ

09

SP+18

SP+1C

SP+0

SP+4

SP+8

SP+C

SP+10

SP+14

xPSR0x48 0x60 0x64

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 17

アクセス制限な し 公開

Page 118: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

図 5- 4 p. 5- 17 は、 INTISR[8] に対する ISR の 初の命令がフ ェ ッチステージに入る前の、 INTISR[9] が横取 り でき る 後の時点を示し ています。 INTISR[9] が受信される と INTISR[8] に対する ISR のフ ェ ッ チはアボー ト され、 プロセ ッサは INTISR[9] に対するベク タのフ ェ ッ チを開始し ます。 こ の時点よ り 後に、よ り 高い優先度の割 り 込みが発生する と、 横取 り と し て管理されます。

INTISR[9] に対応する ISR の実行が開始されるサイ クルに、 次の信号が出力されます。

• ETMINSTAT[2:0] は ISR が開始された こ と を示し ます (3'b001)。 これは 1サイ クルのパルスです。

• CURRPRI[7:0] は、 ア ク テ ィ ブな割 り 込みの優先度を示し ます。CURRPRI は ISR の継続期間中ずっ と アサー ト 状態に維持されます。

• ETMINTNUM[8:0] は、 ア ク テ ィ ブな割 り 込みの番号を示し ます。ETMINTNUM は ISR の継続期間中ずっ と アサー ト 状態に維持されます。

5- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 119: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.8 退出

ISR の 後の命令は、 PC に 0xFFFFFFFX を ロー ド し ます。 これは、 例外開始時

の LR の値です。 こ の動作は、 ISR が完了し た こ と をプロセ ッ サに通知し、 プロセ ッ サは例外退出シーケン ス を開始し ます。 プロセ ッ サが ISR から復帰する ために使用でき る命令については、 プロセ ッ サの ISR からの復帰 p. 5- 20 を参照し て下さい。

5.8.1 例外退出

例外から復帰する と き、 プロセ ッ サは次のいずれかの動作を行います。

• 保留中の例外が、 ス タ ッ ク されている どの例外よ り も優先度が高い場合、 テールチェ イ ンが行われます。

• 保留中の例外がない場合、 またはス タ ッ ク されている例外の う ち も高い優先度の ものが、 保留中の例外の う ち も高い優先度のものよ り も優先度が高い場合、 後にス タ ッ ク された ISR への復帰が行われます。

• 保留中またはス タ ッ ク されている例外が存在し ない場合、 ス レ ッ ド モードへの復帰が行われます。

コ ンテキス ト の復元のシーケン ス を、 テーブル 5- 5 に示し ます。

例外退出のタ イ ミ ング例を、 図 5- 5 p. 5- 20 に示し ます。

テーブル 5- 5 例外の退出手順

動作 説明

8 つのレジス タ をポ ッ プ 横取 り が行われない場合、 EXC_RETURN によ って選択されている スタ ッ ク から PC、 xPSR、 r0、 r1、 r2、 r3、 r12、 LR をポ ッ プし、 SP を調整し ます。

現在ア ク テ ィ ブな割 り 込み番号a

を ロード し、 逆方向のス タ ッ ク アラ イ メ ン ト 調整

現在ア ク テ ィ ブな割 り 込み番号を、 ス タ ッ ク されている IPSR のワードのビ ッ ト [8:0] から ロード し ます。 プロセ ッサはこ の番号を使用し て、どの例外へ復帰するかを追跡し、 復帰時にア ク テ ィ ブを示すビ ッ ト をク リ ア し ます。 ビ ッ ト [8:0] が 0 の場合、 プロセ ッサはス レ ッ ド モードへ復帰し ます。

SP を選択 例外へ復帰する場合、 SP は SP_main です。 ス レ ッ ド モードへ復帰する場合、 SP は SP_main または SP_process です。

a. 動的な優先度の変更があ る ため、 NVIC は割 り 込み優先度ではな く 割 り 込み番号を使用し て、 どの ISR が現在の

ものかを判定し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 19

アクセス制限な し 公開

Page 120: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

図 5- 5 例外退出のタ イ ミ ング

ETMINSTAT は次の内容を意味し ています。

• 3'b010 の場合、 ISR が退出し た こ と を示し ます。 ETMINTNUM は、 退出し た ISR の番号を示し ます。

• 前にス タ ッ ク された ISR へ復帰する場合、 割 り 込み退出後のサイ クルで3'b011 にな り ます。 ETMINTNUM は、 復帰先の割 り 込みの番号を示し ます。

Note

ス タ ッ ク のポ ッ プ中に、 よ り 優先度の高い例外が発生し た場合、 プロセ ッ サはス タ ッ クのポ ッ プを中止し、 ス タ ッ ク ポ イ ン タ を元に戻し てから、 テールチェ イ ン と し て例外の処理を行います。

5.8.2 プロセ ッサの ISR からの復帰

例外からの復帰は、 次のいずれかの命令によ って PC に値 0xFFFFFFFX がロー ド

された と きに発生し ます。

• PC のロード を含む POP/LDM

• PC を転送先とする LDR

• 任意のレジス タでの BX (分岐と状態遷移)

CLK

HADDRI[31:0]

HRDATAI[31:0]

HADDRS[31:0]

HRDATAS[31:0]

SP+0 SP+4 SP+8 SP+C

PC xPSR r0 r1 r2 r3 r12 LR

ISRの最後の命令フェッチ(BX LR)

CURRPRI[7:0]

ETMINSTAT[2:0]

ETMINTNUM[8:0]

000

34

09

010 000 011

FF

000

00

SP+18

SP+1C SP+10

SP+14

PCPC+4

PC+8

PC+12

PC+16

I0 I1 I2 I3

5- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 121: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

この方法で使用される場合、 PC に書き込まれる値は途中で介在を受け、EXC_RETURN 値と呼ばれます。 EXC_RETURN[3:0] は、 テーブル 5- 6 に定義されて

いる よ う に復帰情報を示し ます。

この表に含まれている予約の項目を使 う と、 用法フ ォール ト への連鎖的な例外を引き起こ し ます。

EXC_RETURN の値を PC にロード するのが (例外からの復帰でな く ) ス レ ッド モード の場合、 ベク タ テーブルからの場合、 または他の命令によ る ものであ る場合、 その値は特別な値ではな く ア ド レ ス と見な されます。 こ のア ド レスの範囲には実行不可 (XN) のア ク セス許可が定義されている ため、MemManage フ ォール ト が発生し ます。

テーブル 5- 6 例外からの復帰動作

EXC_RETURN[3:0] 説明

0bXXX0 予約

0b0001 ハン ド ラモードへの復帰。

例外からの復帰時には、 メ イ ン ス タ ッ ク から状態が復元されます。

復帰時の実行は メ イ ン ス タ ッ ク を使用し ます。

0b0011 予約

0b01X1 予約

0b1001 ス レ ッ ド モードへの復帰。

例外からの復帰時には、 メ イ ン ス タ ッ ク から状態が復元されます。

復帰時の実行は メ イ ン ス タ ッ ク を使用し ます。

0b1101 ス レ ッ ド モードへの復帰。

例外からの復帰時には、 プロセス ス タ ッ ク から状態が復元されます。

復帰時の実行はプロセス ス タ ッ ク を使用し ます。

0b1X11 予約

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 21

アクセス制限な し 公開

Page 122: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.9 リ セ ッ ト

NVIC はコ ア と同時に リ セ ッ ト され、 コ アへの リ セ ッ ト の解除を制御し ます。その結果、 リ セ ッ ト のふる まいは予測可能です。 リ セ ッ ト 時の動作をテーブル 5- 7 に示し ます。

リ セ ッ ト の詳細については、 6 章 Clocking and Resets を参照し て下さい。

5.9.1 ベク タ テーブルと リ セ ッ ト

ベク タ テーブルの位置 0 は、 リ セ ッ ト 時のベク タ テーブルを示し ます。 少なく と も次の 4 つの値が含まれている必要があ り ます。

• ス タ ッ ク の先頭ア ド レ ス

• リ セ ッ ト ルーチンの位置

• NMI の ISR の位置

• ハー ド フ ォール ト の ISR の位置

割 り 込みが許可されている場合、 位置にかかわらず、 ベク タ テーブルはすべてのマス ク可能な例外を指し示し ています。 また、 SVC 命令が使用されている場合、 SVCall の ISR の位置も書き込まれています。

完全なベク タ テーブルの例を次に示し ます。

unsigned int stack_base[STACK_SIZE];void ResetISR(void);void NmiISR(void);…ISR_VECTOR_TABLE vector_table_at_0{

テーブル 5- 7 リ セ ッ ト 時の動作

動作 説明

NVIC が リ セ ッ ト され、 コ アを リ セ ッ ト 状態に保持する

NVIC は自分のレジス タのほ と んどを ク リ ア し ます。 プロセ ッ サはス レ ッ ドモード、 優先度は特権モード、 ス タ ッ クは メ イ ン ス タ ッ ク に設定されます。

NVIC がコ アを リ セ ッ ト から解除する

NVIC はコ アの リ セ ッ ト を解除し ます。

コ アがス タ ッ ク を設定する コ アは、 ベク タ テーブルのオフセ ッ ト 0 から SP の初期値を読み出し ます。SP は SP_main です。

コ アが PC と LR を設定する コ アは、 ベク タ テーブルのオフセ ッ ト から PC の初期値を読み出し ます。 LRは 0xFFFFFFFF に設定されます。

リ セ ッ ト ルーチンを実行する NVIC は割 り 込みを禁止し ます。 NMI とハード フ ォール ト は禁止されません。

5- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 123: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

stack_base + sizeof(stack_base), ResetISR, NmiSR,FaultISR,0, // Populate if using MemManage (MPU)0, // Populate if using Bus fault0, // Populate if using Usage Fault0, 0, 0, 0, // reserved slotsSVCallISR,0, // Populate if using a debug monitor0, // Reserved0, // Populate if using pendable service request0, // Populate if using SysTick// external interrupts start here Timer1ISR, GpioInISR GpioOutISR, I2CIsr};

Note

ベク タ テーブルのエン ト リ は ARM/Thumb イ ン タ ワーキング互換です。 こ のため、 ベク タの値のビ ッ ト [0] は例外の開始時に EPSR の T ビ ッ ト にロー ド されます。 ビ ッ ト [0] が ク リ ア されたテーブルエン ト リ を作成する と、 そのベク タに対応するハン ド ラの 初の命令で INVSTATE フ ォール ト が生成されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 23

アクセス制限な し 公開

Page 124: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.9.2 想定し ている起動シーケンス

通常の リ セ ッ ト ルーチンは、 テーブル 5- 8 に示されている手順に従います。C/C++ ラ ン タ イ ムは、 初の 3 つの手順を実行し てから main() を呼び出すこ と

ができ ます。

テーブル 5- 8 リ セ ッ ト 時のブー ト ア ッ プ動作

動作 説明

変数の初期化 すべてのグ ローバルまたは静的な変数を設定する必要があ り ます。 これには、BSS セ ク シ ョ ンの変数を 0 に初期化する動作 と、 定数でない変数の初期値をROM から RAM へコ ピーする動作が含まれます。

[ ス タ ッ クの設定 ] 複数のス タ ッ ク を使用する場合、 他のバン ク になっている SP も初期化する必要があ り ます。 現在の SP をプロセスから メ イ ンに変更する こ と もでき ます。

ラ ン タ イ ムの初期化 必要な ら、 C/C++ ラ ン タ イ ムの初期化コード を呼び出し て、 ヒ ープ、 浮動小数点、 その他の機能を有効にする こ と もでき ます。 こ の動作は通常、 C/C++ ラ イブラ リ の __main によ って行われます。

[ ペ リ フ ェ ラルの初期化 ] 割 り 込みを許可する前に、 ペ リ フ ェ ラルを設定し ます。 こ の動作は、 アプ リケーシ ョ ンで使用されるペ リ フ ェ ラルのそれぞれについて設定のため呼び出すこ と ができ ます。

[ISR ベク タ テーブルの切り 替え ]

ベク タ テーブルを コード領域のア ド レ ス 0 から、 SRAM 内の位置に変更し て もかまいません。 こ の動作が必要なのは、 性能を 適化し た り 、 動的な変更を許可し た り する と きだけです。

[ 構成可能なフ ォール トの設定 ]

構成可能なフ ォール ト を許可し、 優先度を設定し ます。

割 り 込みの設定 優先度レベル と マス ク を設定し ます。

割 り 込みの許可 割 り 込みを許可し ます。 NVIC での割 り 込み処理を許可し ます。 割 り 込み許可の処理を行っている間に割 り 込みが発生するのは望ま し く あ り ません。 32 よ り も多い割 り 込みが存在する場合、 セ ッ ト - イ ネーブル レジス タが 2 つ以上必要にな り ます。 CPS または MSR 経由で PRIMASK を使用し て、 準備が整 う まで割 り込みをマス クする こ と ができ ます。

[ 特権の変更 ] 特権を変更し ます。 必要な ら、 ス レ ッ ド モード の特権をユーザに変更でき ます。こ の動作は、 通常は SVCall ハン ド ラの呼び出しによ って処理する必要があ り ます。

ループ 退出時ス リ ープが許可されている場合、 初の割 り 込みまたは例外を処理し た後で制御は戻ってき ません。 退出時ス リ ープが選択的に許可 / 禁止されている場合、 こ のループで ク リ ーンア ッ プ と実行のタ ス ク を管理でき ます。 退出時スリ ープを使用し ない場合、 ループは自由で、 必要に応じ て WFI (即時ス リ ープ)を使用でき ます。

5- 24 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 125: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

Note

テーブル 5- 8 p. 5- 24 の項目の う ち、 角括弧で囲まれている ものはオプシ ョ ンの動作です。

リ セ ッ ト ルーチンの例

リ セ ッ ト ルーチンは、 アプ リ ケーシ ョ ンを起動し て、 割 り 込みを有効にする役割を担います。 割 り 込み処理が実行された後で、 リ セ ッ ト ISR を使用する方法は 3 つあ り ます。 これは リ セ ッ ト ISR の メ イ ンループ部分と呼ばれます。例 5- 1、 例 5- 2 p. 5- 25、 例 5- 3 p. 5- 26 に 3 つの例を示し ます。

例 5- 1 純粋な退出時ス リープのリ セ ッ ト ルーチン(リ セ ッ ト ルーチンはメ イ ンループ と し ての処理を し ない)

void reset(){

// do setup work (initialize variables, initialize runtime if wanted,setup peripherals, etc)nvic[INT_ENA] = 1; // enable interruptsnvic_regs[NV_SLEEP] |= NVSLEEP_ON_EXIT; // will not normally come back after

1st exceptionwhile (1) wfi();

}

例 5- 2 WFI を使用し た選択ス リープモデルを持つリ セ ッ ト ルーチン

void reset(){

extern volatile unsigned exc_req;// do setup work (initialize variables, initialize runtime if wanted,setup peripherals, etc)nvic[INT_ENA] = 1; // enable interruptswhile (1){

// do some work for (exc_req = FALSE; exc_req == FALSE; )wfi(); // sleep now - wait for interrupt

// do some post exception checking/cleanup}

}

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 25

アクセス制限な し 公開

Page 126: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

例 5- 3 選択された退出時ス リープが、 通知を必要とするISR によ ってキャ ンセルされる リ セ ッ ト ルーチン

void reset(){

// do setup work (initialize variables, initialize runtime if wanted,setup peripherals, etc)nvic[INT_ENA] = 1; // enable interruptswhile (1){

// We are slept until an exception clears sleep on exit state so that we can post-process/cleanup.nvic_regs[NV_SLEEP] |= NVSLEEP_ON_EXIT;while (nvic_regs[NV_SLEEP] & NVSLEEP_ON_EXIT)wfi(); // sleep now - wait for interrupt which clears// do some post exception checking/cleanup

}}

Note

ISR の起動が優先度レベルの変更と し て機能するので、 リ セ ッ ト ルーチンにカーネルは必要あ り ません。 これによ って、 負荷の変化に迅速に対応し、 優先度の上昇を使用し て優先度の反転を解決し、 粒度の細かいサポー ト をするこ と が十分可能にな り ます。 ス レ ッ ド と特権を使用する リ アルタ イ ム オペレーテ ィ ングシステム (RTOS) モデルでは、 ユーザコード にス レ ッ ド モー ドが使用されます。

5- 26 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 127: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.10 例外制御の移行

プロセ ッ サは、 テーブル 5- 9 に示す規則に従って制御を ISR へ移行し ます。

テーブル 5- 9 例外処理への移行

例外アサー ト 時のプロセ ッサの動作 例外処理への移行

メ モ リ を使用し ない命令

次の命令の前の、 サイ クルの完了時に例外を処理し ます。

単一ロード / ス ト ア バスのステータ スによ り 、 転送を完了または破棄し ます。 バスのウ ェ イ ト ステー ト次第で、 次のサイ クルで例外を処理し ます。

複数ロード / ス ト ア 現在転送中のレジス タ を完了または破棄し、 継続カ ウ ン タ (ICI フ ィ ール ド) をEPSR に設定し ます。 バスのア ク セス許可と ICI(Interruptible-Continuable Instruction)の規則に応じ て、 次のサイ クルで例外を処理し ます。 ICI 規則の詳細については、『ARMv7-M アーキテ クチャ リ フ ァ レ ン スマニュ アル』 を参照し て下さい。

例外の開始 これは後着例外のひとつです。 現在開始中の例外よ り も優先度が高い場合、 プロセ ッ サは例外の開始動作をキ ャ ンセルし、 後着例外を処理し ます。 後着例外は、 割り 込み処理時での判断変更 (ベク タ テーブル) を引き起こ し ます。 新しいハン ド ラが開始される と き、 つま り ISR の 初の命令で、 通常の横取 り 規則が適用され、 後着には分類されな く な り ます。

テールチェ イ ン これは後着例外のひとつです。 テールチェ イ ン されている ものよ り も優先度が高い場合、 プロセ ッ サはコ ンテキス ト 保存をキ ャ ンセルし、 後着例外を処理し ます。

例外のコ ンテキス ト復元

新しい例外が、 プロセ ッ サの復帰先であ る ス タ ッ ク された例外よ り も優先度が高い場合、 プロセ ッ サは新しい例外へのテールチェ イ ンを行います。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 27

アクセス制限な し 公開

Page 128: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.11 複数のス タ ッ クの設定

複数のス タ ッ ク を実装するには、 アプ リ ケーシ ョ ンが次の動作を行 う 必要があ り ます。

• MSR 命令を使用し て、 Process_SP レジス タ を設定し ます。

• MPU を使用し ている場合、 ス タ ッ ク を適切に保護し ます。

• ス レ ッ ド モード のス タ ッ ク と特権を初期化し ます。

ス レ ッ ド モード の特権が特権モード からユーザモード に変更された場合、SVCall など別の ISR のみが特権モード に戻すこ と ができ ます。

ス レ ッ ド モード のス タ ッ クは メ イ ンからプロセスへ、 または逆に変更でき ますが、 こ の操作を行 う と ス レ ッ ド のローカル変数へのア ク セスに影響し ます。ス レ ッ ド モード で使用する ス タ ッ クは、 別の ISR を使用し て変更する こ と をお勧めし ます。 ブー ト シーケン スの例を次に示し ます。

1. 設定ルーチンを呼び出し、 次の動作を行います。

a. MSR を使用し て他のス タ ッ ク を設定し ます。

b. MPU が存在する場合、 MPU によ るベース領域のサポー ト を許可します。

c. すべてのブー ト ルーチンを起動し ます。

d. セ ッ ト ア ッ プルーチンへ復帰し ます。

2. ス レ ッ ド モード を非特権モード に変更し ます。

3. SVC を使用し てカーネルを起動し ます。 次に、 カーネルは以下の処理を行います。

a. ス レ ッ ド を開始し ます。

b. MRS を使用し て現在のユーザス レ ッ ド の SP を読み出し、 TCB に保存し ます。

c. MSR を使用し て、 次のス レ ッ ド用の SP を設定し ます。 これは通常、 SP_process です。

d. 必要な ら、 新しい現在のス レ ッ ド用に MPU を設定し ます。

e. 新しい現在のス レ ッ ド に復帰し ます。

PSP を使用し て復帰先の ISR の EXC_RETURN 値を変更する方法を、 例 5- 4 に示し ます。

例 5- 4 ISR の EXC_RETURN 値の変更

; First time use of PSP, run from a Handler with RETTOBASE == 1LDR r0, PSPValue ; acquire value for new Process stackMSR PSP, r0 ; set Process stack valueORR lr, lr, #4 ; change EXC_RETURN for return on PSPBX lr ; return from Handler to Thread

5- 28 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 129: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

PSP のス レ ッ ド に切 り 替えた後で、 単純なコ ンテキス ト ス イ ッチャ を実装する方法を例 5- 5 p. 5- 29 に示し ます。

例 5- 5 単純なコ ンテキス ト スイ ッ チャの実装

; Example Context Switch (Assumes Thread is already on PSP)MRS r12, PSP ; Recover PSP into R12STMDB r12!, {r4-r11, LR} ; Push non-stack registersLDR r0, =OldPSPValue ; Get pointer to old Thread Control BlockSTR r12, [r0] ; Store SP into Thread Control BlockLDR r0, =NewPSPValue ; Get pointer to new Thread Control BlockLDR r12, [r0] ; Acquire new Process SPLDMIA r12!, {r4-r11, LR} ; Restore non-stacked registersMSR PSP, r12 ; Set PSP to R12BX lr ; Return back to Thread

Note

例 5- 4 p. 5- 28 および例 5- 5 において、 ス レ ッ ド を MSP から PSP へ移動する決定を行え る時期、 またはス タ ッ ク されていないレジス タがス タ ッ ク されたハン ド ラによ って変更されていない こ と を保証でき る時期は、 ア ク テ ィ ブなISR/ ハン ド ラが 1 つしか存在し ない と きです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 29

アクセス制限な し 公開

Page 130: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.12 アボー ト モデル

フ ォール ト を生成する可能性があ る イベン ト は 4 つです。

• 命令フ ェ ッチまたはベク タ テーブルロード のバスエ ラー

• データ ア ク セスのバスエ ラー

• 未定義命令や、 BX 命令によ る状態変更の試みなど、 内部で検出されたエラー。 NVIC のフ ォール ト ステータ ス レジス タにフ ォール ト の原因が示されます。

• 特権違反または管理されていない領域が原因の MPU フ ォール ト

フ ォール ト ハン ド ラには次の 2 種類があ り ます。

• 固定優先度のハー ド フ ォール ト

• 優先度を設定でき る ローカルフ ォール ト

5.12.1 ハー ド フ ォール ト

固定優先度のハー ド フ ォール ト は、 リ セ ッ ト および NMI のみが横取 り でき ます。 ハード フ ォール ト は、 リ セ ッ ト 、 NMI、 他のハード フ ォール ト を除 く すべての例外を横取 り でき ます。

Note

FAULTMASK を使用する コード はハー ド フ ォール ト と し て動作し、 ハードフ ォール ト と同じ規則に従います。

横取 り を し ている同じ タ イプのフ ォール ト は自分自身を横取 り でき ないため、派生し たバス フ ォール ト は昇格されません。 つま り 、 破損し たス タ ッ ク によ ってフ ォール ト が発生し た場合、 そのフ ォール ト ハン ド ラはス タ ッ クへのプ ッ シ ュが失敗し た場合で も実行されます。 フ ォール ト ハン ド ラは動作できますが、 ス タ ッ クの内容は破損し ています。

5.12.2 ローカルフ ォール ト と昇格

ローカルフ ォール ト は、 原因によ って分類されます。 テーブル 5- 10 p. 5- 31を参照し て下さい。 ローカルフ ォール ト ハン ド ラが許可されている場合、 このハン ド ラが通常のフ ォール ト をすべて処理し ます。 ただし、 ローカルフ ォール ト は次の条件でハード フ ォール ト に昇格されます。

• ローカルフ ォール ト ハン ド ラで、 処理中の もの と同じ種類のフ ォールト が発生し た場合

• ローカルフ ォール ト ハン ド ラで、 同じ またはよ り 優先度の高いフ ォール ト が発生し た場合

5- 30 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 131: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

• 例外ハン ド ラで、 同じ またはよ り 優先度の高いフ ォール ト が発生し た場合

• ローカルフ ォール ト が許可されていない場合

ローカルフ ォール ト の一覧を、 テーブル 5- 10 に示し ます。

テーブル 5- 10 フ ォール ト

フ ォール ト ビ ッ ト 名 ハン ド ラ 注ト ラ ッ プイネーブル ビ ッ ト

リ セ ッ ト リ セ ッ ト の原因 リ セ ッ ト 任意の形式の リ セ ッ ト RESETVCATCH

ベク タ読み出しエラー VECTTBL HardFault ベク タ テーブル エン ト リ の読み出し時にバスエラーが返されま し た。

INTERR

uCode ス タ ッ ク プ ッシ ュ エラー

STKERR BusFault ハード ウ ェ アを使用し てコ ンテキス ト を保存する と きに、バスエラーが返されま し た。

INTERR

uCode ス タ ッ ク プ ッシ ュ エラー

MSTKERR MemManage ハード ウ ェ アを使用し てコ ンテキス ト を保存する と きに、MPU ア ク セス違反が発生し まし た。

INTERR

uCode ス タ ッ ク ポ ッ プ エラー

UNSTKERR BusFault ハード ウ ェ アを使用し てコ ンテキス ト を復元する と きに、バスエラーが返されま し た。

INTERR

uCode ス タ ッ ク ポ ッ プ エラー

MUNSKERR MemManage ハード ウ ェ アを使用し てコ ンテキス ト を復元する と きに、MPU ア ク セス違反が発生し まし た。

INTERR

ハード フ ォール ト への昇格

FORCED HardFault フ ォール ト が発生し、 ハン ドラの優先度が現在のもの と同じか、 よ り 高い。 優先度が許可されていない と きにフ ォール ト 内でフ ォール ト が発生した場合や、 構成可能なフ ォール ト が禁止されている場合を含みます。 SVC、 BKPT、 その他のフ ォール ト を含みます。

HARDERR

MPU 不一致 DACCVIOL MemManage データ ア ク セスの結果、 MPUにア ク セス違反またはフ ォール ト が発生し ま し た。

MMERR

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 31

アクセス制限な し 公開

Page 132: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

MPU 不一致 IACCVIOL MemManage 命令ア ド レ スが原因で、 MPUにア ク セス違反またはフ ォール ト が発生し ま し た。

MMERR

プ リ フ ェ ッチエラー IBUSERR BusFault 命令フ ェ ッチでバスエラーが返されま し た。 実行される場合のみ、 フ ォール ト が発生します。 分岐シャ ドーでは、フ ォール ト が発生し て も無視される こ と があ り ます。

BUSERR

正確なデータバス エラー

PRECISERR BusFault データ ア ク セスの結果バスエラーが返されま し た。 こ のエラーは正確で、 命令を指し示し ています。

BUSERR

不正確なデータバス エラー

IMPRECISERR BusFault データ ア ク セスの結果、 遅れてバスエラーが返されま し た。正確な命令はもはや不明です。このフ ォール ト は保留され、非同期です。 FORCED を起こし ません。

BUSERR

コプロセ ッ サな し NOCP UsageFault コプロセ ッサが実際に存在しないか、 存在ビ ッ ト がセ ッ トされていません。

NOCPERR

未定義命令 UNDEFINSTR UsageFault 未定義命令 STATERR

無効な ISA 状態、 例えば Thumb でない状態から命令の実行が試みられた

INVSTATE UsageFault 無効な EPSR 状態で実行が試みられま し た。 例えば、 BX タ イプの命令で状態が変更された後などが挙げられます。 これには、 イ ン タ ワーキング状態を含む、 例外からの復帰後の状態が含まれます。

STATERR

許可されていない、 または無効なマジ ッ クナンバーを持つ、PC=EXC_RETURN への復帰

INVPC UsageFault 不正な EXC_RETURN の値、EXC_RETURN と ス タ ッ ク されている EPSR の値の不一致、 または現在の EPSR が現在ア クテ ィ ブな例外の一覧に含まれていない と きの終了によ り 発生し た、 不正な終了

STATERR

テーブル 5- 10 フ ォール ト (続 く )

フ ォール ト ビ ッ ト 名 ハン ド ラ 注ト ラ ッ プイネーブル ビ ッ ト

5- 32 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 133: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

デバッ グフ ォール ト を、 テーブル 5- 11 に示し ます。

5.12.3 フ ォール ト ステータ ス レジス タ と フ ォール ト ア ド レス レジス タ

各フ ォール ト について、 フ ォール ト ステータ ス レジス タに対応する フ ラ グが存在し ます。

不正なアンア ラ イ ン ドロード / ス ト ア

UNALIGNED UsageFault 複数ロード / ス ト ア命令で、ワード ア ラ イ ン ド でない位置へのア ク セス を試みた と きに発生し ます。 UNALIGN_TRPビ ッ ト を使用し て、 サイ ズにア ラ イ ン し ていない任意のロード / ス ト アについて発生を許可でき ます。

CHKERR

0 によ る除算 DIVBYZERO UsageFault SDIV または UDIV 命令が実行され、 除数が 0 であ り 、DIV_0_TRP ビ ッ ト がセ ッ ト されている と きに発生し ます。

CHKERR

SVC - SVCall システム要求 (サービ ス呼び出し)

-

テーブル 5- 10 フ ォール ト (続 く )

フ ォール ト ビ ッ ト 名 ハン ド ラ 注ト ラ ッ プイネーブル ビ ッ ト

テーブル 5- 11 デバッ グフ ォール ト

フ ォール ト フ ラグ 注 ト ラ ッ プイネーブル ビ ッ ト

内部停止要求 HALTED ステ ッ プやコ ア停止などからの NVIC 要求 -

ブレーク ポイ ン ト BKPT パッチされた命令や FPB からの SW ブレーク ポイ ン ト

-

ウ ォ ッチポイ ン ト DWTTRAP DWT でのウ ォ ッチポイ ン ト 一致 -

外部 EXTERNAL EDBGRQ ラ イ ンがアサー ト されま し た。 -

ベク タ キ ャ ッチ VCATCH ベク タ キ ャ ッチが ト リ ガ されま し た。 対応するFSR には、 例外の主な原因が含まれています。

VC_xxx ビ ッ ト または RESETVCATCHがセ ッ ト されている

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 33

アクセス制限な し 公開

Page 134: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

これらは、 次のレジス タです。

• 3 つの構成可能なフ ォール ト ハン ド ラに対応する、 3 つの構成可能なフ ォール ト ステータ ス レジス タ

• 1 つのハード フ ォール ト ステータ ス レジス タ

• 1 つのデバッ グフ ォール ト ステータ ス レジス タ

原因に応じて、 5 つのステータ ス レジス タの う ちの 1 ビ ッ ト がセ ッ ト されます。

フ ォール ト ア ド レ ス レジス タ (FAR) は 2 つあ り ます。

• バス フ ォール ト ア ド レ ス レジス タ (BFAR)

• メ モ リ フ ォール ト ア ド レ ス レジス タ (MFAR)

フ ォール ト ステータ ス レジス タの対応する フ ラ グは、 フ ォール ト ア ド レ ス レジス タのア ド レ スがいつ有効であ るかを示し ています。

Note

BFAR と MFAR は同じ物理レジス タです。 このため、 BFARVALID ビ ッ ト とMFARVALID ビ ッ ト は相互に排他的です。

フ ォール ト ステータ ス レジス タ と、 2 つのフ ォール ト ア ド レ ス レジス タ を、テーブル 5- 12 p. 5- 34 に示し ます。

テーブル 5- 12 フ ォール ト ステータ ス レジス タ と フ ォール ト ア ド レス レジス タ

ステータ スレジス タ名 ハン ド ラ ア ド レスレジス タ名 説明

HFSR ハード フ ォール ト - 昇格と特殊

MMSR メ モ リ 管理 MMAR MPU フ ォール ト

BFSR バス フ ォール ト BFAR バス フ ォール ト

UFSR 用法フ ォール ト - 用法フ ォール ト

DFSR デバッ グモニタ または停止

- デバッ グ ト ラ ッ プ

5- 34 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 135: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.13 起動レベル

ア ク テ ィ ブな例外がない場合、 プロセッサはス レ ッ ド モード です。 ISR またはフォール ト ハン ド ラがアクテ ィブな場合、 プロセッサはハン ド ラモードに入り ます。 各起動レベルにおける特権と スタ ッ クの一覧を、 テーブル 5-13 に示し ます。

すべての例外タ イプに関する遷移規則 と、 それらのア ク セス規則およびスタ ッ ク モデル と の関係の要約を、 テーブル 5- 14 に示し ます。

テーブル 5- 13 各起動レベルでの特権と ス タ ッ ク

アク テ ィ ブな例外 起動レベル 特権 ス タ ッ ク

な し ス レ ッ ド モード 特権またはユーザ メ イ ン またはプロセス

ISR がア ク テ ィ ブ 非同期の横取 り レベル 特権 メ イ ン

フ ォール ト ハン ドラがア ク テ ィ ブ

同期の横取 り レベル 特権 メ イ ン

リ セ ッ ト ス レ ッ ド モード 特権 メ イ ン

テーブル 5- 14 例外の遷移

アク テ ィ ブな例外 例外を ト リ ガする イベン ト 遷移タ イプ 特権 ス タ ッ ク

リ セ ッ ト リ セ ッ ト 信号 ス レ ッ ド特権またはユーザ

メ イ ンまたはプロセス

ISRa または NMIb保留セ ッ ト ソ フ ト ウ ェア命令、またはハード ウ ェア信号

非同期の横取 り 特権 メ イ ン

フ ォール ト

同期の横取 り 特権 メ イ ンハード フ ォール ト

バス フ ォール ト

非 CPc フ ォール ト

未定義命令フ ォール ト

昇格

メ モ リ ア クセス エラー

CP 不在のア ク セス

未定義命令

デバッ グモニタ停止が許可されていない と きのデバッ グ イベン ト

同期 特権 メ イ ン

SVCd SVC 命令

外部割 り 込み

a. 割 り 込み処理ルーチン。b. マス ク不能割 り 込み。c. コプロセ ッサ。d. ソ フ ト ウ ェア割 り 込み。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 35

アクセス制限な し 公開

Page 136: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

例外のサブタ イプの遷移を、 テーブル 5- 15 に示し ます。

テーブル 5- 15 例外のサブ タ イプの遷移

起動するサブ タ イプ

例外を ト リ ガするイベン ト 起動 優先度への影響

ス レ ッ ド リ セ ッ ト 信号 非同期 即時、 ス レ ッ ド の優先度は 低

ISR/NMI HW 信号またはセ ッ ト 保留

非同期 優先度に応じ て横取 り またはテールチェ イ ン

モニ タ デバッ グ イベン ト a 同期 優先度が現在のもの と同じか低い場合、 ハードフ ォール ト

SVCall SVC 命令 同期 優先度が現在のもの と同じか低い場合、 ハードフ ォール ト

PendSV ソ フ ト ウ ェ ア保留要求

チェ イ ン 優先度に応じ て横取 り またはテールチェ イ ン

UsageFault 未定義命令 同期 優先度が現在のもの と同じか高い場合、 ハードフ ォール ト

NoCpFault 存在し ない CP へのア ク セス

同期 優先度が現在のもの と同じか高い場合、 ハードフ ォール ト

BusFault メ モ リ ア ク セス エラー

同期 優先度が現在のもの と同じか高い場合、 ハードフ ォール ト

MemManage MPU 不一致 同期 優先度が現在のもの と同じか高い場合、 ハードフ ォール ト

HardFault 昇格 同期 NMI を除 く すべての例外よ り 高い

FaultEscalate 構成可能なフ ォールト ハン ド ラからの昇格要求

チェ イ ン ローカルハン ド ラの優先度をハード フ ォール ト と同じにブース ト し、 構成可能なフ ォール ト ハン ド ラへ復帰し てチェ イ ンでき る よ う にし ます。

a. 停止が許可されていない と き。

5- 36 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 137: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.14 フ ローチャー ト

このセクシ ョ ンでは、 次の条件における割り 込みのフ ローについて説明し ます。

• 割 り 込み処理

• 横取 り p. 5- 38

• 復帰 p. 5- 38

5.14.1 割り込み処理

よ り 優先度が高い割 り 込みによ って横取 り される まで、 命令がどのよ う に実行されるかを図 5- 6 に示し ます。

図 5- 6 割り込み処理のフ ローチャー ト

命令を実行する

いいえ

はい

はい

割り込みから復帰する

いいえ

保留中の割り込みは

アクティブな割り込みより

優先度が高いか

リセット

位置0、4からSPと

PCをロードする

はい

横取り

PCは復帰位置にあるか いいえ

保留中の割り込みは

スタックされている割り込み

より優先度が高いか

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 37

アクセス制限な し 公開

Page 138: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5.14.2 横取り

例外が現在の ISR を横取 り する と きの動作を、 図 5- 7 に示し ます。

図 5- 7 横取りのフ ローチャー ト

5.14.3 復帰

プロセ ッ サがス タ ッ ク されている ISR を復元する動作、 またはス タ ッ ク されている ISR よ り も優先度が高い後着割 り 込みへのテールチェ イ ンを行 う と きの動作を、 図 5- 8 p. 5- 39 に示し ます。

横取り

ベクタテーブルから新しいPCを読み出すレジスタr0-r3、r12、LR、PC、および

xPSRをSPスタックにプッシュする

後着割り込みかはい

いいえ

PC位置からパイプラインに読み込む

後着割り込みかはい

いいえ

命令を実行する

同期

DバスIバス

5- 38 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 139: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

図 5- 8 割り込みからの復帰のフ ローチャー ト

復帰

スタックを変更し、PCから

パイプラインをロードする

LRを設定し、新しい割り込み

へテールチェーンする

次のレジスタをポップする

命令を実行する

より高い優先度

の後着割り込みが

あるか

はい

最後のレジスタを

ポップしたか

はい

いいえ

いいえ

ベクタテーブルから

新しいPCを読み出す

PC位置からパイプライン

に読み込む

命令を実行する

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 5- 39

アクセス制限な し 公開

Page 140: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

例外

5- 40 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 141: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

6 章 ク ロ ッ ク と リ セ ッ ト

本章では、 プロセ ッ サの ク ロ ッ ク と リ セ ッ ト について説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• ク ロ ッ ク p. 6- 2

• リ セ ッ ト p. 6- 4

• Cortex-M3 の リ セ ッ ト モード p. 6- 5

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 6- 1

アクセス制限な し 公開

Page 142: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

ク ロ ッ ク と リ セ ッ ト

6.1 ク ロ ッ ク

プロセ ッ サには、 ク ロ ッ ク入力が 3 つあ り ます。 プロセ ッ サの ク ロ ッ クの説明を、 テーブル 6- 1 に示し ます。

FCLK と HCLK は互いに同期し ています。 FCLK は HCLK のフ リ ーラ ン クロ ッ ク であ る ため、 ス リ ープモード 以外は常に同じ周波数にする必要があ ります。 詳細については、 7 章 Power Management を参照し て下さい。 FCLK とHCLK 間はプロセ ッ サへのレ イ テンシが等し く な る よ う にバラ ン ス し ている必要があ り ます。

プロセ ッ サには、 デバッ グ と ト レース用のコ ンポーネン ト が組み込まれています。 お使いのマ ク ロセルには、 表 6-2 に示されている ク ロ ッ クの一部またはすべてを持っている可能性があ り ます。

SWCLKTCK は、 SWJ-DP のデバッ グ イ ン タ フ ェース ド メ イ ンの ク ロ ッ ク です。 これは、 JTAG モード では TCK と 等価で、 シ リ アルワ イ ヤ モー ド ではシリ アルワ イヤ ク ロ ッ ク です。 この ク ロ ッ クは、 他のすべての ク ロ ッ ク と非同期です。 DBGCLK は、 SW-DP のデバッ グ イ ン タ フ ェース ド メ イ ンの ク ロ ック です。 この ク ロ ッ クは、 他の ク ロ ッ ク と非同期です。

テーブル 6- 1 Cortex-M3 プロセ ッサのク ロ ッ ク

ク ロ ッ ク ド メ イン 説明

FCLK プロセ ッ サ

フ リ ーラ ンのプロセ ッサ ク ロ ッ ク で、 割 り 込みのサンプ リ ング とデバッ グ回路へのク ロ ッ ク供給に使用されます。 この ク ロ ッ クは、 プロセ ッサがス リ ープ状態の と きに、 割 り 込みのサンプ リ ング と ス リ ープイベン ト の ト レースが可能であ る こ と を保証する ために使用されます。

HCLK プロセ ッ サ

プロセ ッ サ ク ロ ッ ク

DAPCLK プロセ ッ サ

デバッ グポー ト のア ド バン ス ト ハイパフ ォーマン スバス ア ク セスポー ト (AHB-AP)ク ロ ッ ク

テーブル 6- 2 Cortex-M3 マク ロセルのク ロ ッ ク

ク ロ ッ ク ド メ イ ン 説明

TRACECLKIN TPIU TPIU の出力のク ロ ッ ク

DBGCLK SW-DP デバッ グ ク ロ ッ ク

SWCLKTCK SWJ-DP デバッ グ ク ロ ッ ク

6- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 143: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

ク ロ ッ ク と リ セ ッ ト

TRACECLKIN は ト レースポー ト イ ン タ フ ェースユニ ッ ト (TPIU) の リ フ ァ レン ス ク ロ ッ ク です。 この ク ロ ッ クは、 他の ク ロ ッ ク と非同期です。

Note

SWCLKTCK、 DBGCLK、 TRACECLKIN の駆動が必要にな るのは、 実装にそれぞれシ リ アルワ イ ヤ JTAG デバッ グポー ト (SWJ-DP)、 シ リ アルワ イ ヤ デバッ グポー ト (SW-DP)、 TPIU ブロ ッ クが含まれている場合のみです。 それ以外の場合、 ク ロ ッ ク入力をオフに接続する必要があ り ます。

Note

プロセ ッ サには、 STCLK 入力も組み込まれています。 このポー ト はク ロ ッ クではあ り ません。 これは SysTick カ ウ ン タへの リ フ ァ レ ン ス入力で、 周波数は FCLK の半分未満の必要があ り ます。 STCLK は、 プロセ ッ サによ って内部的に FCLK と同期されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 6- 3

アクセス制限な し 公開

Page 144: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

ク ロ ッ ク と リ セ ッ ト

6.2 リ セ ッ ト

プロセ ッ サには 3 つの リ セ ッ ト 入力があ り ます。 リ セ ッ ト 入力の説明を、テーブル 6- 3 に示し ます。

Note

nTRST は SWJ-DP を リ セ ッ ト し ます。 お使いの実装に SWJ-DP が含まれていない場合、 この リ セ ッ ト をオフに接続する必要があ り ます。

テーブル 6- 3 リ セ ッ ト 入力

リセッ ト入力 説明

PORESETn SWJ-DP を除いて、 プロセ ッ サシステム全体を リ セ ッ ト し ます。

SYSRESETn 以下の回路のデバッ グ回路を除いて、 プロセ ッ サシステム全体を リセ ッ ト し ます。

• ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC)

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

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

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

• AHB-AP

nTRST SWJ-DP リ セ ッ ト

6- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 145: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

ク ロ ッ ク と リ セ ッ ト

6.3 Cortex-M3 のリ セ ッ ト モー ド

プロセ ッ サの設計に存在する リ セ ッ ト 信号によ って、 設計の さ まざまなパーツを個別に リ セ ッ ト でき ます。 リ セ ッ ト 信号、 およびその組み合わせと考えられる用途をテーブル 6- 4 に示し ます。

Note

PORESETn は、 SYSRESETn 回路のスーパーセ ッ ト を リ セ ッ ト し ます。

6.3.1 パワーオン リ セ ッ ト

マ ク ロセルの リ セ ッ ト 信号を、 図 6- 1 p. 6- 6 に示し ます。

テーブル 6- 4 リ セ ッ ト モー ド

リ セ ッ トモー ド

SYSRESETn nTRST PORESETn 用途

パワーオンリ セ ッ ト

x 0 0 パワーオン時の リ セ ッ ト で、 完全なシステム リセ ッ ト を行います。 コール ド リ セ ッ ト

システムリ セ ッ ト

0 x 1 デバッ グを除 く 、 プロセ ッ サコ ア と システム コ ンポーネン ト を リ セ ッ ト し ます。

SWJ-DPリ セ ッ ト

1 0 1 SWJ-DP 回路を リ セ ッ ト し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 6- 5

アクセス制限な し 公開

Page 146: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

ク ロ ッ ク と リ セ ッ ト

図 6- 1 リ セ ッ ト 信号

システムの電力が 初にオンになった と きに、 パワーオン リ セ ッ ト すなわちコール ド リ セ ッ ト をプロセ ッ サに適用する必要があ り ます。 パワーオン リセ ッ ト の場合、 リ セ ッ ト 信号 PORESETn の立ち下が り エ ッ ジは HCLK と同期し ている必要はあ り ません。 PORESETn はプロセ ッ サ内で同期化される ため、こ の信号を同期化する必要はあ り ません。 パワーオン リ セ ッ ト の使用法を、図 6- 2 に示し ます。 図 6- 3 p. 6- 7 には、 リ セ ッ ト がプロセ ッ サ内で同期し ている こ と が示されています。

図 6- 2 パワーオン リ セ ッ ト

正しい リ セ ッ ト 動作を保証する ため、 リ セ ッ ト 信号は少な く と も 3 HCLK サイ クルの間アサー ト する こ と をお勧めし ます。 内部での リ セ ッ ト の同期を、図 6- 3 p. 6- 7 に示し ます。

Cortex-M3

CM3CoreNVIC

システムコンポーネント

(BusMatrix、MPU)

CORERESETnNVICRESETnNVICDBGRESETn

SYSRESETREQ

VECTRESET

WATCHDOGSYSRESETn

PORESETn

システムデバッグ

コンポーネント

(FPB、DWT、ITM)

HCLK

PORESETn

nTRST

6- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 147: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

ク ロ ッ ク と リ セ ッ ト

Note

外部デバッ ガが付属し ていない場合、 何らかの外部のウ ォ ッ チ ド ッ グ回路には、 Cortex-M3 システムからの LOCKUP を含める こ と を検討する必要があ ります。

図 6- 3 内部リ セ ッ ト の同期

6.3.2 システムリ セ ッ ト

システム リ セ ッ ト すなわち ウ ォーム リ セ ッ ト は、 NVIC のデバッ グ回路、FPB、 DWT、 ITM を除 く 大部分のマ ク ロセルを初期化し ます。 システム リセ ッ ト は通常、 例えばウ ォ ッチ ド ッ グ リ セ ッ ト のよ う に、 一定期間稼動し続けている システムを リ セ ッ ト し ます。

SYSRESETn はプロセ ッ サの外部で同期する必要があ り ます。CortexM3Integration で提供されている リ セ ッ ト 同期の例を、 図 6- 3 に示し ます。

Cortex-M3 は、 アプ リ ケーシ ョ ン割 り 込みおよび リ セ ッ ト 制御レジス タのSYSRESETREQ ビ ッ ト がセ ッ ト される と アサー ト される SYSRESETREQ 信号を外部に出力し ています。 例えば、 図 6- 1 p. 6- 6 に示すよ う に、 この信号をウ ォ ッチ ド ッ グ タ イマへの入力 と し て使用でき ます。

6.3.3 SWJ-DP リ セ ッ ト

nTRST リ セ ッ ト は、 SWJ-DP コ ン ト ローラの状態を初期化し ます。 nTRST リセ ッ ト は一般に、 RealView ™ ICE モジ ュールによ って、 デバッ ガをシステムへホ ッ ト プラ グ接続する ために使用されます。

CortexM3

D Q

CortexM3IntegrationSoC

RnD Q

Vdd

HCLK

SE

RSTBYPASS

PORESETn、SYSRESETn 1

0

Rn

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 6- 7

アクセス制限な し 公開

Page 148: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

ク ロ ッ ク と リ セ ッ ト

nTRST は、 プロセ ッ サの通常の動作に影響を与えずに、 SWJ-DP コ ン ト ローラ を初期化でき ます。

SWJ-DP は同期を実行し ないため、 nTRST 信号は SWCLKTCK ク ロ ッ クに同期し てアサー ト する必要があ り ます。

6.3.4 SW-DP リ セ ッ ト

SW-DP は DBGRESETn で リ セ ッ ト されます。 こ の リ セ ッ ト は、 DBGCLK と同期し ている必要があ り ます。

6.3.5 通常動作

通常動作中は、 プロセ ッ サ リ セ ッ ト と パワーオン リ セ ッ ト はいずれも アサート されません。 SWJ-DP ポー ト が使用されていない場合、 nTRST の値は関係し ません。

6- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 149: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

7 章 電力管理

本章では、 プロセ ッ サの電力管理機能について説明し ます。 本章は以下のセク シ ョ ンから構成されています。

• 電力管理について p. 7- 2

• システム電力管理 p. 7- 3

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 7- 1

アクセス制限な し 公開

Page 150: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

7.1 電力管理について

プロセ ッ サは、 ゲー ト 付き ク ロ ッ ク を広 く 活用し て、 使用されていない機能を無効にし、 使用されていない機能ブロ ッ クへの入力を無効にし て、 ア クテ ィ ブで使用されている回路のみが動的な電力を消費する よ う にし ます。

ARMv7-M アーキテ クチャでは、 消費電力を よ り 少な く する ために、Cortex-M3 と システム ク ロ ッ ク を停止する こ と ができ る システム ス リ ープモード がサポー ト されています。 詳細については、 システム電力管理 p. 7- 3を参照し て下さい。

7- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 151: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

7.2 システム電力管理

Cortex-M3 システムの電力状態は、 システム制御レジス タ (システム制御レジス タ p. 8- 27 参照) への書き込みによ り 制御されます。 サポー ト されている ス リ ープモー ド を、 テーブル 7- 1 に示し ます。

プロセ ッ サは、 いつプロセ ッ サがス リ ープし ているのかを通知する ため、 次の信号を出力し ています。

SLEEPING この信号は、 Sleep-now または Sleep-on-exit モード でアサー ト され、 プロセ ッ サへの ク ロ ッ ク を停止でき る こ と を示し ます。WFE の場合は新しい割 り 込みまたはイベン ト を受信する と、NVIC がコ アを ス リ ープ状態から解除し、 こ の信号をデアサー トし ます。 コ アのホール ト によ って も ス リ ープモード が解除されます。 SLEEPING の使用例を、 SLEEPING p. 7- 4 に示し ます。

SLEEPDEEP

システム制御レジス タの SLEEPDEEP ビ ッ ト がセ ッ ト されている場合、 Sleep-now または Sleep-on-exit モード で こ の信号がアサート されます。 この信号はク ロ ッ ク マネージ ャにまで配線され、プロセ ッ サおよびフ ェーズ ロ ッ ク ド ループ (PLL) を含むシステム

テーブル 7- 1 サポー ト されているス リープモー ド

ス リープ機構 説明

Sleep-now 割 り 込み待ち (WFI) またはイベン ト 待ち (WFE) 命令は、 Sleep-now モデルを要求し ます。 これらの命令が実行される と、 ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC) は、他の例外を保留し て、 プロセ ッ サを低電力状態に移行し ます。a

Sleep-on-exit システム制御レジス タの SLEEPONEXIT ビ ッ ト がセ ッ ト されている場合、 も優先度が低い ISR から退出直後に、 プロセ ッ サは低電力状態に移行し ます。 プロセ ッ サは、レジス タ をポ ッ プせずに低電力状態へ移行し、 レジス タ をプ ッ シュする必要な しに後続の例外を処理し ます。 コ アは、 次の例外が保留される までス リ ープ状態に置かれます。 これは自動的な WFI モード です。

Note

Sleep-on-exit は、 デバッ グなど各種の状況下で、 ベースに戻る こ と があ り ます。 こ のため、 ア イ ド ルループやア イ ド ルス レ ッ ド などのベース コード を用意し てお く 必要があ り ます。

Deep-sleep Deep-sleep は、 Sleep-now および Sleep-on-exit と組み合わせて使用されます。 システム制御レジス タの SLEEPDEEP ビ ッ ト がセ ッ ト されている場合、 プロセ ッ サはシステムに、 よ り 深いス リ ープ状態への移行が可能な こ と を通知し ます。

a. WFI 命令は、 例外がア ク テ ィ ブにならな く て も完了する こ と があ り ます。 この命令を、 例外の発生を検出する方

法と して使用しないで下さい。 WFI は通常、 ス レ ッ ド モード のアイ ドルループで使用されます。 WFI、 WFE、

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

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 7- 3

アクセス制限な し 公開

Page 152: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

コ ンポーネン ト をゲー ト し て、 よ り 電力を節約する こ と ができます。 SLEEPING がアサー ト される こ と が無いま ま SLEEPDEEPがアサー ト される こ と は、 あ り ません。 SLEEPDEEP の使用例を、 SLEEPDEEP p. 7- 5 に示し ます。

7.2.1 SLEEPING

低電力状態において SLEEPING によ り プロセ ッ サへの HCLK ク ロ ッ ク をゲート する こ と で消費電力を低減する方法例を、 図 7- 1 に示し ます。 必要に応じて、 SLEEPING を使用し て、 他のシステム コ ンポーネン ト をゲー ト する こ とも可能です。 独自の ク ロ ッ ク ゲー ト のイネーブルを生成する代わ り に、 出力信号の GATEHCLK を使用する こ と ができ ます。

図 7- 1 SLEEPING 電力制御の例

WIC が使用されていない場合、 プロセ ッ サは、 割 り 込みを検出する ために、フ リ ーラ ン FCLK を受信し続ける必要があ り ます。 FCLK は次の回路に クロ ッ ク を供給し ます。

• 割 り 込みを検出する ための、 NVIC 内の小さ な回路。

• データ ウ ォ ッ チポ イ ン ト および ト レース (DWT) ブロ ッ ク と計装 ト レース マ ク ロセル (ITM) ブロ ッ ク。 これらのブロ ッ クは、 許可されていればス リ ープ中に ト レースパケ ッ ト を生成する こ と ができ ます。 デバッ グ例外およびモニ タ制御レジス タの TRCENA ビ ッ ト が有効な場合、 これらのブロ ッ クの電力消費は 小化されます。 デバッ グ例外およびモニ タ制御レジス タ p. 10- 10 を参照し て下さ い。

SLEEPING がアサー ト されている間は、 FCLK の周波数を下げる こ と ができ ます。

Note

図 7- 1 の ク ロ ッ ク ゲー ト 方式を使用し て HCLK を止める と、 デバッ グア ク セスが禁止されます。 CoreSight デバッ グポー ト (DP) から供給される起動信号を使って、 システムは図 7- 1 の ク ロ ッ ク ゲー ト 回路をバイパスする こ と ができ ます。

Cortex-M3 プロセッサ

SLEEPING

HCLK

FCLK FCLK

EN

7- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 153: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

7.2.2 SLEEPDEEP

低電力状態において SLEEPDEEP を使用し て ク ロ ッ ク コ ン ト ローラ を停止する こ と で、 消費電力を低減する方法を、 図 7- 2 に示し ます。 低電力状態を抜ける と き、 LOCK シグナルは、 PLL が安定し ていて、 Cortex-M3 ク ロ ッ ク を有効にし て も安全であ る こ と を示し ます。 これによ り 、 ク ロ ッ ク が安定するまで、 プロセ ッ サが再起動し ないこ と が保証されます。

図 7- 2 SLEEPDEEP 電力制御の例

WIC が無効になっている場合、 プロセ ッ サは、 割 り 込みを検出する ために、低電力状態でフ リ ーラ ン FCLK を受信する必要があ り ます。 SLEEPDEEP がアサー ト されている間は、 FCLK の周波数を下げる こ と ができ ます。

7.2.3 ス リープの延長

SLEEPHOLDREQn 信号 と SLEEPHOLDACKn 信号を使用すれば、 ス リ ープ状態を延長する こ と ができ ます。 SLEEPING 信号が HIGH でコ アがス リ ープ状態であれば、 SLEEPHOLDREQn をアサー ト する こ と ができ ます。 その次のサイ クルで、 SLEEPHOLDACKn がアサー ト され、 延長要求が確定されます。ウ ェーク ア ッ プ イベン ト が発生する と、 通常どお り 、 SLEEPING はデアサート されますが、 SLEEPHOLDACKn はデアサー ト されないため、 コ アはス リ ープ状態のま まにな り ます。 コ アを ウ ェーク ア ッ プするには、SLEEPHOLDREQn をデアサー ト する必要があ り ます。 SLEEPING の場合 と同様に、 SLEEPHOLDREQn がアサー ト されているかど う かに関係な く 、 コ アのホール ト によ って SLEEPHOLDACKn がデアサー ト され、 ス リ ープモード が解除されます。

SLEEPING が HIGH 以外の と きに SLEEPHOLDREQn がアサー ト された場合、コ アは応答を返さず、 ス リ ープイベン ト が発生し た場合にのみス リ ープモード に入 り ます。

ス リ ープイベン ト の実行中に割 り 込みがアサー ト された場合のよ う に、SLEEPING が非常に短い期間だけアサー ト される こ と があ り ます。 この場合は、 SLEEPHOLDREQn が応答前にデアサー ト され、 ス リ ープモード が正常に

Cortex M3 プロセッサ

SLEEPDEEP

HCLK

FCLK

EN

PLLCLKIN

クロック

コントローラ

LOCK

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 7- 5

アクセス制限な し 公開

Page 154: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

延長されない可能性があ り ます。 ご使用の実装では、 こ のよ う なケース を想定し て、 ス リ ープモード が応答な しで解除された場合に SLEEPHOLDREQnがデアサー ト される こ と を保証する必要があ り ます。

図 7- 1 p. 7- 4 に示すよ う に、 ス リ ープモー ド を使用し て HCLK 信号を ク ロ ック ゲー ト する場合は、 SLEEPHOLDACKn を反転し て SLEEPING と論理和を取り 、 ク ロ ッ ク ゲー ト のイ ネーブル期間を生成する必要があ り ます。 デバッ ガを使用する場合は、 HCLK を イ ネーブルにする必要があ り ます。 または、CortexM3Integration レベルで提供される GATEHCLK 信号を使用し て、 HCLKのゲー ト 制御に使 う こ と ができ ます。

7.2.4 ウ ェーク ア ッ プ割り込みコ ン ト ローラの使用

このサブセク シ ョ ンでは、 ウ ェーク ア ップ割 り 込みコ ン ト ローラ (WIC) の使用方法について説明し ます。 このセク シ ョ ンは次の項目から構成されています。

• WIC の概要

• WIC の機能

WIC の概要

Cortex-M3 NVIC には、 新し く 発生し た割 り 込みの優先度が現在の優先度よ りも高い場合は、 現在の実行コ ンテキ ス ト または優先度よ り も優先する必要があ る と判断する専用の回路が組み込まれています。 この優先機構は、 WFE、WFI、 および sleep-on-exit の間も機能し、 コ アがス リ ープ後に命令の実行を再開し なければな ら ないタ イ ミ ングを決定し ます。

超低電力用途では、 very-deep-sleep モード中のプロセ ッ サの動的電力と静的電力を大幅に削減でき る こ と が理想的です。 これは、 ク ロ ッ ク を停止するか、プロセ ッ サへの電力供給を停止する こ と によ って実現する こ と ができ ます。電力供給が停止される と、 NVIC は割 り 込みの優先順位付けや検出ができ な くな り ます。 これは、 very-deep-sleep モード の解除タ イ ミ ングの検知が困難にな る こ と を意味し ます。 ウ ェーク ア ッ プ割 り 込みコ ン ト ローラ (WIC) は非常に少ないゲー ト 数で割込み検出回路を提供し、 very-deep-sleep へ入る時にフル NVIC で正し く 設定し ておけば、 フル NVIC に取って代わってその動作をエ ミ ュ レー ト する こ と が可能です。 WIC は小型なため、 その電源要件がvery-deep-sleep 中に利用でき る電力制約に納ま り 、 常に通電し ておける こ とを保証し ます。

NVIC と違って、 WIC には優先順位付け回路が組み込まれていません。 WIC には、 マス ク されていない割 り 込みを検出する とすぐにウ ェーク ア ッ プ信号を出力する、 基本的な割 り 込みマス ク システムが実装されています。 また、 WICはプロ グ ラマモデルで可視な状態を持たないため、 ス リ ープ中に消費電力が削減される こ と を除いては、 デバイ スのエン ド ユーザーからは見えません。

7- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 155: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

WIC の機能

必要に応じ て、 WIC を使用し て FCLK をゲー ト し、 プロセ ッサへの電力をオフにする こ と もでき ます。 初に、 電力管理ユニ ッ ト (PMU) が、 WICENREQと い う 名前のイネーブルをアサー ト し て WIC と の通信を開始し ます。 次に、WIC が、 WIC モード ス リ ープに同意するための要求をプロセ ッサに送信し ます。 プロセ ッサから応答が返ってきた ら、 WIC が PMU に応答を返し ます。 すべての応答が確定する と、 次の SLEEPDEEP モード を WIC モード ス リ ープにする こ と が同意されます。 この初期手順シーケン スの例を図 7- 3 に示し ます。

図 7- 3 WIC モー ドの許可シーケンス

WFI、 WFE、 sleep-on-exit のいずれかによ って deep-sleep モード に入る と、プロセ ッ サが、 WICLOAD と WICMASK を使用し て、 WIC に適切なマス ク をロード し、 ウ ェーク ア ッ プに必要な割 り 込み と イベン ト のどち らかまたはその両方を許可し ます。 WICSENSE ベク タ と WICMASK ベク タのどち らかまたはその両方に含まれる論理 1 が、 対応する WICINT 信号に応答し てウ ェークア ッ プする必要があ る こ と を WIC に指示し ます。 プロ グ ラ ム時に、 マス クベク タが WIC によ って保持されます。 WICPEND は、 WIC ブロ ッ ク によ ってキ ャプチャ された保留割 り 込みのベク タです。 こ のベク タは、 NVIC のス リ ープ中に有効に された割 り 込みと検出された割 り 込みの状態を ラ ッ チし た形で提供し ます。 これによ って、 WIC ベースのス リ ープ方式と組み合わせてパルス割 り 込みを使用する こ と ができ ます。

PMU は、 電力オフシーケン ス中にプロセ ッ サがウ ェーク ア ッ プし ないよ う にSLEEPHOLDREQn をアサー ト する必要があ り ます。 SLEEPHOLDACKn によ って応答が返って く れば、 PMU はシステムの電力オフ を継続する こ と ができ ます。 WIC が割 り 込みまたはイベン ト から ウ ェーク ア ッ プ ト リ ガを検出する と、 WAKEUP ピンを使用し て、 プロセ ッ サの電力をオンにする よ う にPMU に指示し ます。 電力が回復する と、 プロセ ッ サは、 優先度が低かったためにウ ェーク ア ッ プイベン ト を発生し なかった割 り 込みなど、 これまでに発生し た割 り 込みを保持し ている WICPEND 信号によ って示される イベン ト と割 り 込みのどち らかまたはその両方を処理し ます。 ウ ェーク ア ッ プ時に、 プ

FCLK

WICENREQ

WICENACK

WICDSREQn

WICDSACKn

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 7- 7

アクセス制限な し 公開

Page 156: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

ロセ ッ サが WICLEAR をアサー ト し て WIC 内に保存されたマス ク の内容を クリ ア し ます。 その後、 プロセ ッ サは、 別の WIC モード ス リ ープ イベン ト が発生する まで、 命令の実行を継続し ます。

上述した機能の例を図 7- 4 p. 7- 9 に示し ます。 状態保存セルと と もに使用する場合の ISOLATEn、 RETAINn、 および PWRDOWN の駆動方法も示し ます。

図 7- 4 電力オフのタ イ ミ ングシーケンス

SLEEPING

WICLOAD

SLEEPDEEP

WICMASK[]

WICCLEAR

nISOLATE

nRETAIN

PWRUP

WICINT[]

WAKEUP

WICPEND

FCLK

1) NVICがdeep sleepモードに入る前にWICLOADを駆動する

2) コアがdeep sleepモードに入る

以下の信号はコアの電力オフシーケンスを示している

3) PMUがコアの電力ドメインを分離する

4) PMUがコアの状態保存を駆動する

5) PMUがコアの電力をオフにする

6) マスク不能割り込みが到着する

7) 割り込みが保留され、WICがWAKEUPをアサートすることによってPMUに通知する

8) PMUがコアの電力をオンにする

9) PMUが状態復元を駆動する

10) PMUがコアの分離を解除する

11) コアが入力IRQ/NMI/RXEVを確認

して、WICCLEARをアサートする

12) WICが保留中の割り込みを

クリアして、WAKEUPを

デアサートする

7- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 157: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

状態保存セルを使用し ている システムの ク ラ ンプ値 と、 PMU、 WIC、 およびNVIC の接続例を図 7- 5 p. 7- 10 に示し ます。 統合を容易にする ために ク ラ ンプ値は同じ値に設定されています。 WICPEND と割 り 込み OR ゲー ト の位置は重要ではあ り ません。 通常、 ク ラ ンプは、 統合中にツールによ って挿入されます。

図 7- 5 PMU、 WIC、 および Cortex-M3 の相互接続

ク ロ ッ クが供給されていない回路では、 WIC からの信号を使用し て、 特定の割 り 込みによ って WIC が WAKEUP 要求を生成し たかど う かを推測し た り 、WIC によ って直接サポー ト されない別の電力低減手段を提供する こ と ができます。 WIC 全体で同じオフセ ッ ト が使用されていれば、 WIC の割 り 込み関連ピ ンに接続する、 INTISR、 NMI、 および RXEV の組み合わせ と その数を気にする必要はあ り ません。

WIC は、 WIC ベースの SLEEPDEEP に移行すべきではないこ と を指示する、または、 WIC がすでに SLEEPDEEP に移行し ていた場合は、 WAKEUP 信号をHIGH に駆動し て SLEEPDEEP ポ リ シーを非 WIC ベースに戻すよ う に指示する信号の WICDISABLE を使用し て無効にする こ と ができ ます。 デバッ ガがシステムに取 り 付け られている場合は、 こ の信号を HIGH のま まにし てデバッグ中の電力分離を避ける必要があ り ます。

クランプ

WAKEUP

WICENREQ

WICENACK

SLEEPDEEP

PMU

WAKEUP

WICSENSE

WICPEND

WICENACK WICDSREQn

WICDSACKn

WICENREQ WICMASK

WICCLEAR

WICLOAD

WIC

WICMASK

WICDSACKn

WICDSREQn

Cortex-M3

WICCLEAR

WICLOAD

INTISR/NMI/RXEV

SLEEPHOLDREQn

SLEEPDEEP

WICINT

0割り込み

OR

SLEEPHOLDACKPMUn

SLEEPHOLDREQPMUn

SLEEPHOLDACKn

ISOLATEn

PWRDOWN

0

0

0

0

0

0

0

0

0

RETAINn

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 7- 9

アクセス制限な し 公開

Page 158: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

電力管理

ウ ェーク ア ッ プイベン ト の発生源 と発生原因は実装定義です。 2 本以上の任意の数の信号を実装でサポー ト する こ と ができ ます。 これによ って、 NMI、デバッ グ要求、 割 り 込み、 および RXEV のセ ッ ト を潜在的なウ ェーク ア ッ プ発生源と し て使用する場合の 大限の柔軟性が提供されます。

Note

電力オフ領域にデバッ グ回路が含まれている場合は、 nTDOEN を慎重に扱 う必要があ り ます。 この信号は、 電力オフ中にイネーブルに される ため、 0 にク ラ ンプする こ と ができ ません。 次のいずれかを実行し て く だ さい。

• ク ラ ンプの両側にイ ンバータ を挿入する。

• コ アの電力オフ中は外部システムが nTDOEN をマス クする。

• 電力オフ中は nTDOEN を 1 に ク ラ ンプする。

7- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 159: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

本章では、 ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC) について説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• NVIC について p. 8- 2

• NVIC のプロ グ ラ マモデル p. 8- 3

• レベル割 り 込み と パルス割 り 込みの比較 p. 8- 48

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 1

アクセス制限な し 公開

Page 160: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

8.1 NVIC について

NVIC には次の特徴があ り ます。

• レ イ テンシが短い例外および割 り 込み処理を実現する

• 電力管理を制御する

• システム制御レジス タ を実装し ている

NVIC は 大 240 の割 り 込みをサポー ト し、 各割 り 込みには 大 256 レベルの優先度を設定でき、 動的に優先度を再設定する こ と も でき ます。 NVIC と プロセ ッ サコ ア イ ン タ フ ェースは密接に結合されている ため、 レ イ テンシの短い割 り 込み処理や、 後着割 り 込みの効率的な処理が可能です。 NVIC は、 割 り 込みのテールチェ イ ンを可能にする ため、 ス タ ッ ク された (ネス ト された) 割り 込みの情報を保持し ます。

NVIC への完全なア ク セスは特権モード からのみ実行でき ますが、 構成制御レジス タ を許可する と、 ユーザモード で割 り 込みを保留する こ と もでき ます(構成制御レジス タ p. 8- 28)。 それ以外のユーザモード でのア ク セスは、 すべてバス フ ォール ト を引き起こ し ます。

すべての NVIC レジス タは、 特に明記されていない限 り 、 バイ ト 、 ハーフワード 、 ワード を使用し てア ク セスでき ます。

すべての NVIC レジス タ と システムデバッ グ レジス タは、 プロセ ッ サのエンデ ィ アン形式の状態にかかわらず、 リ ト ルエンデ ィ アンです。

プロセ ッ サ例外の処理については、 5 章 Exceptions を参照し て下さい。

8- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 161: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

8.2 NVIC のプログラマモデル

このセ ク シ ョ ンでは、 NVIC レジス タの リ ス ト を示し、 説明を行います。 このセ ク シ ョ ンは次の項目から構成されています。

• NVIC レジス タのマ ッ プ

• NVIC レジス タの説明 p. 8- 7

8.2.1 NVIC レジス タのマ ッ プ

NVIC レジス タの一覧を、 テーブル 8- 1 に示し ます。 NVIC はシステム制御空間に含まれています。 NVIC 空間は次のよ う に分け られています。

• 0xE000E000 ~ 0xE000E00F、 割 り 込みタ イプレジス タ

• 0xE000E010 ~ 0xE000E0FF、 システム タ イマ

• 0xE000E100 ~ 0xE000ECFF、 NVIC

• 0xE000ED00 ~ 0xE000ED8F、 システム制御ブロ ッ ク (次の項目が含まれます)

— CPUID

— システム制御、 コ ン フ ィ ギ ュ レーシ ョ ン、 ステータ ス

— フ ォール ト 通知

• 0xE000EF00 ~ 0xE000EF0F、 ソ フ ト ウ ェ ア ト リ ガ例外レジス タ

• 0xE000EFD0 ~ 0xE000EFFF、 ID 空間

テーブル 8- 1 NVIC レジス タ

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

割 り 込み制御タ イプレジス タ 読み出し専用 0xE000E004 a 8- 7

補助制御レジス タ 読み出し / 書き込み 0xE000E008 0x00000000 8- 8

SysTick 制御およびステータ ス レジス タ 読み出し / 書き込み 0xE000E010 0x00000000 8- 9

SysTick リ ロード値レジス タ 読み出し / 書き込み 0xE000E014 予測不能 8- 11

SysTick 現在値レジス タ 読み出し / 書き込みク リ ア

0xE000E018 予測不能 8- 11

SysTick 較正値レジス タ 読み出し専用 0xE000E01C STCALIB 8- 12

割 り 込み要求 (IRQ)0 ~ 31 イ ネーブルセ ット レジス タ

読み出し / 書き込み 0xE000E100 0x00000000 8- 13

. . . . .

. . . . .

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 3

アクセス制限な し 公開

Page 162: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

. . . . .

割 り 込み要求 (IRQ)224 ~ 239 イ ネーブルセ ッ ト レジス タ

読み出し / 書き込み 0xE000E11C 0x00000000 8- 13

割 り 込み要求 (IRQ)0 ~ 31 イネーブルク リア レジス タ

読み出し / 書き込み 0xE000E180 0x00000000 8- 14

. . . . .

. . . . .

. . . . .

割 り 込み要求 (IRQ)224 ~ 239 イ ネーブルクリ ア レジス タ

読み出し / 書き込み 0xE000E19C 0x00000000 8- 14

割 り 込み要求 (IRQ)0 ~ 31 保留セ ッ ト レジス タ

読み出し / 書き込み 0xE000E200 0x00000000 8- 15

. . . . .

. . . . .

. . . . .

割 り 込み要求 (IRQ)224 ~ 239 保留セ ッ ト レジス タ

読み出し / 書き込み 0xE000E21C 0x00000000 8- 15

割 り 込み要求 (IRQ)0 ~ 31 保留ク リ アレジス タ

読み出し / 書き込み 0xE000E280 0x00000000 8- 16

. . . . .

. . . . .

. . . . .

割 り 込み要求 (IRQ)224 ~ 239 保留ク リ アレジス タ

読み出し / 書き込み 0xE000E29C 0x00000000 8- 16

割 り 込み要求 (IRQ)0 ~ 31 ア ク テ ィ ブビ ット レジス タ

読み出し専用 0xE000E300 0x00000000 8- 17

. . . . .

. . . . .

テーブル 8- 1 NVIC レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

8- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 163: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

. . . . .

割 り 込み要求 (IRQ)224 ~ 239 ア ク テ ィ ブビ ッ ト レジス タ

読み出し専用 0xE000E31C 0x00000000 8- 17

通常割 り 込み要求 (IRQ)0 ~ 3 優先度レジスタ

読み出し / 書き込み 0xE000E400 0x00000000 8- 17

. . . . .

. . . . .

. . . . .

通常割 り 込み要求 (IRQ)224 ~ 239 優先度レジス タ

読み出し / 書き込み 0xE000E4EC 0x00000000 8- 17

CPUID ベース レジス タ 読み出し専用 0xE000ED00 0x412FC230 8- 19

割 り 込み制御状態レジス タ 読み出し / 書き込み、または読み出し専用

0xE000ED04 0x00000000 8- 20

ベク タ テーブルオフセ ッ ト レジス タ 読み出し / 書き込み 0xE000ED08 0x00000000 8- 22

アプ リ ケーシ ョ ン割 り 込み / リ セ ッ ト 制御レジス タ

読み出し / 書き込み 0xE000ED0C 0x00000000b 8- 24

システム制御レジス タ 読み出し / 書き込み 0xE000ED10 0x00000000 8- 27

構成制御レジス タ 読み出し / 書き込み 0xE000ED14 0x00000000 8- 28

システムハン ド ラ 4 ~ 7 優先度レジス タ 読み出し / 書き込み 0xE000ED18 0x00000000 8- 30

システムハン ド ラ 8 ~ 11 優先度レジス タ 読み出し / 書き込み 0xE000ED1C 0x00000000 8- 30

システムハン ド ラ 12 ~ 15 優先度レジス タ 読み出し / 書き込み 0xE000ED20 0x00000000 8- 30

システムハン ド ラ制御および状態レジス タ 読み出し / 書き込み 0xE000ED24 0x00000000 8- 31

構成可能フ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED28 0x00000000 8- 35

ハード フ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED2C 0x00000000 8- 41

デバッ グフ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED30 0x00000000 8- 42

メ モ リ 管理ア ド レ ス レジス タ 読み出し / 書き込み 0xE000ED34 予測不能 8- 44

バス フ ォール ト ア ド レ ス レジス タ 読み出し / 書き込み 0xE000ED38 予測不能 8- 45

テーブル 8- 1 NVIC レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 5

アクセス制限な し 公開

Page 164: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

補助フ ォール ト ステータ ス レジス タ 読み出し / 書き込み 0xE000ED3C 0x00000000 8- 46

PFR0: プロセ ッ サ機能レジス タ 0 読み出し専用 0xE000ED40 0x00000030 -

PFR0: プロセ ッ サ機能レジス タ 1 読み出し専用 0xE000ED44 0x00000200 -

DFR0: デバッ グ機能レジス タ 0 読み出し専用 0xE000ED48 0x00100000 -

AFR0: 補助機能レジス タ 0 読み出し専用 0xE000ED4C 0x00000000 -

MMFR0: メ モ リ モデル機能レジス タ 0 読み出し専用 0xE000ED50 0x00000030 -

MMFR1: メ モ リ モデル機能レジス タ 1 読み出し専用 0xE000ED54 0x00000000 -

MMFR2: メ モ リ モデル機能レジス タ 2 読み出し専用 0xE000ED58 0x00000000 -

MMFR3: メ モ リ モデル機能レジス タ 3 読み出し専用 0xE000ED5C 0x00000000 -

ISAR0: ISA 機能レジス タ 0 読み出し専用 0xE000ED60 0x01141110 -

ISAR1: ISA 機能レジス タ 1 読み出し専用 0xE000ED64 0x02111000 -

ISAR2: ISA 機能レジス タ 2 読み出し専用 0xE000ED68 0x21112231 -

ISAR3: ISA 機能レジス タ 3 読み出し専用 0xE000ED6C 0x01111110 -

ISAR4: ISA 機能レジス タ 4 読み出し専用 0xE000ED70 0x01310102 -

ソ フ ト ウ ェ ア ト リ ガ割 り 込みレジス タ 書き込み専用 0xE000EF00 - 8- 46

ペ リ フ ェ ラル識別レジス タ (PID4) 読み出し専用 0xE000EFD0 0x04 -

ペ リ フ ェ ラル識別レジス タ (PID5) 読み出し専用 0xE000EFD4 0x00 -

ペ リ フ ェ ラル識別レジス タ (PID6) 読み出し専用 0xE000EFD8 0x00 -

ペ リ フ ェ ラル識別レジス タ (PID7) 読み出し専用 0xE000EFDC 0x00 -

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [7:0] (PID0)

読み出し専用 0xE000EFE0 0x00 -

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [15:8] (PID1)

読み出し専用 0xE000EFE4 0xB0 -

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [23:16] (PID2)

読み出し専用 0xE000EFE8 0x2B -

テーブル 8- 1 NVIC レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

8- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 165: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

8.2.2 NVIC レジス タの説明

以下のセ ク シ ョ ンでは、 NVIC レジス タの使用法について説明し ます。

Note

メ モ リ 保護ユニ ッ ト (MPU) レジス タ、 およびデバッ グレジス タについては、それぞれ 9 章 Memory Protection Unit と 10 章 Core Debug を参照し て下さい。

割り込みコ ン ト ローラ タ イプ レジス タ

NVIC がサポー ト し ている割 り 込み線の数を確認するには、 割 り 込みコ ン トローラ タ イプ レジス タ を読み込みます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E004

ア ク セス 読み出し専用

リ セ ッ ト 時 そのプロセ ッ サ実装で定義されている割 り 込みの数に依存し ます。

割り込みコン ト ローラ タ イプ レジス タのビ ッ ト 割り当てを、 図 8- 1 に示し ます。

ペ リ フ ェ ラル識別レジス タ ビ ッ ト [31:24] (PID3)

読み出し専用 0xE000EFEC 0x00 -

コ ンポーネン ト 識別レジス タ ビ ッ ト [7:0] (CID0)

読み出し専用 0xE000EFF0 0x0D -

コ ンポーネン ト 識別レジス タ ビ ッ ト [15:8] (CID1)

読み出し専用 0xE000EFF4 0xE0 -

コ ンポーネン ト 識別レジス タ ビ ッ ト[23:16] (CID2)

読み出し専用 0xE000EFF8 0x05 -

コ ンポーネン ト 識別レジス タ ビ ッ ト[31:24] (CID3)

読み出し専用 0xE000EFFC 0xB1 -

a. リ セ ッ ト 時の値は、 定義されている割 り 込みの数によ って異な り ます。

b. ビ ッ ト [10:8] は リ セ ッ ト されます。 ENDIANESS ビ ッ ト のビ ッ ト [15] は、 BIGEND のサンプ リ ングによ る リ

セ ッ ト 時にセ ッ ト されます。

テーブル 8- 1 NVIC レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 7

アクセス制限な し 公開

Page 166: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 8- 1 割り込みコ ン ト ローラ タ イプ レジス タのビ ッ ト 割り当て

割 り 込みコ ン ト ローラ タ イプ レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 2 に示し ます。

補助制御レジス タ

補助制御レジス タは、 プロセ ッ サ内部の特定の機能面を無効にする ために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E008

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

補助制御レジス タのビ ッ ト 割 り 当てを、 図 8- 2 に示し ます。

31 5 4 0

INTLINESNUM予約

テーブル 8- 2 割り込みコ ン ト ローラ タ イプ レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:5] - 予約

[4:0] INTLINESNUM 割 り 込み線の合計数で、 32 個のグループ単位で示されます。

b00000 = 0...32a

b00001 = 33...64

b00010 = 65...96

b00011 = 97...128

b00100 = 129...160

b00101 = 161...192

b00110 = 193...224

b00111 = 225...256a

a. プロセ ッ サは、 1 ~ 240 の外部割 り 込みのみをサポー ト し ます。

8- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 167: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 8- 2 補助制御レジス タのビ ッ ト 割り当て

補助制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 3 に示し ます。

SysTick 制御およびステータ スレジス タ

SysTick 機能を有効にするには、 SysTick 制御およびステータ ス レジス タ を使用し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E010

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

SysTick 制御およびステータ スレジス タのビ ッ ト 割り当てを、 図 8- 3 に示し ます。

31 0

予約

12

DISFOLDDISDEFWBUF

3

DISMCYCINT

テーブル 8- 3 補助制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:3] - 予約

[2] DISFOLD IT フ ォールデ ィ ングを禁止し ます。

[1] DISDEFWBUF デフ ォル ト の メ モ リ マ ッ プ ア ク セス中のラ イ ト バッ フ ァの使用を禁止し ます。これによ って、 すべてのバス フ ォール ト が正確なバス フ ォール ト にな り ますが、メ モ リ へス ト アが完了し なければ、 次の命令を実行でき ないため、 プロセ ッ サの性能が低下し ます。

[0] DISMCYCINT マルチサイ クル命令の割 り 込みを禁止し ます。 これによ って、 割 り 込みのス タ ッキングが発生する前に LDM/STM が完了する ため、 プロセ ッサの割 り 込みレ イ テンシが増大し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 9

アクセス制限な し 公開

Page 168: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 8- 3 SysTick 制御およびステータ スレジス タのビ ッ ト 割り当て

SysTick 制御およびステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 4 に示し ます。

31 0

予約 予約

16 1517

COUNTFLAG

12

CLKSOURCETICKINTENABLE

テーブル 8- 4 SysTick 制御およびステータ スレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:17] - 予約

[16] COUNTFLAG 後の読み出しの後にタ イマが 0 になった場合、 1 を返し ます。 アプ リ ケーシ ョンによ り SysTick 制御およびステータ ス レジス タのどの部分でも読み出される と、ク リ ア されます。 デバッ ガが DAP を使用し て読み出し た と き、 AHB-AP 制御レジス タの MasterType ビ ッ ト が 0 にセ ッ ト されている場合だけは、 このビ ッ ト は読み出し時にク リ ア されます。

[2] CLKSOURCE 0 = 外部参照ク ロ ッ ク

1 = コ ア ク ロ ッ ク

参照ク ロ ッ ク が提供されない場合は、 コ ア ク ロ ッ ク と同じ ク ロ ッ ク が供給されるよ う に 1 のま ま保持し ます。 コ ア ク ロ ッ ク には、 参照ク ロ ッ ク と比べて 低でも2.5 倍以上のス ピード が要求されます。 この要件が満た されない場合、 カ ウ ン ト値は予測不能です。

[1] TICKINT 1 = 0 までカ ウ ン ト ダウ ンする と、 SysTick ハン ド ラ を保留し ます。

0 = 0 までカ ウ ン ト ダウ ン し て も、 SysTick ハン ド ラ を保留し ません。 ソ フ ト ウ ェアは、 COUNTFLAG を使用して、 0 までカ ウ ン ト されたかど う かを判断でき ます。

[0] ENABLE 1 = カ ウ ン タはマルチシ ョ ッ ト 方式で動作し ます。 つま り 、 カ ウ ン タに リ ロード値がロード されてから、 カ ウ ン ト ダウ ンが開始されます。 0 になる と、COUNTFLAG を 1 にセ ッ ト し ます。 また、 オプシ ョ ンで、 TICKINT に基づいてSysTick ハン ド ラ を保留する こ と もでき ます。 その後、 リ ロード値を再びロードし て、 カ ウ ン ト を開始し ます。

0 = カ ウ ン タは禁止されています。

8- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 169: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

SysTick リ ロー ド値レジス タ

カ ウ ン タが 0 になった と きに現在値レジス タへロード される開始値は、SysTick リ ロード値レジス タで指定し ます。 これは、 1 ~ 0x00FFFFFF の任意の値

です。 開始値を 0 にする こ と も でき ますが、 SysTick 割 り 込みとCOUNTFLAG は 1 から 0 へのカ ウ ン ト の際にア ク テ ィ ブ と な る ため、 この値は無効です。

このため、 こ のレジス タがマルチシ ョ ッ ト タ イマ と し て動作する場合、 N + 1回目の ク ロ ッ クパルス (N は 1 ~ 0x00FFFFFF の任意の値) ご と にア ク テ ィ ブ と

な り ます。 し たがって、 テ ィ ッ ク割 り 込みを 100 ク ロ ッ クパルス ご と に発生する必要があ る場合、 RELOAD に 99 を書き込む必要があ り ます。 テ ィ ッ ク割 り 込みご と に新しい値が書き込まれる場合は、 シングルシ ョ ッ ト と し て扱われるので、 実際のカ ウ ン ト ダウ ンを書き込む必要があ り ます。 例えば、 400ク ロ ッ クパルス後にテ ィ ッ ク を発生する必要があ る場合は、 RELOAD に 400を書き込む必要があ り ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E014

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 予測不能

SysTick リ ロード値レジス タのビ ッ ト 割 り 当てを、 図 8- 4 に示し ます。

図 8- 4 SysTick リ ロー ド値レジス タのビ ッ ト 割り当て

SysTick リ ロード値レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 5 に示します。

SysTick 現在値レジス タ

レジス タの現在の値を調べるには、 SysTick 現在値レジス タ を使用し ます。

31 0

RELOAD予約

2324

テーブル 8- 5 SysTick リ ロー ド値レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:24] - 予約

[23:0] RELOAD カ ウ ン タが 0 になった と きに、 SysTick 現在値レジス タにロードする値。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 11

アクセス制限な し 公開

Page 170: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E018

ア ク セス 読み出し / 書き込みク リ ア

リ セ ッ ト 時 予測不能

SysTick 現在値レジス タのビ ッ ト 割 り 当てを、 図 8- 5 に示し ます。

図 8- 5 SysTick 現在値レジス タのビ ッ ト 割り当て

SysTick 現在値レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 6 に示し ます。

SysTick 較正値レジス タ

SysTick 較正値レジス タは、 ソ フ ト ウ ェ アが乗算と除算を使って要求される スピード にス ケー リ ングする こ と ができ る よ う に使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E01C

ア ク セス 読み出し

リ セ ッ ト 時 STCALIB

SysTick 較正値レジス タのビ ッ ト 割 り 当ての説明を、 図 8- 6 に示し ます。

31 0

CURRENT予約

2324

テーブル 8- 6 SysTick 現在値レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:24] - 予約

[23:0] CURRENT レジス タがア ク セス された と きの現在値。 読み出し - 変更 - 書き込み保護は提供されないので、 変更は慎重に行って下さい。

こ のレジス タは書き込みク リ アです。 こ のレジス タに任意の値を書き込むと、 レジス タが 0 に ク リ ア されます。 レジス タ を ク リ アする と、 SysTick 制御およびステータス レジス タの COUNTFLAG ビ ッ ト も ク リ ア されます。

8- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 171: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 8- 6 SysTick 較正値レジス タのビ ッ ト 割り当て

SysTick 較正値レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 7 に示し ます。

割り込みイネーブルセ ッ ト レジス タ

割 り 込みイネーブルセ ッ ト レジス タは、 次の目的に使用し ます。

• 割 り 込みを許可する。

• どの割 り 込みが現在許可されているのかを判別する。

レジス タの各ビ ッ ト は、 32 個の割 り 込みの う ちの 1 つ と対応し ます。 割 り 込みイネーブルセ ッ ト レジス タにビ ッ ト をセ ッ ト する こ と で、 対応する割 り 込みが許可されます。

保留中の割 り 込みのイ ネーブルビ ッ ト がセ ッ ト される と、 プロセ ッ サは優先度に基づいて割 り 込みをア ク テ ィ ブにし ます。 イ ネーブルビ ッ ト が ク リ ア されている場合、 割 り 込み信号をアサー ト する と、 その割 り 込みは保留されます。 しかし、 優先度にかかわらず、 この割 り 込みをア ク テ ィ ブにする こ と はでき ません。 このため、 禁止された割 り 込みは、 ラ ッ チされる汎用 I/O ビ ット と し て使用する こ と ができ ます。 また、 割 り 込みを呼び出すこ と な く こ のビ ッ ト を読み込んで ク リ アでき ます。

31 0

TENMS予約

232430

SKEWNOREF

29

テーブル 8- 7 SysTick 較正値レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31] NOREF 1 = 参照ク ロ ッ クが提供されていません。

[30] SKEW 1 = ク ロ ッ ク周波数が原因で、 較正値が正確に 10ms ではあ り ません。 これは、 ソ フ トウ ェアの リ アルタ イ ム ク ロ ッ ク の安定性に影響を与え る可能性があ り ます。

[29:24] - 予約

[23:0] TENMS この値は、 10ms タ イ ミ ングのために使用する リ ロード値です。 SKEW の値に応じ て、正確に 10ms の場合 と、 10ms に も近 く な る値の場合があ り ます。

この値が 0 と し て読み出される場合、 較正値は不明です。 これは通常、 参照ク ロ ッ クがシステムからの未知の入力であ るか、 動的にスケー リ ングが可能であ るかのいずれかが理由です。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 13

アクセス制限な し 公開

Page 172: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

割 り 込みイ ネーブルセ ッ ト レジス タのビ ッ ト を ク リ アするには、 割 り 込みイネーブルク リ アレジス タの対応する ビ ッ ト に 1 を書き込みます (割 り 込みイネーブルク リ アレジス タ p. 8- 14 参照)。

Note

割 り 込みイ ネーブルセ ッ ト レジス タのビ ッ ト を ク リ ア し て も、 現在ア ク テ ィブな割 り 込みは影響を受けません。 新しい割 り 込みがア ク テ ィ ブにな る こ とのみが禁止されます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E100 ~ 0xE000E11C

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

割 り 込みイ ネーブルセ ッ ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 8 に示し ます。

割り込みイネーブルク リ アレジス タ

割 り 込みイ ネーブルク リ アレジス タは、 次の目的に使用し ます。

• 割 り 込みを禁止する。

• どの割 り 込みが現在禁止されているのかを判別する。

レジス タの各ビ ッ ト は、 32 個の割 り 込みの う ちの 1 つと対応し ます。 割 り 込みイ ネーブルク リ アレジス タのビ ッ ト をセ ッ ト する と、 対応する割 り 込みが禁止されます。

テーブル 8- 8 割り込みイネーブルセ ッ ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] SETENA 割 り 込みイネーブルセ ッ ト ビ ッ ト 。 書き込み操作の場合、 次の意味を持ちます。

1 = 割 り 込みを許可

0 = 無効

読み込み操作の場合、 次の意味を持ちます。

1 = 割 り 込みを許可

0 = 割 り 込みを禁止

SETENA ビ ッ ト に対する 0 の書き込みは無効です。 こ のビ ッ ト を読み出すと、 現在の許可状態が返されます。 SETENA フ ィ ール ド は リ セ ッ ト 時にク リ ア されます。

8- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 173: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E180 ~ 0xE000E19C

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

割 り 込みイネーブルク リ アレジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 9 に示し ます。

割り込み保留セ ッ ト レジス タ

割 り 込み保留セ ッ ト レジス タは、 次の目的に使用し ます。

• 割 り 込みを強制的に保留状態に変更する。

• どの割 り 込みが現在保留されているのかを判別する。

レジス タの各ビ ッ ト は、 32 個の割 り 込みの う ちの 1 つ と対応し ます。 割 り 込み保留セ ッ ト レジス タのビ ッ ト をセ ッ ト する と、 対応する割 り 込みが保留されます。

割 り 込み保留セ ッ ト レジス タのビ ッ ト を ク リ アするには、 割 り 込み保留ク リアレジス タの対応する ビ ッ ト に 1 を書き込みます (割 り 込み保留ク リ アレジス タ参照)。 割 り 込み保留セ ッ ト レジス タのビ ッ ト を ク リ アする と、 割 り 込みは非保留状態にな り ます。

Note

割 り 込み保留セ ッ ト レジス タへの書き込みは、 すでに保留または禁止されている割 り 込みに対し ては無効です。

テーブル 8- 9 割り込みイネーブルク リ アレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] CLRENA 割 り 込みイネーブルク リ アビ ッ ト 。 書き込み操作の場合、 次の意味を持ちます。

1 = 割 り 込みを禁止

0 = 無効

読み込み操作の場合、 次の意味を持ちます。

1 = 割 り 込みを許可

0 = 割 り 込みを禁止

CLRENA ビ ッ ト に対する 0 の書き込みは無効です。 このビ ッ ト を読み出すと、現在の許可状態が返されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 15

アクセス制限な し 公開

Page 174: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E200 ~ 0xE000E21C

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

割 り 込み保留セ ッ ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 10 に示し ます。

割り込み保留ク リ アレジス タ

割 り 込み保留ク リ アレジス タは、 次の目的に使用し ます。

• 保留中の割 り 込みを ク リ アする。

• どの割 り 込みが現在保留されているのかを判別する。

レジス タの各ビ ッ ト は、 32 個の割 り 込みの う ちの 1 つと対応し ます。 割 り 込み保留ク リ アレジス タのビ ッ ト をセ ッ ト する と、 対応する保留中の割 り 込みは非ア ク テ ィ ブの状態にな り ます。

Note

割 り 込み保留ク リ アレジス タへの書き込みは、 ア ク テ ィ ブな割 り 込みに対しては、 その割 り 込みが保留されていない限 り 無効です。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E280 ~ 0xE000E29C

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

テーブル 8- 10 割り込み保留セ ッ ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] SETPEND 割 り 込み保留セ ッ ト ビ ッ ト

1 = 対応する割 り 込みを保留

0 = 対応する割 り 込みは保留し ていない

SETPEND ビ ッ ト に対する 0 の書き込みは無効です。 こ のビ ッ ト を読み出すと、 現在の状態が返されます。

8- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 175: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

割 り 込み保留ク リ アレジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 11 に示し ます。

アク テ ィ ブビ ッ ト レジス タ

どの割 り 込みがア ク テ ィ ブであ るかを判別するには、 ア ク テ ィ ブビ ッ ト レジス タ を読み出し ます。 レジス タの各フ ラ グは、 32 個の割 り 込みの う ちの 1 つと対応し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E300 ~ 0xE000E31C

ア ク セス 読み出し専用

リ セ ッ ト 時 0x00000000

ア ク テ ィ ブビ ッ ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 12 に示し ます。

割り込み優先度レジス タ

割 り 込み優先度レジス タは、 利用可能な各割 り 込みに、 0 ~ 255 の優先度を割 り 当てる ために使用し ます。 0 が も高い優先度で、 255 が も低い優先度です。

テーブル 8- 11 割り込み保留ク リ アレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] CLRPEND 割 り 込み保留ク リ アビ ッ ト

1 = 保留中の割 り 込みを ク リ ア

0 = 保留中の割 り 込みを ク リ ア し ない

CLRPEND ビ ッ ト に対する 0 の書き込みは無効です。 このビ ッ ト を読み出す と、 現在の状態が返されます。

テーブル 8- 12 アク テ ィ ブビ ッ ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] ACTIVE 割 り 込みア ク テ ィ ブフ ラ グ

1 = 割 り 込みはア ク テ ィ ブであ るか、 横取 り されてス タ ッ ク されています。

0 = 割 り 込みは非ア ク テ ィ ブであ るか、ス タ ッ ク されています。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 17

アクセス制限な し 公開

Page 176: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

優先度レジス タには、 実装定義の値が 初にス ト ア されます。 つま り 、 4ビ ッ ト の優先度があ る場合、 優先度の値はバイ ト のビ ッ ト [7:4] に保存されます。 ただし、 3 ビ ッ ト の優先度があ る場合は、 優先度の値はバイ ト のビ ッ ト[7:5] に保存されます。 これは、 アプ リ ケーシ ョ ンがい く つの優先度を利用でき るのか知る必要な しに動作でき る こ と を意味し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000E400 ~ 0xE000E41F

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

割 り 込み 0 ~ 31 用の割 り 込み優先度レジス タ 0 ~ 7 のビ ッ ト 割 り 当てを、図 8- 7 に示し ます。

図 8- 7 割り込み優先度レジス タの 0 ~ 31 ビ ッ ト の割り当て

下位の PRI_n ビ ッ ト によ り 、 優先度グループ化のサブ優先度を指定する こ とができ ます。 例外の優先度 p. 5- 6 を参照し て下さい。

31 23 15 7 0

PRI_3 PRI_2 PRI_1 PRI_0

PRI_7 PRI_6 PRI_5 PRI_4

PRI_11 PRI_10 PRI_9 PRI_8

PRI_15 PRI_14 PRI_13 PRI_12

PRI_19 PRI_18 PRI_17 PRI_16

PRI_23 PRI_22 PRI_21 PRI_20

PRI_27 PRI_26 PRI_25 PRI_24

PRI_31 PRI_30 PRI_29 PRI_28

81624

E000E400

E000E404

E000E408

E000E40C

E000E410

E000E414

E000E418

E000E41C

8- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 177: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

割 り 込み優先度レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 13 に示し ます。 こ こ で、 n は割 り 込みの番号で、 0 よ り 大き く 240 以下です。

CPU ID ベースレジス タ

次の内容を判別するには、 CPU ID ベース レジス タ を読み出し ます。

• プロセ ッ サコ アの ID 番号

• プロセ ッ サコ アのバージ ョ ン番号

• プロセ ッ サコ アの実装の詳細

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED00

ア ク セス 読み出し専用

リ セ ッ ト 時 0x412FC230

CPUID ベース レジス タのビ ッ ト 割 り 当てを、 図 8- 8 に示し ます。

図 8- 8 CPUID ベースレジス タのビ ッ ト 割り当て

CPUID ベース レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 14 に示し ます。

テーブル 8- 13 割り込み優先度レジス タの 0 ~ 31 ビ ッ ト の割り当て

ビ ッ ト フ ィ ールド 機能

[7:0] PRI_n 割 り 込み n の優先度

31 16 15 4 3 0

IMPLEMENTER REVISIONPARTNO

24 23 20 19

VARIANT 定数

テーブル 8- 14 CPUID ベースレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:24] IMPLEMENTER 実装者コード。 ARM の場合は 0x41 です。

[23:20] VARIANT 実装定義のバ リ アン ト 番号

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 19

アクセス制限な し 公開

Page 178: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

割り込み制御状態レジス タ

割 り 込み制御状態レジス タは、 次の目的に使用し ます。

• 保留中のマス ク不能割 り 込み (NMI) をセ ッ ト する。

• 保留中の SVC をセ ッ ト またはク リ アする。

• 保留中の SysTick をセ ッ ト またはク リ アする。

• 保留中の例外をチェ ッ クする。

• も優先度が高い、 保留中の例外のベク タ番号をチェ ッ クする。

• ア ク テ ィ ブな例外のベク タ番号をチェ ッ クする。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED04

ア ク セス 読み出し / 書き込み、 または読み出し専用

リ セ ッ ト 時 0x00000000

割 り 込み制御状態レジス タのビ ッ ト 割 り 当てを、 図 8- 9 p. 8- 21 に示し ます。

[19:16] 定数 0xF と し て読み出されます。

[15:4] PARTNO フ ァ ミ リ 内のプロセ ッ サ番号

[11:10] b11 = Cortex フ ァ ミ リ

[9:8] b00 = バージ ョ ン

[7:6] b00 = 予約

[5:4] b10 = M (v7-M)

[3:0] X = フ ァ ミ リ 番号。 Cortex-M3 フ ァ ミ リ の場合は b0011。

[3:0] REVISION 実装定義の リ ビジ ョ ン番号

テーブル 8- 14 CPUID ベースレジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

8- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 179: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 8- 9 割り込み制御状態レジス タのビ ッ ト 割り当て

割 り 込み制御状態レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 15 に示します。

31 28 22 21 910 0

VECTACTIVE

30 29 27 26 2324 12 11

VECTPENDING

NMIPENDSET

PENDSVSET

PENDSVCLR

ISRPREEMPTISRPENDING

予約

予約

RETTOBASE

25

PENDSTSETPENDSTCLR

予約

8

テーブル 8- 15 割り込み制御状態レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド タ イプ 機能

[31] NMIPENDSET 読み出し / 書き込み

保留中の NMI をセ ッ ト する ビ ッ ト

1 = 保留中の NMI をセ ッ ト し ます。

0 = 保留中の NMI をセ ッ ト し ません。

NMIPENDSET は、 NMI を保留し、 ア ク テ ィ ブにし ます。 NMI は優先の割 り 込みなので、 設定する と直ちに効果を発揮し ます。

[30:29] - - 予約

[28] PENDSVSET 読み出し / 書き込み

保留中の PendSV をセ ッ ト する ビ ッ ト

1 = 保留中の PendSV をセ ッ ト し ます。

0 = 保留中の PendSV をセ ッ ト し ません。

[27] PENDSVCLR 書き込み専用

保留中の PendSV を ク リ アする ビ ッ ト

1 = 保留中の PendSV を ク リ ア し ます。

0 = 保留中の PendSV を ク リ ア し ません。

[26] PENDSTSET 読み出し / 書き込み

保留中の SysTick をセ ッ ト する ビ ッ ト

1 = 保留中の SysTick をセ ッ ト し ます。

0 = 保留中の SysTick をセ ッ ト し ません。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 21

アクセス制限な し 公開

Page 180: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ベク タ テーブルオフセ ッ ト レジス タ

ベク タ テーブル オフセ ッ ト レジス タは、 次の内容を決定する ために使用し ます。

• ベク タ テーブルが RAM またはコー ド メ モ リ にあ るかど う か。

• ベク タ テーブルのオフセ ッ ト 。

[25] PENDSTCLR 書き込み専用

保留中の SysTick を ク リ アする ビ ッ ト

1 = 保留中の SysTick を ク リ ア し ます。

0 = 保留中の SysTick を ク リ ア し ません。

[24] - - 予約

[23] ISRPREEMPT 読み出し専用

このビ ッ ト は、 デバッ グ時のみ使用でき ます。 保留中の割 り 込みが、 次の実行サイ クルにア ク テ ィ ブになる こ と を示し ます。 デバッ グホール ト 制御およびステータ ス レジス タの C_MASKINTS がク リ ア されている場合、 割 り 込みは処理されます。

[22] ISRPENDING 読み出し専用

割 り 込み保留フ ラ グ。 NMI と フ ォール ト は除外し ます。

1 = 割 り 込みは保留中。

0 = 割 り 込みは保留中ではない。

[21:12] VECTPENDING 読み出し専用

保留中の ISR 番号フ ィ ール ド。 VECTPENDING には、 も優先度が高い保留中の ISR の割 り 込み番号が格納されています。

[11] RETTOBASE 読み出し専用

すべてのア ク テ ィ ブな例外のセ ッ ト から IPSR_current_exception を引いた結果が、 空のセ ッ ト であ る場合、 このビ ッ ト は 1 にな り ます。

[10] - - 予約

[9] - - 予約

[8:0] VECTACTIVE 読み出し専用

ア ク テ ィ ブな ISR 番号フ ィ ール ド。 VECTACTIVE には、 NMI およびハード フ ォール ト を含む、 現在実行されている ISR の割 り 込み番号が格納されています。 共有ハン ド ラは、 VECTACTIVE を使用し て、 その ISR がどの割 り 込みによ り 呼び出されたのかを特定でき ます。 VECTACTIVE フ ィ ール ド から 16 を減算し て、 割 り 込みイネーブルク リ ア / セ ッ ト レジス タ、 割 り 込み保留ク リ ア / セ ッ ト レジス タ、 割 り 込み優先度レジス タへのイ ンデッ ク ス とする こ と ができ ます。 INTISR[0] のベク タ番号は 16 です。

VECTACTIVE フ ィ ール ド は リ セ ッ ト 時にク リ ア されます。

テーブル 8- 15 割り込み制御状態レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド タ イプ 機能

8- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 181: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED08

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

ベク タ テーブル オフセ ッ ト レジス タのビ ッ ト 割 り 当てを、 図 8- 10 p. 8- 23 に示し ます。

図 8- 10 ベク タ テーブル オフセ ッ ト レジス タのビ ッ ト 割り当て

ベク タ テーブル オフセ ッ ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 16 に示し ます。

ベク タ テーブル オフセ ッ ト レジス タは、 CODE または SRAM 空間にあ るベクタ テーブルの位置を示し ています。 リ セ ッ ト 時のデフ ォル ト 値は 0 (CODE空間) です。 位置を設定する と き、 オフセ ッ ト はテーブルにあ る例外の数に基づいてア ラ イ ン される必要があ り ます。 つま り 、 16 個までの割 り 込みが使え る、 小のア ラ イ メ ン ト は 32 ワード にな り ます。 割 り 込みの数がよ り 多い場合は、 次の 2 のべき乗まで切 り 上げて、 ア ラ イ メ ン ト を調整する必要があり ます。 例えば、 21 個の割 り 込みが必要な場合、 テーブルサイ ズが 37 ワード にな り 、 次の 2 のべき乗は 64 なので、 ア ラ イ メ ン ト は 64 ワード境界の必要があ り ます。

31 07 6

予約TBLOFF

28

TBLBASE

2930

予約

テーブル 8- 16 ベク タ テーブル オフセ ッ ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:30] - 予約。 RAZ/WI

[29] TBLBASE テーブルベースはコード (0) または RAM(1) のいずれかに存在し ます。

[28:7] TBLOFF ベク タ テーブルベース オフセ ッ ト フ ィ ール ド。 SRAM または CODE 空間の 下位からテーブルのベース までのオフセ ッ ト が含まれています。

[6:0] - 予約。 RAZ/WI

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 23

アクセス制限な し 公開

Page 182: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

Note

テーブルア ラ イ メ ン ト の要件は、 テーブルオフセ ッ ト のビ ッ ト [6:0] が常に0 であ る こ と です。 TBLBASE と TBLOFF が 7'b0000000 で合成され、 完全なベク タ テーブルのベースオフセ ッ ト 値が構成されます。

アプ リ ケーシ ョ ン割り込みおよび リ セ ッ ト 制御レジス タ

アプ リ ケーシ ョ ン割 り 込みおよび リ セ ッ ト 制御レジス タは、 次の目的に使用し ます。

• データのエンデ ィ アン形式を判別する。

• デバッ グまたはハード ウ ェ ア障害からの回復のため、 すべてのア ク テ ィブな状態情報を ク リ アする。

• システム リ セ ッ ト を実行する。

• 優先度のグループ分け位置 (2 進小数点) を変更する。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED0C

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

アプ リ ケーシ ョ ン割 り 込みおよび リ セ ッ ト 制御レジス タのビ ッ ト 割 り 当てを、図 8- 11 に示し ます。

図 8- 11 アプ リ ケーシ ョ ン割り込みおよびリ セ ッ ト 制御レジス タのビ ッ ト 割り当て

31 16 15 0

VECTKEY/VECTKEYSTAT

12

予約

14

PRIGROUP

予約

11 810 7

ENDIANESSVECTCLRACTIVE

VECTRESET

3

SYSRESETREQ

8- 24 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 183: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

アプ リ ケーシ ョ ン割 り 込みおよび リ セ ッ ト 制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 17 に示し ます。

テーブル 8- 17 アプ リ ケーシ ョ ン割り込みおよびリ セ ッ ト 制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:16] VECTKEY レジス タ キー。 このレジス タへ書き込みを行 う には、 VECTKEY フ ィ ール ドに 0x5FA を指定する必要があ り ます。 それ以外の場合、 書き込み値は無視され

ます。

[31:16] VECTKEYSTAT 0xFA05 と し て読み出されます。

[15] ENDIANESS データエンデ ィ アン形式ビ ッ ト

1 = ビ ッ グエンデ ィ アン

0 = リ ト ルエンデ ィ アン

ENDIANESS は、 リ セ ッ ト 時に BIGEND 入力ポー ト からサンプ リ ング されます。 リ セ ッ ト 期間外では ENDIANESS を変更でき ません。

[14:11] - 予約

[10:8] PRIGROUP 割 り 込み優先度グループ分けフ ィ ール ド で、 次の意味を持ちます。

PRIGROUP 0

1

2

3

4

5

6

7

サブ優先度と横取 り 優先度の分割

7.1 で、 横取 り 優先度が 7 ビ ッ ト 、 サブ優先度が 1 ビ ッ ト を示し ます。

6.2 で、 横取 り 優先度が 6 ビ ッ ト 、 サブ優先度が 2 ビ ッ ト を示し ます。

5.3 で、 横取 り 優先度が 5 ビ ッ ト 、 サブ優先度が 3 ビ ッ ト を示し ます。

4.4 で、 横取 り 優先度が 4 ビ ッ ト 、 サブ優先度が 4 ビ ッ ト を示し ます。

3.5 で、 横取 り 優先度が 3 ビ ッ ト 、 サブ優先度が 5 ビ ッ ト を示し ます。

2.6 で、 横取 り 優先度が 2 ビ ッ ト 、 サブ優先度が 6 ビ ッ ト を示し ます。

1.7 で、 横取 り 優先度が 1 ビ ッ ト 、 サブ優先度が 7 ビ ッ ト を示し ます。

0.8 で、 横取 り 優先度な し、 サブ優先度が 8 ビ ッ ト を示し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 25

アクセス制限な し 公開

Page 184: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

Note

SYSRESETREQ は、 システム リ セ ッ ト によ り ク リ ア されます。 これは、VECTRESET を同時にアサー ト する と、 SYSRESETREQ が書き込まれたの と同じサイ クルに ク リ ア される可能性があ る こ と を意味し ます。 こ の場合、 外部

PRIGROUP フ ィ ール ド は、 同じ横取 り レベルを持つ例外のサブ優先度を作成する ために、 2 進小数点の位置を示し ます。 割 り 込み優先度レジス タの PRI_nフ ィ ール ド を、 横取 り レベル と サブ優先度レベルに分割し ます。 2 進小数点の位置は、 値の左です。 つま り 、 PRIGROUP の値は、 下位ビ ッ ト (LSB) の左から始ま る小数点を表し ています。 これは 7:0 のビ ッ ト [0] にな り ます。

優先度に割 り 当て られている ビ ッ ト の数および選択されている実装によ っては、 下位の値は 0 ではないこ と も あ り ます。

[7:3] - 予約

[2] SYSRESETREQ リ セ ッ ト が必要な こ と を示し ている外部システムに対し て、 信号のアサー トを引き起こ し ます。 デバッ グ以外の主要なコ ンポーネン ト すべてについて、強制的に大規模なシステム リ セ ッ ト を行 う こ と を目的と し ています。 こ のビ ッ ト をセ ッ ト し て も、 ホール ト デバッ グが実行されるのを防ぐ こ と はできません。

[1] VECTCLRACTIVE 次のよ う に、 ア ク テ ィ ブなベク タ ビ ッ ト を ク リ ア し ます。

1 = ア ク テ ィ ブな NMI、 フ ォール ト 、 および割 り 込みの、 すべての状態情報をク リ ア し ます。

0 = ク リ ア し ません。

ス タ ッ ク の再初期化はアプ リ ケーシ ョ ンで行 う 必要があ り ます。

VECTCLRACTIVE ビ ッ ト は、 デバッ グ中に既知の状態に戻る ために使用されます。 VECTCLRACTIVE ビ ッ ト は、 自身によ り ク リ ア されます。

IPSR は、 この操作ではク リ ア されません。 こ のため、 アプ リ ケーシ ョ ンで使用する場合は、 ベース レベルの起動またはア ク テ ィ ブビ ッ ト を設定可能なシステムハン ド ラの内部でのみ使用する必要があ り ます。

[0] VECTRESET システム リ セ ッ ト ビ ッ ト で、 デバッ グ コ ンポーネン ト 以外のシステムを リセ ッ ト し ます。

1 = システムを リ セ ッ ト し ます。

0 = システムを リ セ ッ ト し ません。

VECTRESET ビ ッ ト は、 自身によ り ク リ ア されます。 VECTRESET ビ ッ ト は リセ ッ ト 時にク リ ア されます。

デバッ グの場合は、 コ アが停止し た と きのみこ のビ ッ ト を書き込んで下さ い。

テーブル 8- 17 アプ リ ケーシ ョ ン割り込みおよびリ セ ッ ト 制御レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

8- 26 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 185: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

のシステムが SYSRESETREQ を観測でき な く なる可能性があ り ます。 し たがって、 VECTRESET と SYSRESETREQ は排他的に使用し、 同時に両方に 1を書き込まないよ う にする必要があ り ます。

システム制御レジス タ

システム制御レジス タは、 次のよ う な電力管理機能のため使用し ます。

• プロセ ッ サが低電力状態にいつ移行でき るかをシステムへ知らせる

• プロセ ッ サが低電力状態に入る、 または退出する方法の制御

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED10

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

システム制御レジス タのビ ッ ト 割 り 当てを、 図 8- 12 に示し ます。

図 8- 12 システム制御レジス タのビ ッ ト 割り当て

31 4 3 2 1 0

予約

予約

SLEEPDEEPSLEEPONEXIT

予約

5

SEVONPEND

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 27

アクセス制限な し 公開

Page 186: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

システム制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 18 に示し ます。

構成制御レジス タ

構成制御レジス タは、 次の目的に使用し ます。

• NMI、 ハード フ ォール ト 、 FAULTMASK がバス フ ォール ト を無視するのを許可する。

• 0 によ る除算およびアンア ラ イ ン ド ア ク セス を ト ラ ッ プする。

• ソ フ ト ウ ェ ア ト リ ガ例外レジス タへのユーザア ク セス を許可する。

• ス レ ッ ド モードへのエン ト リ を制御する。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED14

ア ク セス 読み出し / 書き込み

テーブル 8- 18 システム制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:5] - 予約

[4] SEVONPEND このビ ッ ト が許可される と、 割 り 込みが非ア ク テ ィ ブから保留中に移行し た と きに、 WFE がウ ェーク ア ッ プされます。 許可されていない場合は、 WFE は外部のSEV 命令で生成された イベン ト 信号のみによ り ウ ェーク ア ッ プされます。 こ のイベン ト 入力 (RXEV) は、 イベン ト 待ちでない と きであって も受け付け られ、 次のWFE に対し て効果を発揮し ます。

[3] - 予約

[2] SLEEPDEEP デ ィ ープス リ ープビ ッ ト

1 = Cortex-M3 ク ロ ッ ク の停止が可能な こ と をシステムに通知し ます。 このビ ット をセ ッ ト する と、 プロセ ッサを停止可能な と きに SLEEPDEEP ポー ト がアサート されます。

0 = システム ク ロ ッ ク を停止する こ と はでき ません。

SLEEPDEEP の使用法の詳細については、 7 章 Power Management を参照し て下さい。

[1] SLEEPONEXIT ハン ド ラモード から ス レ ッ ド モード に戻る と き、 退出時ス リ ープに移行し ます。

1 = ISR の退出時ス リ ープに移行し ます。

0 = ス レ ッ ド モードへ戻る と きにス リ ープへ移行し ません。

割 り 込み駆動型アプ リ ケーシ ョ ンは、 この機能を使用し て、 空の メ イ ンアプ リケーシ ョ ンに戻る こ と を避け られます。

[0] - 予約

8- 28 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 187: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

リ セ ッ ト 時 0x00000200

Note

STKALIGN は、 STKALIGNINIT の値に応じ て、 0 または 1 に リ セ ッ ト する こ とができ ます。

構成制御レジス タのビ ッ ト 割 り 当てを、 図 8- 13 に示し ます。

図 8- 13 構成制御レジス タのビ ッ ト 割り当て

構成制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 19 に示し ます。

31 03 2 1

予約

DIV_0_TRP

予約

UNALIGN_TRP

4

NONBASETHRDENAUSERSETMPEND

8

BFHFNMIGN

57

予約

9

STKALIGN

10

テーブル 8- 19 構成制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:10] _ 予約

[9] STKALIGN 1 = 例外エン ト リ の と きに、 例外の前に使用されていた SP が 8 バイ ト アラ イ ン ド に調整され、 復元のためのコ ンテキス ト が保存されます。 SP は対応する例外からの復帰時に復元されます。

0 = 例外の開始時に、 例外の前に使用されていた SP には、 4 バイ ト のアラ イ メ ン ト のみが保証されます。

[8] BFHFNMIGN 許可された場合、 優先度- 1 および- 2 で実行されているハン ド ラ(ハード フ ォール ト 、 NMI、 および FAULTMASK から昇格されたハン ドラ) が、 ロードおよびス ト ア命令によ り 生じ たデータバス フ ォール ト を無視し ます。 禁止されている場合、 これらのバス フ ォール ト はロ ッ クア ッ プを引き起こ し ます。 こ のビ ッ ト を有効にする場合は、 十分な注意を払 う よ う にし て下さ い。 すべてのデータバス フ ォール ト が無視されるため、 ハン ド ラおよびそのデータが絶対的に安全な メ モ リ にあ る場合のみ、 使用し て下さ い。 通常、 制御パスの問題の検出や修正のためにシステムデバイ スやブ リ ッ ジを調査するのに使用されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 29

アクセス制限な し 公開

Page 188: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

システムハン ド ラ優先度レジス タ

システムハン ド ラ優先度レジス タは 3 つあ り 、 次のシステムハン ド ラの優先度付けに使用し ます。

• メ モ リ 管理

• バス フ ォール ト

• 用法フ ォール ト

• デバッ グモニ タ

• SVC

• SysTick

• PendSV

システムハン ド ラは、 どの優先度レベルに も設定可能な例外ハン ド ラの特殊な ク ラ スです。 ほ と んどのシステムハン ド ラは、 オン (許可) と オフ (禁止)のいずれにも マス ク でき ます。 禁止された場合、 そのフ ォール ト は常にハード フ ォール ト と し て取 り 扱われます。

[7:5] - 予約

[4] DIV_0_TRP 0 によ る除算での ト ラ ッ プ。 これによ り 、 0 によ る除算が試みられた場合のフ ォール ト / 停止が許可されます。 関連する用法フ ォール ト ステータス レジス タのビ ッ ト は DIVBYZERO です。 詳細については、 用法フ ォール ト ステータ ス レジス タ p. 8- 39 を参照し て下さい。

[3] UNALIGN_TRP アンア ラ イ ン ド ア ク セス用の ト ラ ッ プ。 これによ り 、 アンア ラ イ ン ド なハーフ またはフルワード ア ク セスに対する フ ォール ト / 停止が許可されます。 アンア ラ イ ン ド な複数ロード / ス ト アは常にフ ォール ト を引き起こ し ます。 関連する用法フ ォール ト ステータ ス レジス タのビ ッ ト はUNALIGNED です。 詳細については、 用法フ ォール ト ステータ ス レジスタ p. 8- 39 を参照し て下さい。

[2] - 予約

[1] USERSETMPEND 1 が書き込まれた場合、 メ イ ン ス タ ッ ク ポイ ン タ と対応し ている メ イ ン例外を ト リ ガ (保留) するために、 ユーザコード がソ フ ト ウ ェ ア ト リ ガ割 り 込みレジス タに書き込みを行 う こ と を許可し ます。

[0] NONEBASETHRDENA 0 (デフ ォル ト 値) の場合、 後の例外から戻った と きはス レ ッ ド モードのみに移行する こ と ができ ます。 1 に設定されている場合、 戻 り 値の制御によ ってハン ド ラモード のどのレベルからでも ス レ ッ ド モード に移行する こ と が可能です。

テーブル 8- 19 構成制御レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

8- 30 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 189: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED18、 0xE000ED1C、 0xE000ED20

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

システムハン ド ラ優先度レジス タのビ ッ ト 割 り 当てを、 図 8- 14 p. 8- 31 に示し ます。

図 8- 14 システムハン ド ラ優先度レジス タのビ ッ ト 割り当て

システムハン ド ラ優先度レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 20に示し ます。

システムハン ド ラ制御および状態レジス タ

システムハン ド ラ制御状態および状態レジス タは、 次の目的に使用し ます。

• システムハン ド ラ を許可または禁止する。

• バス フ ォール ト 、 メ モ リ 管理フ ォール ト 、 SVC の保留ステータ ス を判定する。

31 23 16 15 7 0

PRI_5 PRI_4PRI_6

24 8

PRI_7

PRI_9 PRI_8PRI_10PRI_11

PRI_12PRI_13PRI_14PRI_15

E000ED18

E000ED1C

E000ED20

テーブル 8- 20 システムハン ド ラ優先度レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:24] PRI_N3 システムハン ド ラ 7、 11、 15 の優先度。 それぞれ、 予約、 SVCall、 SysTickに対応し ます。

[23:16] PRI_N2 システムハン ド ラ 6、 10、 14 の優先度。 それぞれ、 用法フ ォール ト 、 予約、PendSV に対応し ます。

[15:8] PRI_N1 システムハン ド ラ 5、 9、 13 の優先度。 それぞれ、 バス フ ォール ト 、 予約、予約に対応し ます。

[7:0] PRI_N システムハン ド ラ 4、 8、 12 の優先度。 それぞれ、 メ モ リ 管理、 予約、 デ バッ グモニタに対応し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 31

アクセス制限な し 公開

Page 190: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

• システムハン ド ラのア ク テ ィ ブステータ ス を判定する。

フ ォール ト ハン ド ラが禁止されている と きに対応する フ ォール ト 状態が発生し た場合、 そのフ ォール ト はハード フ ォール ト に昇格されます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED24

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

システムハン ド ラ制御および状態レジス タのビ ッ ト 割 り 当てを、 図 8- 15 p. 8- 32 に示し ます。

図 8- 15 システムハン ド ラ制御および状態レジス タのビ ッ ト 割り当て

31 3 1 0

USGFAULTENA

SVCALLPENDED

BUSFAULTENAMEMFAULTENA

7811 101415161718

BUSFAULTPENDED

SYSTICKACTPENDSVACT

MONITORACTSVCALLACT

USGFAULTACT

BUSFAULTACTMEMFAULTACT

13 12 246919

予約

MEMFAULTPENDEDUSGFAULTPENDED

予約

予約

予約

8- 32 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 191: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

システムハン ド ラ制御および状態レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 21 に示し ます。

テーブル 8- 21 システムハン ド ラ制御および状態レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:19] - 予約

[18] USGFAULTENA 禁止する場合は 0 に、 許可する場合は 1 にセ ッ ト し ます。

[17] BUSFAULTENA 禁止する場合は 0 に、 許可する場合は 1 にセ ッ ト し ます。

[16] MEMFAULTENA 禁止する場合は 0 に、 許可する場合は 1 にセ ッ ト し ます。

[15] SVCALLPENDED SVCall が保留されている場合、 1と し て読み出されます。

[14] BUSFAULTPENDED BusFault が保留されている場合、1 と し て読み出されます。

[13] MEMFAULTPENDED MemManage が保留されている場合、 1 と し て読み出されます。

[12] USGFAULTPENDED 用法フ ォール ト が保留されている場合、 1 と し て読み出されます。

[11] SYSTICKACT SysTick がア ク テ ィ ブな場合、 1と し て読み出されます。

[10] PENDSVACT PendSV がア ク テ ィ ブな場合、 1と し て読み出されます。

[9] - 予約

[8] MONITORACT モニ タがア ク テ ィ ブな場合、 1 とし て読み出されます。

[7] SVCALLACT SVCall がア ク テ ィ ブな場合、 1 とし て読み出されます。

[6:4] - 予約

[3] USGFAULTACT UsageFault がア ク テ ィ ブな場合、1 と し て読み出されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 33

アクセス制限な し 公開

Page 192: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ア ク テ ィ ブビ ッ ト は、 ア ク テ ィ ブか、 現在実行中か、 または横取 り によ り スタ ッ ク されている システムハン ド ラがあ るかど う かを示し ます。 この情報はデバッ グに使用され、 アプ リ ケーシ ョ ンハン ド ラによ って も使用されます。保留ビ ッ ト は、 リ ト ラ イでき ないフ ォール ト がよ り 高い優先度の割 り 込みの後着が原因で引き伸ばされている場合のみセ ッ ト されます。

Caution

ア ク テ ィ ブビ ッ ト は書き込み、 ク リ ア、 またはセ ッ ト が可能です。 しかし、実行の際は十分に注意し て下さい。 これらのビ ッ ト の ク リ アおよびセ ッ ト は、ス タ ッ ク の内容の修復や、 他のデータ構造の ク リ ーンア ッ プを行いません。コ ンテキス ト ス イ ッ チャが、 ス レ ッ ド のコ ンテキ ス ト を保存する ために ク リア と セ ッ ト を使用する こ と を意図し ています。 フ ォール ト ハン ド ラ中での使用も考え られます。 も一般的な状況は、 未定義の命令およびコプロセ ッ サのエ ミ ュ レーシ ョ ンのために、 SVCall ハン ド ラ または UsageFault ハン ド ラにあ る ス レ ッ ド のコ ンテキス ト を保存する こ と です。

こ の操作を実行する ためのモデルは、 現在の状態を保存し て、 ハン ド ラのコンテキ ス ト を格納し ている ス タ ッ ク を切 り 替えて、 新しいス レ ッ ド の状態をロード し て、 新しいス レ ッ ド のス タ ッ ク に切 り 替えてから、 ス レ ッ ド に戻るこ と です。 IPSR はこ の操作を反映する よ う に変更されないので、 現在のハンド ラのア ク テ ィ ブビ ッ ト を絶対ク リ ア し ないよ う にし て く だ さ い。 ス タ ッ クされたア ク テ ィ ブなハン ド ラ を変更する ためだけに使用し て下さい。

表で示されている よ う に、 SVCALLPENDED と BUSFAULTPENDED ビ ッ ト は、対応するハン ド ラが後着割 り 込みによ って保留されている場合にセ ッ ト されます。 これらのビ ッ ト は、 元にな るハン ド ラが実際に起動される まで、 ク リア されません。 つま り 、 も し SVCall またはバス フ ォール ト ハン ド ラが開始される前に、 ス タ ッ ク エラーまたはベク タ読み込みエ ラーが発生し た場合、 これらのビ ッ ト はク リ ア されません。 これによ り 、 プ ッ シ ュエラーまたはベクタ読み出しエラーハン ド ラでは、 ビ ッ ト を ク リ アするか再試行するかを選択でき ます。

[2] - 予約

[1] BUSFAULTACT BusFault がア ク テ ィ ブな場合、 1と し て読み出されます。

[0] MEMFAULTACT MemManage がア ク テ ィ ブな場合、1 と し て読み出されます。

テーブル 8- 21 システムハン ド ラ制御および状態レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

8- 34 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 193: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

構成可能フ ォール ト ステータ ス レジス タ

構成可能フ ォール ト ステータ ス レジス タは次の 3 つがあ り 、 ローカルフ ォール ト に関する情報を取得する ために使用し ます。 これらのレジス タには、 次が含まれます。

• メ モ リ 管理フ ォール ト ステータ ス レジス タ

• バス フ ォール ト ステータ ス レジス タ p. 8- 37

• 用法フ ォール ト ステータ ス レジス タ p. 8- 39

これらのレジス タのフ ラ グは、 ローカルフ ォール ト の原因を示し ます。 複数のフ ォール ト が発生し た場合は、 複数のフ ラ グが設定される こ と があ り ます。これらのレジス タは読み出し / 書き込みク リ アです。 つま り 、 これらのレジス タは通常に読み出せますが、 任意のビ ッ ト に 1 を書き込むと、 そのビ ッ トが ク リ ア されます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED28 メ モ リ 管理フ ォール ト ステータ ス レジス タ

0xE000ED29 バス フ ォール ト ステータ ス レジス タ

0xE000ED2A 用法フ ォール ト ステータ ス レジス タ

ア ク セス 読み出し / 1 を書き込んで ク リ ア

リ セ ッ ト 時 0x00000000

構成可能フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当てを、 図 8- 16 に示し ます。

図 8- 16 構成可能フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

Note

個々のステータ ス レジス タへのア ク セスは、 適切なア ド レ ス と サイ ズにア ライ ン させる必要があ り ます。 32 ビ ッ ト ワード全体はア ド レ スの 0xE000ED28 を

使用し てア ク セス され、 BFSR と MFSR はそれぞれが正し く ア ラ イ ン されたバイ ト サイ ズ と し てア ク セス され、 UFSR はア ド レ スの 0xE000ED2A に正し く ア ラ

イ ン されたハーフ ワード と し てア ク セス されます。

31 16 15 8 7 0

バスフォールト

ステータス レジスタ用法フォールトステータス レジスタ

メモリ管理フォールト

ステータス レジスタ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 35

アクセス制限な し 公開

Page 194: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

メ モ リ管理フ ォール ト ステータ ス レジス タ

メ モ リ 管理フ ォール ト ステータ ス レジス タのフ ラ グは、 メ モ リ ア ク セス フ ォール ト の原因を示し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED28

ア ク セス 読み出し / 1 を書き込んで ク リ ア

リ セ ッ ト 時 0x00000000

メ モ リ 管理フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当てを、 図 8- 17 に示し ます。

図 8- 17 メ モ リ管理フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

7 6 5 4 3 2 1 0

M M A R V A L ID

M S T K E R RM U N S T K E R R

D A C C V IO LIA C C V IO L

予 約

予 約

8- 36 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 195: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

メ モ リ 管理フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 22 に示し ます。

バスフ ォール ト ステータ ス レジス タ

バス フ ォール ト ステータ ス レジス タのフ ラ グは、 バスア ク セス フ ォール ト の原因を示し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED29

テーブル 8- 22 メ モ リ管理フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[7] MMARVALID メ モ リ 管理ア ド レ ス レジス タ (MMAR) ア ド レ ス有効フ ラ グ

1 = MMAR での有効なフ ォール ト ア ド レ ス。 バス フ ォール ト などの後着フ ォール トは、 メ モ リ 管理フ ォール ト を ク リ アする こ と ができ ます。

0 = MMAR での有効なフ ォール ト ア ド レ スな し。

優先度が原因でハード フ ォール ト に昇格される MemManage フ ォール ト が発生し た場合、 ハード フ ォール ト ハン ド ラは、 こ のビ ッ ト を ク リ アする必要があ り ます。 これによ って、 MMAR 値が上書き されて し ま っている、 ス タ ッ ク されたア ク テ ィ ブなMemManage ハン ド ラに戻る と い う 問題を防止でき ます。

[6:5] - 予約

[4] MSTKERR 例外のス タ ッ キングで、 1 つ以上のア ク セス違反が発生し ま し た。 SP は調整された状態のま まで、 ス タ ッ ク のコ ンテキス ト 領域の値は正し く ない可能性があ り ます。MMAR は書き込まれていません。

[3] MUNSTKERR 例外からの復帰のアン ス タ ッ キングで、 1 つ以上のア ク セス違反が発生し ま し た。これは、 ハン ド ラにチェ イ ン されているので、 元の復帰ス タ ッ クはまだ存在し ています。 SP は失敗し た復帰によ って調整されず、 新しい保存は実行されていません。MMAR は書き込まれていません。

[2] - 予約

[1] DACCVIOL データ ア ク セス違反フ ラ グ。 許可されていない場所に対し て ロード / ス ト ア操作が試みられる と、 DACCVIOL フ ラ グがセ ッ ト されます。 復帰 PC は、 フ ォール ト の発生し た命令を示し ています。 このエラーでは、 試みられたア ク セスのア ド レ スがMMAR にロード されます。

[0] IACCVIOL 命令ア ク セス違反フ ラ グ。 実行が許可されていない場所から命令のフ ェ ッチが試みられる と、 IACCVIOL フ ラ グがセ ッ ト されます。 このエラーは、 XN 領域へのすべてのア ク セスで発生し、 MPU が禁止されている場合や存在し ない場合でも発生し ます。 復帰 PC は、 フ ォール ト の発生し た命令を示し ています。 MMAR は書き込まれていません。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 37

アクセス制限な し 公開

Page 196: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ア ク セス 読み出し / 1 を書き込んで ク リ ア

リ セ ッ ト 時 0x00000000

バス フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当てを、 図 8- 18 に示し ます。

図 8- 18 バスフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

バス フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 23 に示し ます。

7 6 5 4 3 2 1 0

BFARVALID

STKERRUNSTKERR

IMPRECISERRPRECISERR

IBUSERR

予約

テーブル 8- 23 バスフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[7] BFARVALID こ のビ ッ ト は、 バス フ ォール ト ア ド レ ス レジス タ (BFAR) に有効なア ド レ スが含まれている場合にセ ッ ト されます。 これは、 そのア ド レ スがわかっているバスフ ォール ト の後に真にな り ます。 メ モ リ 管理フ ォール ト など他のフ ォール ト が後で発生する と、 このビ ッ ト がク リ ア される可能性があ り ます。

優先度が原因でハード フ ォール ト に昇格されるバス フ ォール ト が発生し た場合、ハード フ ォール ト ハン ド ラは、 こ のビ ッ ト を ク リ アする必要があ り ます。 これによ って、BFAR 値が上書き されている ス タ ッ ク されたア ク テ ィ ブなバス フ ォール ト ハン ド ラに復帰する場合の問題が回避されます。

[6:5] - 予約

[4] STKERR 例外でのス タ ッ キングで、 1 つ以上のバス フ ォール ト が発生し ま し た。 SP は調整された状態のま まで、 ス タ ッ ク のコ ンテキス ト 領域の値は正し く ない可能性があり ます。 BFAR は書き込まれていません。

[3] UNSTKERR 例外復帰でのアン ス タ ッ キングで、 1 つ以上のバス フ ォール ト が発生し ま し た。 これは、 ハン ド ラにチェ イ ン されているので、 元の復帰ス タ ッ クはまだ存在し ています。 SP は失敗し た復帰によ って調整されず、 新しい保存は実行されていません。 BFAR は書き込まれていません。

8- 38 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 197: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

用法フ ォール ト ステータ ス レジス タ

用法フ ォール ト ステータ ス レジス タのフ ラ グは、 次のエ ラーを示し ます。

• EPSR と命令の不正な組み合わせ

• 不正な PC ロード

• 不正なプロセ ッ サ状態

• 命令デコード エ ラー

• コプロセ ッ サ命令使用の試み

• 不正なアンア ラ イ ン ド ア ク セス

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED2A

ア ク セス 読み出し / 書き込みク リ ア

リ セ ッ ト 時 0x00000000

用法フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当てを、 図 8- 19 に示し ます。

[2] IMPRECISERR 不正確なデータバス エラーこれは BusFault ですが、 復帰 PC は原因であ る命令と関係があ り ません。 これは、 同期フ ォール ト ではあ り ません。 そのため、 現在のア ク テ ィ ベーシ ョ ンの優先度がバス フ ォール ト よ り 高いこ と が検出された場合、保留のみが行われます。 よ り 低い優先度のア ク テ ィ ベーシ ョ ンに戻った際に、 バス フ ォール ト はア ク テ ィ ブにな り ます。 優先度の低い例外に戻る前に正確なフ ォール ト が発生し た場合、 IMPRECISERR と正確なフ ォール ト ステータ ス ビ ッ トの 1 つが同時にセ ッ ト されている こ と が、 ハン ド ラによ って検出されます。 BFARは書き込まれていません。

[1] PRECISERR 正確なデータバス エラーの復帰

[0] IBUSERR 命令バスエラー フ ラ グ

1 = 命令バスエラー

0 = 命令バスエラーな し

IBUSERR フ ラ グは、 プ リ フ ェ ッチエラーによ り セ ッ ト されます。 フ ォール ト はその命令で停止する ため、 分岐シ ャ ドーでエラーが発生し た場合は、 フ ォール ト は発生し ません。 BFAR は書き込まれていません。

テーブル 8- 23 バスフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 39

アクセス制限な し 公開

Page 198: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 8- 19 用法フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

用法フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 24 に示し ます。

7 4 3 2 1 0

NOCP

予約

INVPCINVSTATE

UNDEFINSTR

89

DIVBYZEROUNALIGNED

1015

予約

テーブル 8- 24 用法フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[15-10] - 予約

[9] DIVBYZERO DIV_0_TRP (構成制御レジス タ p. 8- 28 参照) が許可されていて、 SDIV またはUDIV 命令が除数 0 で使用された場合、 こ のフ ォール ト が発生し ます。 命令は実行され、 復帰 PC はこの命令を指し示し ます。 DIV_0_TRP が設定されていない場合は、 除算によ り 0 の商が戻されます。

[8] UNALIGNED UNALIGN_TRP (構成制御レジス タ p. 8- 28 参照) が許可されていて、 アンア ラ イン ド な メ モ リ ア ク セスが試みられた場合、 このフ ォール ト が発生し ます。

アンア ラ イ ン ド な LDM/STM/LDRD/STRD 命令は、 UNALIGN_TRP の設定にかかわらず、 常にフ ォール ト にな り ます。

[7:4] - 予約

[3] NOCP コプロセ ッ サ命令使用の試み。 プロセ ッサはコプロセ ッサ命令をサポー ト し ていません。

[2] INVPC EXC_RETURN を PC に不正にロードする試み。 無効な命令、 無効なコ ンテキスト 、 無効な値。 復帰 PC は、 PC の設定を試みた命令を指し示し ています。

[1] INVSTATE UNDEFINED 命令以外の理由によ る、 EPSR と命令の無効な組み合わせ。 復帰 PCは、 フ ォール ト を引き起こ し た無効な状態の命令を指し示し ます。

[0] UNDEFINSTR UNDEFINSTR フ ラ グは、 プロセ ッサが未定義の命令を実行し よ う と し た場合に設定されます。 これは、 プロセ ッサがデコード でき ない命令です。 復帰 PC は、未定義の命令を指し示し ます。

8- 40 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 199: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

Note

このレジス タが ク リ ア される前に複数のフ ォール ト が発生し た場合、 このフ ォール ト ビ ッ ト は加算的に動作し ます。

ハー ド フ ォール ト ステータ ス レジス タ

ハード フ ォール ト ステータ ス レジス タ (HFSR) は、 ハード フ ォール ト ハン ドラ をア ク テ ィ ブにする イベン ト についての情報を取得する ために使用し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED2C

ア ク セス 読み出し / 1 を書き込んで ク リ ア

リ セ ッ ト 時 0x00000000

HFSR は書き込みク リ アレジス タです。 これは、 ビ ッ ト に 1 を書き込む と、そのビ ッ ト が ク リ ア される こ と を意味し ます。 ハード フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当てを、 図 8- 20 に示し ます。

図 8- 20 ハー ド フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

31 30 2 1 0

予約

29

DEBUGEVTFORCED VECTTBL

予約

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 41

アクセス制限な し 公開

Page 200: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ハード フ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 25 に示し ます。

デバッ グフ ォール ト ステータ ス レジス タ

デバッ グフ ォール ト ステータ ス レジス タは、 次の内容をモニ タするのに使用し ます。

• 外部デバッ グ要求

• ベク タ キ ャ ッ チ

• データ ウ ォ ッ チポ イ ン ト 一致

• BKPT 命令の実行

• ホール ト 要求

複数のフ ォール ト 条件が発生し た場合、 デバッ グフ ォール ト ステータ ス レジス タの複数のフ ラ グがセ ッ ト される こ と があ り ます。 こ のレジス タは読み出し / 書き込みク リ アです。 これは、 通常どお り の読み込みが可能であ る こ とを示し ます。 1 をビ ッ ト に書き込む と、 そのビ ッ ト が ク リ ア されます。

テーブル 8- 25 ハー ド フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31] DEBUGEVT このビ ッ ト は、 デバッ グに関連する フ ォール ト があった場合にセ ッ ト されます。

これは、 ホール ト デバッ グが許可されていない場合のみ起こ り 得ます。 モニ タが許可されたデバッ グの場合、 現在の優先度がモニ タ よ り 高い と きに、 BKPT に対し てのみ起こ り ます。 ホール ト およびモニ タデバッ グの両方が禁止さ ている場合、 無視されないデバッ グ イベン ト ( 低でも BKPT) に対し てのみ起こ り ます。 デバッ グフ ォール ト ステータ ス レジス タは更新されます。

[30] FORCED 構成可能フ ォール ト が受信されま し たが、 優先度または構成可能フ ォール ト が禁止されている こ と が原因でア ク テ ィ ブにでき ないため、 ハード フ ォール ト がア ク テ ィブにな り ま し た。

この場合、 ハード フ ォール ト ハン ド ラは、 他のフ ォール ト ステータ ス レジス タ を読み出し て、 原因を特定する必要があ り ます。

[29:2] - 予約

[1] VECTTBL このビ ッ ト は、 ベク タ テーブルが例外処理 (バス フ ォール ト ) で読み出された こ とが原因でフ ォール ト が発生し た場合にセ ッ ト されます。 こ の場合、 常にハードフ ォール ト にな り ます。 復帰 PC は、 横取 り された命令を指し示し ます。

[0] - 予約

8- 42 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 201: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

Note

これらのビ ッ ト は、 イベン ト がキ ャ ッ チされない限 り セ ッ ト されません。 つま り 、 これはあ る種の停止の原因にな り ます。 ホール ト デバッ グが許可されている場合、 これらのイベン ト はプロセ ッ サを停止し て、 デバッ グ状態に移行させます。 デバッ グが禁止され、 デバッ グモニ タが許可されている場合、優先度によ って許されれば、 これはデバッ グモニ タ ハン ド ラ呼び出しにな ります。 デバッ グ と モニ タが両方 と も禁止されている場合は、 これらのイベント の う ち一部はハード フ ォール ト で、 ハード フ ォール ト ステータ ス レジス タの DBGEVT ビ ッ ト がセ ッ ト されます。 一部のイベン ト は無視されます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED30

ア ク セス 読み出し / 1 を書き込んで ク リ ア

リ セ ッ ト 時 0x00000000

デバッ グフ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当てを、 図 8- 21 に示し ます。

図 8- 21 デバッ グフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

31 4 3 2 1 0

予約

EXTERNALVCATCH

DWTTRAPBKPT

HALTED

5

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 43

アクセス制限な し 公開

Page 202: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

デバッ グフ ォール ト ステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 26 に示し ます。

メ モ リ管理フ ォール ト ア ド レス レジス タ

メ モ リ 管理フ ォール ト ア ド レ ス レジス タは、 メ モ リ 管理フ ォール ト の原因 となった位置のア ド レ ス を読み出すために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED34

ア ク セス 読み出し / 書き込み

テーブル 8- 26 デバッ グフ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:5] - 予約

[4] EXTERNAL 外部デバッ グ要求フ ラ グ

1 = EDBGRQ シグナルがアサー ト されます。

0 = EDBGRQ シグナルはアサー ト されません。

プロセ ッサは次の命令の境界で停止し ます。

[3] VCATCH ベク タ キ ャ ッチ フ ラ グ

1 = ベク タ キ ャ ッチが発生し ま し た。

0 = ベク タ キ ャ ッチは発生し ていません。

VCATCH フ ラ グがセ ッ ト されている場合、 フ ォール ト のタ イプを示すため、 ローカルフ ォール ト ステータ ス レジス タの 1 つのフ ラ グ も セ ッ ト されます。

[2] DWTTRAP データ ウ ォ ッチポイ ン ト および ト レース (DWT) フ ラ グ

1 = DWT 一致

0 = DWT 不一致

プロセ ッサは、 現在の命令または次の命令で停止し ます。

[1] BKPT BKPT フ ラ グ

1 = BKPT 命令を実行し ます。

0 = BKPT 命令を実行し ません。

BKPT フ ラ グは、 フ ラ ッ シュパッチ コードおよび通常コード中の BKPT 命令でセ ット されます。 復帰 PC は、 命令を含むブレーク ポイ ン ト を指し示し ます。

[0] HALTED ホール ト 要求フ ラ グ

1 = ステ ッ プを含む、 NVIC によ り 要求されたホール ト 。 プロセ ッサは次の命令でホール ト し ます。

0 = ホール ト 要求な し

8- 44 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 203: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

リ セ ッ ト 時 予測不能

メ モ リ 管理フ ォール ト ア ド レ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 27 に示し ます。

バスフ ォール ト ア ド レス レジス タ

バス フ ォール ト ア ド レ ス レジス タは、 バス フ ォール ト が発生し た位置のア ドレ ス を読み出すために使用し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED38

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 予測不能

バス フ ォール ト ア ド レ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 28に示し ます。

テーブル 8- 27 メ モ リ管理フ ォール ト ア ド レス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] ADDRESS メ モ リ 管理フ ォール ト ア ド レ ス フ ィ ール ド。 ADDRESS は、 フ ォール ト が発生し たロード / ス ト アを試みたデータ ア ド レ スです。 アンア ラ イ ン ド なア ク セスでフ ォールト が発生し た場合、 こ のア ド レ スは実際にフ ォール ト が発生し たア ド レ スです。 ア クセスはア ラ イ ン された複数の部分に分割されている可能性があ るので、 こ のア ド レ スは要求されたサイ ズの範囲内の任意のオフセ ッ ト の可能性があ り ます。 メ モ リ 管理フ ォール ト ステータ ス レジス タのフ ラ グは、 フ ォール ト の原因を示し ます。 メ モ リ管理フ ォール ト ステータ ス レジス タ p. 8- 36 を参照し て下さい。

テーブル 8- 28 バスフ ォール ト ア ド レス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] ADDRESS バス フ ォール ト ア ド レ ス フ ィ ール ド。 ADDRESS は、 フ ォール ト が発生し た ロード / ス ト アを試みたデータ ア ド レ スです。 アンア ラ イ ン ド なア ク セスでフ ォール ト が発生し た場合のア ド レ スは、 仮にそれがフ ォール ト の発生し たア ド レ スでな く て も、 その命令によ り 要求されたア ド レ スにな り ます。 バス フ ォール ト ステータ ス レジス タのフラ グは、 フ ォール ト の原因を示し ます。 バス フ ォール ト ステータ ス レジス タ p. 8- 37を参照し て下さい。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 45

アクセス制限な し 公開

Page 204: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

補助フ ォール ト ステータ ス レジス タ

補助フ ォール ト ステータ ス レジス タ (AFSR) は、 ソ フ ト ウ ェ アに対し て追加のシステムフ ォール ト 情報を判定する ために使用し ます。

AFSR フ ラ グは、 プロセ ッ サの AUXFAULT 入力に直接マ ッ プ されます。 外部ピンが 1 サイ クルの間 HIGH レベルにな る と、 対応する AFSR ビ ッ ト が 1 とし て ラ ッチされます。 このビ ッ ト は、 対応する AFSR ビ ッ ト に 1 を書き込むこ と によ ってのみク リ ア されます。

AFSR ビ ッ ト が書き込まれた場合、 または 1 と し て ラ ッ チされた場合、 例外は発生し ません。 例外が必要な場合は、 割 り 込みを使 う 必要があ り ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED3C

ア ク セス 読み出し / 書き込みク リ ア

リ セ ッ ト 時 0x00000000

AFSR のビ ッ ト 割 り 当ての説明を示し ます。

ソ フ ト ウ ェ ア ト リ ガ割り込みレジス タ

ソ フ ト ウ ェ ア ト リ ガ割 り 込みレジス タは、 ト リ ガを行 う 割 り 込みを保留するために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000EF00

ア ク セス 書き込み専用

リ セ ッ ト 時 0x00000000

ソ フ ト ウ ェア ト リ ガ割り込みレジス タのビ ッ ト 割り当てを、 図 8- 22 に示し ます。

テーブル 8- 29 補助フ ォール ト ステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] IMPDEF 実装定義。 これらのビ ッ ト は、 AUXFAULT 入力への信号割 り 当てに直接マ ッ ピングされます。 その他の命令 p. A- 4 を参照し て下さい。

8- 46 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 205: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 8- 22 ソ フ ト ウ ェ ア ト リ ガ割り込みレジス タのビ ッ ト 割り当て

ソ フ ト ウ ェ ア ト リ ガ割 り 込みレジス タのビ ッ ト 割 り 当ての説明を、 テーブル 8- 30 に示し ます。

931 0

予約 INTID

8

テーブル 8- 30 ソ フ ト ウ ェ ア ト リ ガ割り込みレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:9] - 予約

[8:0] INTID 割 り 込み ID フ ィ ール ド。 INTID フ ィ ール ド に値を書き込むこ と は、 割 り 込み保留セ ット レジス タの対応する割 り 込みビ ッ ト をセ ッ ト し て、 割 り 込みを手動で保留する こ とと同じです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 8- 47

アクセス制限な し 公開

Page 206: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

8.3 レベル割り込みとパルス割り込みの比較

プロセ ッ サは、 レベル割 り 込み と パルス割 り 込みの両方をサポー ト し ています。 レベル割 り 込みは、 デバイ スにア ク セスする ISR によ って ク リ ア されるまで、 アサー ト され続けます。 パルス割 り 込みは、 エ ッ ジモデルの一種です。エ ッ ジは、 非同期のま まではな く 、 Cortex-M3 ク ロ ッ ク (FCLK) の立ち上が りエ ッ ジでサンプ リ ング される必要があ り ます。

レベル割 り 込みの場合、 割 り 込みルーチンから戻る前に信号がアサー ト 解除されない と きは、 割 り 込みは再保留され、 再度ア ク テ ィ ブにな り ます。 これは FIFO およびバッ フ ァベースのデバイ スの場合に特に有用です。 これにより 、 それらのデバイ スが余分な作業な しに、 1 つの ISR によ って、 または起動の繰 り 返しによ って ド レ イ ン される こ と が保証されるのが理由です。 これは、 デバイ スは空にな る まで、 信号をアサー ト のま ま保持する こ と を意味します。

パルス割 り 込みは、 ISR の間に再アサー ト する こ と ができ ます。 こ のため、割 り 込みが同時に保留中 と ア ク テ ィ ブの両方の状態にな る場合があ り ます。アプ リ ケーシ ョ ンの設計では、 初のパルスがア ク テ ィ ブにな る前に 2 番目のパルスが到着し ないこ と を保証する必要があ り ます。 初の割 り 込みがすでに保留し ているので、 2 番目の保留は無効です。 ただし、 割 り 込みが 1 サイ クル以上アサー ト された場合、 NVIC は保留ビ ッ ト を ラ ッチし ます。 ISR がア ク テ ィ ブにな る と、 保留ビ ッ ト はク リ ア されます。 ISR がア ク テ ィ ブな間に割 り 込みが再度アサー ト された場合、 保留ビ ッ ト が再度ラ ッ チされる こ とがあ り ます。

パルス割 り 込みは、 ほ と んどの場合外部信号によ って、 一定の間隔で発生する、 または繰 り 返し発生する信号に使用されます。

8- 48 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 207: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

9 章 メ モ リ保護ユニ ッ ト

本章では、 メ モ リ 保護ユニ ッ ト (MPU) について説明し ます。 本章は以下のセク シ ョ ンから構成されています。

• MPU について p. 9- 2

• MPU のプロ グ ラ マモデル p. 9- 3

• 割 り 込み と MPU の更新 p. 9- 21

• MPU のア ク セス許可 p. 9- 14

• MPU アボー ト p. 9- 17

• MPU 領域の更新 p. 9- 18

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 1

アクセス制限な し 公開

Page 208: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.1 MPU について

MPU は、 メ モ リ を保護する ためのオプシ ョ ン コ ンポーネン ト です。 プロセ ッサは、 標準の ARMv7 保護 メ モ リ システム アーキテ クチャ (PMSAv7) モデルをサポー ト し ています。 MPU は、 次の機能を完全にサポー ト し ています。

• 保護領域

• 次のよ う な昇順領域優先度を持つ保護領域のオーバーラ ッ プ

— 7 = 高優先度

— 0 = 低優先度

• ア ク セス許可

• システムへの メ モ リ 属性のエ ク スポー ト

MPU で不一致やア ク セス許可違反が発生する と、 優先度をプロ グ ラ ム可能なメ モ リ 管理フ ォール ト ハン ド ラが呼び出されます。 詳細については、 メ モ リ管理フ ォール ト ア ド レ ス レジス タ p. 8- 44 を参照し て下さい。

MPU は、 次の目的に使用でき ます。

• 特権ルールの強制

• プロセスの分離

• ア ク セス規則の強制

9- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 209: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.2 MPU のプログラマモデル

このセ ク シ ョ ンでは、 MPU を制御する レジス タについて説明し ます。 こ のセク シ ョ ンは次の項目から構成されています。

• MPU レジス タの概要

• MPU レジス タの説明

9.2.1 MPU レジス タの概要

MPU レジス タの概要を、 テーブル 9- 1 に示し ます。

テーブル 9- 1 MPU レジス タ

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

MPU タ イプレジス タ 読み出し専用

0xE000ED90 0x00000800 p. 9- 4

MPU 制御レジス タ 読み出し / 書き込み

0xE000ED94 0x00000000 p. 9- 5

MPU 領域番号レジス タ 読み出し / 書き込み

0xE000ED98 - p. 9- 6

MPU 領域ベースア ド レ ス レジス タ 読み出し / 書き込み

0xE000ED9C - p. 9- 7

MPU 領域属性およびサイ ズレジス タ 読み出し / 書き込み

0xE000EDA0 - p. 9- 8

MPU エイ リ アス 1 領域ベースア ド レ ス レジス タ

D9C のエイ

リ アス

0xE000EDA4 - p. 9- 12

MPU エイ リ アス 1 領域属性およびサイ ズレジス タ

DA0 のエイ

リ アス

0xE000EDA8 - p. 9- 12

MPU エイ リ アス 2 領域ベースア ド レ ス レジス タ

D9C のエイ

リ アス

0xE000EDAC - p. 9- 12

MPU エイ リ アス 2 領域属性およびサイ ズレジス タ

DA0 のエイ

リ アス

0xE000EDB0 - p. 9- 12

MPU エイ リ アス 3 領域ベースア ド レ ス レジス タ

D9C のエイ

リ アス

0xE000EDB4 - p. 9- 12

MPU エイ リ アス 3 領域属性およびサイ ズレジス タ

DA0 のエイ

リ アス

0xE000EDB8 - p. 9- 12

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 3

アクセス制限な し 公開

Page 210: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.2.2 MPU レジス タの説明

こ のセ ク シ ョ ンでは、 それぞれの MPU レジス タについて説明し ます。

MPU タ イプレジス タ

MPU タ イプレジス タは、 MPU がサポー ト する領域の数を確認する ために使用し ます。 MPU が存在するかど う かを判定するには、 ビ ッ ト [15:8] を読み出し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED90

ア ク セス 読み出し専用

リ セ ッ ト 時 0x00000800

MPU タ イプレジス タのビ ッ ト 割 り 当ての説明を、 図 9- 1 に示し ます。

図 9- 1 MPU タ イプレジス タのビ ッ ト 割り当て

MPU タ イプレジス タのビ ッ ト 割 り 当ての説明を、 テーブル 9- 2 に示し ます。

予約

31 24 23 16 15 8 7 1 0

IREGION DREGION 予約

SEPARATE

テーブル 9- 2 MPU タ イプレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:24] - 予約

[23:16] IREGION このプロセ ッ サコ アでは統合 MPU しか使用されないため、 IREGION は常に 0x00 に設

定されています。

[15:8] DREGION サポー ト されている MPU 領域の数を示すフ ィ ール ド。 8 つの領域をサポー ト するMPU が実装されている場合は DREGION が 0x08 に設定されますが、 そ う でない場合

は 0x00 に設定されています。

[7:0] - 予約

[0] SEPARATE このプロセ ッ サコ アでは統合 MPU しか使用されないため、 SEPARATE は常に 0 に設定されています。

9- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 211: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

MPU 制御レジス タ

MPU 制御レジス タは次の目的に使用し ます。

• MPU を許可する。

• デフ ォル ト の メ モ リ マ ッ プ (バッ ク グ ラ ウ ン ド 領域) を許可する。

• ハード フ ォール ト 、 マス ク不能割 り 込み (NMI)、 FAULTMASK で昇格されたハン ド ラ内で MPU を許可する。

MPU が許可されている場合、 PRIVDEFENA ビ ッ ト がセ ッ ト されていないかぎり 、 MPU が動作するには、 少な く と も メ モ リ マ ッ プの 1 つの領域が MPU で許可されている必要があ り ます。 PRIVDEFENA ビ ッ ト がセ ッ ト されてお り 、どの領域も許可されていない場合、 特権コード 以外は実行でき ません。

MPU が禁止されている場合は、 MPU が存在し ない場合 と同様に、 デフ ォルト のア ド レ スマ ッ プが使用されます。

MPU が許可されている場合、 システムパーテ ィ シ ョ ンへのア ク セス と、 ベクタ テーブルのロード ア ク セスだけがいつで も実行でき ます。 その他の部分へア ク セスが可能かど う かは、 領域と、 PRIVDEFENA ビ ッ ト がセ ッ ト されているかど う かに基づいて決定されます。

HFNMIENA がセ ッ ト されていない場合、 例外の優先度が- 1 または- 2 の ときには MPU が許可されません。 これらの優先度は、 ハード フ ォール ト や NMIが発生し た場合、 または FAULTMASK が許可されている場合にのみ起こ り 得ます。 この 2 つの優先度で動作し ている場合、 HFNMIENA ビ ッ ト によ ってMPU が許可されます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED94

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

MPU 制御レジス タのビ ッ ト 割 り 当ての説明を、 図 9- 2 に示し ます。

図 9- 2 MPU 制御レジス タのビ ッ ト 割り当て

31 1 0

予約

HFNMIENAENABLE

2

PRIVDEFENA

3

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 5

アクセス制限な し 公開

Page 212: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

MPU 制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 9- 3 に示し ます。

MPU 領域番号レジス タ

MPU 領域番号レジス タは、 どの保護領域をア ク セスするかを選択するのに使用し ます。 保護領域を選択し た ら、 MPU 領域ベースア ド レ ス レジス タ またはMPU 属性およびサイ ズレジス タ を使用し て、 その領域の特性を設定し ます。

テーブル 9- 3 MPU 制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:2] - 予約

[2] PRIVDEFENA こ のビ ッ ト は、 MPU が許可されている場合に、 特権ア ク セス用のデフ ォル ト の メモ リ マ ッ プをバッ ク グ ラ ウ ン ド領域と し て許可し ます。 バッ ク グ ラ ウ ン ド領域は、どの設定可能な領域よ り も前に領域番号 1 と し て存在するかのよ う に機能し ます。他の領域を設定する と、 このデフ ォル ト のマ ッ プ上にオーバレ イ され、 デフ ォルト 設定よ り 優先されます。

こ のビ ッ ト を 0 にセ ッ ト し た場合は、 デフ ォル ト の メ モ リ マ ッ プは禁止され、 メモ リ は領域フ ォール ト でカバーされません。

MPU が許可され、 PRIVDEFENA が許可されている場合のデフ ォル ト の メ モ リ マ ップは、 4 章 Memory Map で説明されている とお り です。 こ の メ モ リ マ ッ プは、 メ モリ タ イプ、 実行不可 (XN)、 キ ャ ッ シュ、 および共有可の規則が適用されます。 ただし、 これは特権モード (フ ェ ッチ とデータ ア ク セス) でのみ適用されます。ユーザモード では、 そのコード とデータ用の領域を設定し ない限 り 、 コード はフ ォール ト を発生し ます。

MPU が禁止されている場合は、 特権モード と ユーザモード の両方のコード でデフ ォル ト のマ ッ プが使用されます。

XN 規則 と SO 規則は、 MPU が許可されているかど う かに関係な く 、 常にシステムパーテ ィ シ ョ ンに適用されます。

MPU が禁止されている場合、 このビ ッ ト は無視されます。

PRIVDEFENA ビ ッ ト は リ セ ッ ト 時にク リ ア されます。

[1] HFNMIENA こ のビ ッ ト は、 ハード フ ォール ト 、 NMI、 および FAULTMASK で昇格されたハンド ラ内で MPU を許可し ます。 こ のビ ッ ト が 1 で、 ENABLE ビ ッ ト が 1 の場合は、これらのハン ド ラ内で MPU が許可されます。 こ のビ ッ ト が 0 の場合は、 ENABLEの値に関係な く 、 これらのハン ド ラ内で MPU が禁止されます。 こ のビ ッ ト が 1 でENABLE ビ ッ ト が 0 の場合、 動作は予測不能です。

HFNMIENA ビ ッ ト は リ セ ッ ト 時にク リ ア されます。

[0] ENABLE MPU 許可ビ ッ ト

1 = MPU を許可

0 = MPU を禁止

ENABLE ビ ッ ト は リ セ ッ ト 時に ク リ ア されます。

9- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 213: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED98

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 予測不能

MPU 領域番号レジス タのビ ッ ト 割 り 当ての説明を、 図 9- 3 p. 9- 7 に示し ます。

図 9- 3 MPU 領域番号レジス タのビ ッ ト 割り当て

MPU 領域番号レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 9- 4 に示し ます。

MPU 領域ベースア ド レス レジス タ

MPU 領域ベースア ド レ ス レジス タは、 領域のベースア ド レ ス を書き込むのに使用し ます。 このレジス タにも REGION フ ィ ール ド があ る ため、 VALID ビ ット がセ ッ ト されていれば、 MPU 領域番号レジス タ内の REGION フ ィ ール ド をオーバラ イ ドする こ と ができ ます。

領域ベースア ド レ ス レジス タは、 領域のベースア ド レ ス を設定し ます。 こ のレジス タはその領域のサイ ズでア ラ イ ン し ます。 つま り 、 64KB の領域は、64KB の倍数、 た と えば、 0x00010000 や 0x00020000 でア ラ イ ンする必要があ り ま

す。

領域は、 常に現在の MPU 領域番号 と し て読み出されます。 VALID は、 常に 0と し て読み出されます。 VALID と REGION にそれぞれ 1 と n を書き込む と、領域番号が n に変更されます。 これは、 MPU 領域番号レジス タに書き込む簡単な方法です。

予約

31 8 7 0

REGION

テーブル 9- 4 MPU 領域番号レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:8] - 予約

[7:0] REGION 領域選択フ ィ ール ド。 領域属性およびサイ ズレジス タ と領域ベースア ド レ ス レジスタ を使用する と きに、 操作をする領域を選択し ます。 こ のフ ィ ール ド を上書きする、ア ド レ スの VALID フ ィ ール ド + REGION フ ィ ール ドへの書き込みの場合を除いて、

初にこ のフ ィ ール ド に書き込む必要があ り ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 7

アクセス制限な し 公開

Page 214: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

こ のレジス タにワード以外でア ク セス し た場合の結果は予測不能です。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000ED9C

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 予測不能

MPU 領域ベースア ド レ ス レジス タのビ ッ ト 割 り 当ての説明を、 図 9- 4 p. 9- 8に示し ます。

図 9- 4 MPU 領域ベースア ド レス レジス タのビ ッ ト 割り当て

MPU 領域ベースア ド レ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 9- 5に示し ます。

MPU 領域属性およびサイズレジス タ

MPU 領域属性およびサイ ズレジス タは、 MPU ア ク セス許可を制御する ために使用し ます。 このレジス タは、 それぞれがハーフ ワード サイ ズの 2 つの部分レジス タで構成されています。 これらの部分レジス タには、 それぞれのサイ ズを使用し てア ク セスする こ と も、 ワード操作を使用し て同時にア ク セスする こ と もでき ます。

31 0

ADDR REGION

4 3

VALID

N

テーブル 9- 5 MPU 領域ベースア ド レス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:N] ADDR 領域ベースア ド レ ス フ ィ ール ド。 ベースア ド レ スは領域サイ ズの偶数倍でア ラ イ ン されるため、 N の値は領域サイ ズに依存し ます。 MPU 領域属性およびサイ ズレジス タのSZENABLE フ ィ ール ド で指定されたサイ ズの 2 のべき乗によ って、 ベースア ド レ スで何ビ ッ ト が使用されるかが決ま り ます。

[4] VALID MPU 領域番号有効ビ ッ ト

1 = MPU 領域番号レジス タのビ ッ ト [3:0] (REGION 値) が書き換え られます。

0 = MPU 領域番号レジス タは変化せず、 解釈されています。

[3:0] REGION MPU 領域オーバラ イ ド フ ィ ール ド

9- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 215: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

領域サイ ズが 32、 64、 128 バイ ト の場合は、 サブ領域禁止ビ ッ ト がサポー トされません。 これらの領域サイ ズが使用されている場合は、 サブ領域禁止ビ ッ ト を 0 と し てプロ グ ラ ムする必要があ り ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000EDA0

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 予測不能

MPU 領域属性およびサイ ズレジス タのビ ッ ト 割 り 当てを、 図 9- 5 p. 9- 9 に示し ます。

図 9- 5 MPU 領域属性およびサイズレジス タのビ ッ ト 割り当て

MPU 領域属性およびサイ ズレジス タのビ ッ ト 割 り 当てを、 テーブル 9- 6 に示し ます。 詳細については、 MPU のア ク セス許可 p. 9- 14 を参照し て下さい。

31 29 28 27 26 24 23 22 21 19 18 17 16 15 8 7 6 5 1 0

予約 SRD SIZEXN e

s

RAP 予約 TEX S C B 予約

ENA

テーブル 9- 6 MPU 領域属性およびサイズレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:29] - 予約

[28] XN 命令ア ク セス禁止ビ ッ ト

1 = 命令フ ェ ッチを禁止し ます。

0 = 命令フ ェ ッチを許可し ます。

[27] - 予約

[26:24] AP データ ア ク セス許可フ ィ ール ド

値 特権ア ク セス許可 ユーザア ク セス許可

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 9

アクセス制限な し 公開

Page 216: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

b000

b001

b010

b011

b100

b101

b110

b111

ア ク セス不可

読み出し / 書き込み

読み出し / 書き込み

読み出し / 書き込み

予約

読み出し専用

読み出し専用

読み出し専用

ア ク セス不可

ア ク セス不可

読み出し専用

読み出し / 書き込み

予約

ア ク セス不可

読み出し専用

読み出し専用

[23:22] - 予約

[21:19] TEX タ イプ拡張フ ィ ール ド

[18] S 共有可ビ ッ ト

1 = 共有可

0 = 共有不可

[17] C キ ャ ッ シュ可ビ ッ ト

1 = キ ャ ッ シュ可

0 = キ ャ ッ シュ不可

[16] B バッ フ ァ可ビ ッ ト

1 = バッ フ ァ可

0 = バッ フ ァ不可

[15:8] SRD サブ領域禁止 (SRD) フ ィ ール ド。 SRD ビ ッ ト をセ ッ ト する と、 対応するサブ領域が禁止されます。 領域は、 同じサイ ズの 8 つのサブ領域に分割されます。 128 バイ ト 以下の領域サイ ズについては、 サブ領域はサポー ト されません。 詳細については、 サブ領域 p. 9- 13 を参照し て下さい。

[7:6] - 予約

[5:1] SIZE MPU 保護領域サイ ズフ ィ ール ド。 テーブル 9- 7 を参照し て下さい。

[0] ENABLE 領域許可ビ ッ ト

テーブル 9- 6 MPU 領域属性およびサイズレジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

9- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 217: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

ア ク セス許可の詳細については、 MPU のア ク セス許可 p. 9- 14 を参照し て下さい。

テーブル 9- 7 MPU 保護領域サイズフ ィ ールド

領域 サイズ

b00000 予約

b00001 予約

b00010 予約

b00011 予約

b00100 32B

b00101 64B

b00110 128B

b00111 256B

b01000 512B

b01001 1KB

b01010 2KB

b01011 4KB

b01100 8KB

b01101 16KB

b01110 32KB

b01111 64KB

b10000 128KB

b10001 256KB

b10010 512KB

b10011 1MB

b10100 2MB

b10101 4MB

b10110 8MB

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 11

アクセス制限な し 公開

Page 218: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.2.3 エイ リ アスレジス タ を使用し た MPU へのア クセス

レジス タのエイ リ アシングを使用し て、 MPU レジス タのロード速度を 適化する こ と ができ ます。 ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC) のエイ リアス レジス タが 3 セ ッ ト あ り ます。 詳細については、 NVIC レジス タの説明 p. 8- 7 を参照し て下さい。

エイ リ アスによ る レジス タへのア ク セスは、 通常の方法と全 く 同じです。 これらのエイ リ アス を使用する と、 シーケンシ ャル書き込み (STM) によ って 1~ 4 個の領域を更新する こ と ができ ます。 この方法は、 禁止 / 変更 / 許可の必要がない場合に使用し ます。

領域の内容を読み出す場合は領域番号を書き込む必要があ る ため、 エイ リ アスは使用でき ません。

4 つの領域を更新する ためのコー ド シーケン スの例を次に示し ます。

; R1 = 4 region pairs from process control block (8 words)MOVR0,#NVIC_BASEADD R0,#MPU_REG_CTRLLDM R1, [R2-R9] ; load region information for 4 regionsSTM R0, [R2-R9] ; update all 4 regions at once

b10111 16MB

b11000 32MB

b11001 64MB

b11010 128MB

b11011 256MB

b11100 512MB

b11101 1GB

b11110 2GB

b11111 4GB

テーブル 9- 7 MPU 保護領域サイズフ ィ ールド (続 く )

領域 サイズ

9- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 219: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

Note

C/C++ コ ンパイ ラでは、 通常はこのシーケン スに memcpy() 関数を使用する こ

と ができ ます。 ただし、 コ ンパイ ラでワード転送を使用し ている こ と を確認する必要があ り ます。

9.2.4 サブ領域

領域属性およびサイ ズレジス タにあ る 8 つのサブ領域禁止 (SRD) ビ ッ ト によ って、 領域がそのサイ ズに基づいて、 同じサイ ズの 8 つのユニ ッ ト に分割されます。 これによ って、 い く つかの 1/8 サブ領域を選択的に禁止する こ とができ ます。 下位ビ ッ ト は 初の 1/8 サブ領域に、 上位ビ ッ ト は 後の1/8 サブ領域に対応し ます。 あ るサブ領域を禁止する と、 その範囲 と オーバラ ッ プし ている別の領域が代わ り に一致を と る よ う にし ます。 そのサブ領域と オーバラ ッ プする別の領域が存在し ない場合は、 デフ ォル ト の動作が採用され、 不一致フ ォール ト が発生し ます。 サブ領域は、 も小さい 3 つの領域サイ ズ、 つま り 32、 64、 128 のサイ ズでは使用でき ません。 これらのサブ領域を使用し た場合、 結果は予測不能です。

SRD の使用例

同じベースア ド レ ス を持つ 2 つの領域がオーバラ ッ プし ています。 1 つは64KB の領域で、 も う 1 つは 512KB の領域です。 512KB の領域の下位 64KBを禁止し て、 64KB の領域の属性を適用し ます。 これは、 512KB の領域のSRD を b00000001 に設定する こ と によ って実現されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 13

アクセス制限な し 公開

Page 220: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.3 MPU のアクセス許可

こ のセ ク シ ョ ンでは、 MPU のア ク セス許可について説明し ます。 領域ア ク セス制御レジス タ (MPU 領域属性およびサイ ズレジス タ p. 9- 8 参照) のア ク セス許可ビ ッ ト であ る TEX、 C、 B、 AP、 XN によ って、 対応する メ モ リ 領域へのア ク セスが制御されます。 必要な許可な しに メ モ リ 領域へア ク セス を行 うと、 ア ク セス許可フ ォール ト が発生し ます。

TEX、 C、 B のエン コード の説明を、 テーブル 9- 8 に示し ます。

Note

テーブル 9- 8 の S は、 MPU 領域属性およびサイ ズレジス タの S ビ ッ ト [2] を意味し ます。

テーブル 9- 8 TEX、 C、 B のエン コー ド

TEX C B 説明 メ モ リ タ イプ 領域の共有可能性

b000 0 0 ス ト ロ ング リ オーダ ス ト ロ ング リオーダ

共有可

b000 0 1 共有デバイ ス デバイ ス 共有可

b000 1 0 外部および内部ラ イ ト スルー、 書き込み割 り当てな し

ノ ーマル S

b000 1 1 外部および内部ラ イ ト バッ ク、 書き込み割 り当てな し

ノ ーマル S

b001 0 0 外部および内部でキ ャ ッ シュ不可 ノ ーマル S

b001 0 1 予約 予約 予約

b001 1 0 実装定義

b001 1 1 外部および内部ラ イ ト バッ ク、 読み出し / 書き込み割 り 当て

ノ ーマル S

b010 0 0 共有不可デバイ ス デバイ ス 共有不可

b010 0 1 予約 予約 予約

b010 1 X 予約 予約 予約

b1BB A A キ ャ ッ シュ された メ モ リ 、 BB = 外部ポ リシー、

AA = 内部ポ リ シー

ノ ーマル S

9- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 221: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

メ モ リ 属性エン コード のキ ャ ッ シ ュポ リ シーの説明を、 テーブル 9- 9 に示します。

Note

HPROT と MEMATTR で示されるすべてのキ ャ ッ シ ュポ リ シーは、 外部キ ャ ッ シュに関係し ます。

AP のエン コード の説明を、 テーブル 9- 10 に示し ます。

テーブル 9- 9 メ モ リ属性エン コー ドのキャ ッ シュポリ シー

メ モ リ属性エン コー ド (AA と BB) キャ ッ シュポリ シー

00 キ ャ ッ シュ不可

01 ラ イ ト バッ ク、 読み出し / 書き込み割 り 当て

10 ラ イ ト スルー、 書き込み割 り当てな し

11 ラ イ ト バッ ク、 書き込み割 り当てな し

テーブル 9- 10 AP のエン コー ド

AP[2:0] 特権アクセス許可 ユーザアクセス許可 説明

000 ア ク セス不可 ア ク セス不可 すべてのア ク セスでア ク セス許可フ ォールト が発生し ます。

001 読み出し / 書き込み ア ク セス不可 特権ア ク セスのみ

010 読み出し / 書き込み 読み出し専用 ユーザモード で書き込みを行 う と、 ア ク セス許可フ ォール ト が発生し ます。

011 読み出し / 書き込み 読み出し / 書き込み 完全ア ク セス

100 予測不能 予測不能 予約

101 読み出し専用 ア ク セス不可 特権読み出しのみ

110 読み出し専用 読み出し専用 特権 / ユーザ読み出しのみ

111 読み出し専用 読み出し専用 特権 / ユーザ読み出しのみ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 15

アクセス制限な し 公開

Page 222: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

XN のエン コード の説明を、 テーブル 9- 11 に示し ます。

テーブル 9- 11 XN のエン コー ド

XN 説明

0 すべての命令フ ェ ッチを許可

1 命令フ ェ ッチを禁止

9- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 223: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.4 MPU アボー ト

MPU アボー ト の詳細については、 メ モ リ 管理フ ォール ト ア ド レ ス レジス タ p. 8- 44 を参照し て下さい。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 17

アクセス制限な し 公開

Page 224: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.5 MPU 領域の更新

MPU 領域をプロ グ ラ ムする ための、 メ モ リ マ ッ プ された 3 ワード で構成される 3 つのレジス タが存在し ます。 これらのレジス タは部分レジス タで、 個別にプロ グ ラ ムやア ク セスが可能です。 つま り 、 既存の ARMv6、 ARMv7、 および CP15 のコード を移植する こ と ができ ます。 こ の場合、 MRC 命令と MCR命令が LDRx 命令と STRx 命令に置き換え られます。

また、 これらのレジス タに 3 つのワー ド と し てア ク セス し、 その う ちの 2ワード だけを使用し てプロ グ ラ ムする こ と もでき ます。 STM 命令を使用し て一組の領域を同時にプロ グ ラ ムでき るエイ リ アスが提供されています。

9.5.1 CP15 と等価な コー ド を使用し た MPU 領域の更新

CP15 と等価な コード の使用例を次に示し ます。

; R1 = region number; R2 = size/enable; R3 = attributes; R4 = addressMOV R0,#NVIC_BASE ADD R0,#MPU_REG_CTRL STR R1,[R0,#0]; region numberSTR R4,[R0,#4]; address STRH R2,[R0,#8]; size and enableSTRH R3,[R0,#10]; attributes

Note

こ の期間に割 り 込みが横取 り 可能な場合、 この領域はその動作に影響する こと があ り ます。 つま り 領域を、 まず禁止し、 書き込んでから、 許可する必要があ り ます。 通常、 コ ンテキス ト ス イ ッ チャではこの操作は必要あ り ませんが、 他の場所で更新が行われる場合は必要にな り ます。

; R1 = region number; R2 = size/enable; R3 = attributes; R4 = addressMOV R0,#NVIC_BASE ADD R0,#MPU_REG_CTRL STR R1,[R0,#0]; region numberBIC R2,R2, #1; disableSTRH R2,[R0,#8]; size and enableSTR R4,[R0,#4]; address STRH R3,[R0,#10]; attributesORR R2,#1; enableSTRH R2,[R0,#8]; size and enable

9- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 225: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

専用ペ リ フ ェ ラルバスはス ト ロ ング リ オーダ タ イプの メ モ リ エ リ アのため、DMB/DSB は必要あ り ません。 ただし、 コ ンテキス ト ス イ ッ チャの終了などによ って MPU への変更が適用される前に、 DSB が必要にな り ます。

ISB は、 MPU 領域をプロ グ ラ ムする コード が分岐または呼び出しによ って開始された場合に必要です。 例外からの復帰または例外の取得によ って コードが開始された場合は、 ISB は必要あ り ません。

9.5.2 2 ワー ド または 3 ワー ド を使用し た MPU 領域の更新

情報がど う 分割されているかによ って、 2 ワード または 3 ワード を使用し て直接プロ グ ラ ムする こ と ができ ます。

; R1 = region number; R2 = address; R3 = size, attributes in oneMOVR0,#NVIC_BASE ADD R0,#MPU_REG_CTRL STR R1,[R0,#0] ; region numberSTR R2,[R0,#4] ; addressSTR R3,[R0,#8] ; size, attributes

次のよ う に STM で 適化する こ と ができ ます。

; R1 = region number; R2 = address; R3 = size, attributes in oneMOVR0,#NVIC_BASE ADD R0,#MPU_REG_CTRL STM R0,{R1-R3}; region number, address, size, and attributes

パッ ク済みの情報については、 2 ワード で この操作を実行でき ます。 つま り 、ベースア ド レ ス レジス タは領域 - 有効ビ ッ ト に加えて領域番号を格納し ています。 この方法は、 ブー ト リ ス ト やプロセス制御ブロ ッ ク (PCB) のよ う にデータが静的にパッ ク されている場合に有効です。

; R1 = address and region number in one; R2 = size and attributes in oneMOVR0,#NVIC_BASE ADD R0,#MPU_REG_CTRL STR R1,[R0,#4] ; address and region numberSTR R2,[R0,#8] ; size and attributes

次のよ う に STM で 適化する こ と ができ ます。

; R1 = address and region number in one; R2 = size and attributes in oneMOVR0,#NVIC_BASE ADD R0,#MPU_REG_CTRL

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 19

アクセス制限な し 公開

Page 226: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

STM R0,{R1-R2}; address, region number, size

割 り 込みと MPU の更新の詳細については、 割 り 込みと MPU の更新 p. 9- 21を参照し て下さい。

9- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 227: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9.6 割り込みと MPU の更新

MPU 領域にはク リ テ ィ カルなデータが含まれている こ と があ り ます。 これは、 更新に複数のバス ト ラ ンザ ク シ ョ ンが必要なためです。 これは、 通常は2 ワード です。 そのため、 ス レ ッ ド 切 り 替えには注意が必要です。 つま り 、割 り 込みによ って 2 つのワー ド が分断され、 その領域を不整合な情報のま まにし て し ま う 可能性があ り ます。 これによ って、 2 種類の問題が発生し ます。

• 割 り 込みが発生し、 その割 り 込みで も MPU が更新される可能性があ ります。 この場合は、 読み出し - 変更 - 書き込みの問題だけでな く 、 その割 り 込みルーチンが同じ領域を変更し ない こ と を保証し ている よ う な場合に も影響し ます。 これは、 プロ グ ラ ムは、 レジス タに書き込まれる領域番号に依存し ているので、 どの領域を更新するかを知っているからです。 し たがって、 こ のケースでは各更新ルーチンの間は割 り 込みを禁止する必要があ り ます。

• 更新されている領域を使用する、 または、 ベース フ ィ ール ド あ るいはサイ ズフ ィ ール ド のいずれかのみが更新されて し ま ったので影響を受けてし ま う 割 り 込みが発生する可能性があ り ます。 サイ ズフ ィ ール ド が変更され、 ベース フ ィ ール ド が変更されなかった場合は、 こ のベース と サイズから構成される ア ド レ スが、 通常は他の領域で処理されるエ リ ア中にまでオーバラ ッ プし て し ま う 可能性があ り ます。 このケースでは、 禁止- 変更 - 許可の手法を使用する必要があ り ます。

ただし、 ユーザ領域を切 り 替え る標準の OS コ ンテキス ト ス イ ッチ コード では、 これらの領域がユーザ特権かつユーザエ リ ア ア ド レ スに事前設定されている ため、 問題はあ り ません。 つま り 、 割 り 込みが発生し て も副作用は起きません。 そのため、 許可 / 禁止コード を使用し た り 、 割 り 込みを禁止し た りする必要があ り ません。

も一般的な手法は、 ブー ト コード と コ ンテキ ス ト ス イ ッ チャのみで MPU のプロ グ ラ ムを行 う こ と です。 プロ グ ラ ムを行 う 場所が こ の 2 か所のみで、 コンテキス ト ス イ ッ チャではユーザ領域しか更新されない場合、 割 り 込みの禁止は必要あ り ません。 コ ンテキス ト ス イ ッチャは 初から ク リ テ ィ カルな領域であ り 、 ブー ト コード は割 り 込み禁止状態で実行される ためです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 9- 21

アクセス制限な し 公開

Page 228: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

メ モ リ保護ユニ ッ ト

9- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 229: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

10 章 コアデバッ グ

本章では、 プロセ ッ サのデバッ グ と テス ト を行 う 方法について説明し ます。本章は以下のセ ク シ ョ ンから構成されています。

• コ アデバッ グについて p. 10- 2

• コ アデバッ グ レジス タ p. 10- 4

• コ ア デバッ グア ク セスの例 p. 10- 15

• コ アデバッ グでのアプ リ ケーシ ョ ン レジス タの使用法 p. 10- 16

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 1

アクセス制限な し 公開

Page 230: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

10.1 コ アデバッ グについて

コ アデバッ グには、 コ アデバッ グ レジス タ経由でア ク セス し ます。 これらのレジス タへデバッ グア ク セス を行 う には、 ア ド バン ス ト ハイパフ ォーマン ス バス (AHB-AP) ポー ト を使用し ます。 詳細については、 AHB-AP p. 11- 44 を参照し て下さい。 プロセ ッ サは、 内部の専用ペ リ フ ェ ラルバス (PPB) 経由で、これらのレジス タに直接ア ク セスでき ます。

コ アデバッ グ レジス タの説明を、 テーブル 10- 1 に示し ます。

デバッ グフ ォール ト ステータ ス レジス タ もデバッ グに使用されます。 詳細については、 デバッ グフ ォール ト ステータ ス レジス タ p. 8- 42 を参照して下さい。

コ アデバッ グはオプシ ョ ンのコ ンポーネン ト です。 コ アデバッ グを取 り 除いた場合、 ホール ト モード でのデバッ グはサポー ト されないため、 ホール ト 、ステ ッ プ実行、 またはレジス タ転送の機能は存在し ません。 こ の場合でも、デバッ グモニ タ モード はサポー ト されます。

10.1.1 ホール ト モー ド でのデバッ グ

デバッ ガは、 デバッ グホール ト 制御およびステータ ス レジス タのC_DEBUGEN および C_HALT ビ ッ ト をセ ッ ト する こ と でコ アをホール ト できます。 コ アは、 ホール ト された と きにデバッ グホール ト 制御およびステータス レジス タの S_HALT ビ ッ ト をセ ッ ト し て応答し ます。

テーブル 10- 1 コアデバッ グ レジス タ

ア ド レス タ イプ リセッ ト時の値 説明

0xE000EDF0 読み出し / 書き込み

0x00000000a

a. ビ ッ ト 5、 3、 2、 1、 0 は PORESETn によ って リ セ ッ ト されます。 ビ ッ ト [1] も

SYSRESETn によ って、 またはアプ リ ケーシ ョ ン割 り 込みおよび リ セ ッ ト 制御レジ

ス タの VECTRESET ビ ッ ト に 1 を書き込むこ と によ って リ セ ッ ト されます。

デバッ グホール ト 制御およびステータ スレジス タ

0xE000EDF4 書き込み専用

- デバッ グ コ アレジス タ セレ ク タ レジス タ

0xE000EDF8 読み出し / 書き込み

- デバッ グ コ アレジス タ データ レジス タ

0xE000EDFC 読み出し / 書き込み

0x00000000b

b. ビ ッ ト 16、 17、 18、 19 も SYSRESETn によ って、 またはアプ リ ケーシ ョ ン割 り 込み

および リ セ ッ ト 制御レジス タの VECTRESET ビ ッ ト に 1 を書き込むこ と によ って リ

セ ッ ト されます。

デバッ グ例外およびモニタ制御レジス タ

10- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 231: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

コ アをホール ト し てから、 C_STEP ビ ッ ト を 1 にセ ッ ト し、 C_HALT ビ ッ ト を0 に ク リ アする と、 コ アをシングルステ ッ プ実行でき ます。 コ アは、 ステ ップ実行を完了し た と きにデバッ グホール ト 制御およびステータ ス レジス タのS_HALT ビ ッ ト をセ ッ ト し て応答し、 再度ホール ト 状態にな り ます。

10.1.2 コ アデバッ グの退出

コ アは、 デバッ グホール ト 制御およびステータ ス レジス タの C_DEBUGENビ ッ ト を ク リ アする こ と でホール ト から抜け られます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 3

アクセス制限な し 公開

Page 232: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

10.2 コ アデバッ グ レジス タ

デバッ グ機能は次のレジス タによ って提供されます。

• デバッ グホール ト 制御およびステータ ス レジス タ

• デバッ グ例外およびモニ タ制御レジス タ p. 10- 10

• デバッ グ コ アレジス タ データ レジス タ p. 10- 10

• デバッ グ例外およびモニ タ制御レジス タ p. 10- 10

10.2.1 デバッ グホール ト 制御およびステータ スレジス タ

デバッ グホール ト 制御およびステータ ス レジス タ (DHCSR) の目的は次の とおり です。

• プロセ ッ サの状態についてのステータ ス情報を提供する。

• コ アデバッ グを許可する。

• プロセ ッ サのホール ト と ステ ッ プ実行を行 う 。

DHCSR レジス タには次のよ う な特徴があ り ます。

• 32 ビ ッ ト の読み出し / 書き込みレジス タであ る。

• ア ド レ スは 0xE000EDF0 であ る。

Note

DHCSR は、 パワーオンを含むシステム リ セ ッ ト でのみ リ セ ッ ト されます。DHCSR のビ ッ ト 16 の リ セ ッ ト 時の値は予測不能です。

こ のレジス タのビ ッ ト 割 り 当てを、 図 10- 1 p. 10- 5 に示し ます。

10- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 233: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

図 10- 1 デバッ グホール ト 制御およびステータ スレジス タのビ ッ ト 割り当て

デバッ グ ID レジス タのビ ッ ト の機能を、 テーブル 10- 2 に示し ます。

予約

予約

DBGKEY

31 2 1 03456789101112131415161718192021222324252627282930

RAZRAZ

書き込み

読み出し

C_SNAPSTALL

C_MASKINTSC_STEPC_HALT

C_DEBUGEN

S_RESET_STS_RETIRE_STS_LOCKUPS_SLEEPS_HALTS_REGRDY

予約

テーブル 10- 2 デバッ グホール ト 制御およびステータ スレジス タ

ビ ッ ト タ イプ フ ィ ールド 機能

[31:16] 書き込み DBGKEY デバッ グキー。 このレジス タに書き込む と きは、 必ず 0xA05F を書

き込む必要があ り ます。 ステータ ス ビ ッ ト [25:16] と し て読み出されます。 キーと し て書き込まれない場合、 書き込み操作は無視され、 どのビ ッ ト も レジス タに書き込まれません。

[31:26] - - 予約、 RAZ

[25] 読み出し S_RESET_ST このビ ッ ト が 後に読み出された後でコ アが リ セ ッ ト された、 または現在 リ セ ッ ト 中であ る こ と を示し ます。 このビ ッ ト はステ ィ ッ キービ ッ ト で、 読み出し時にク リ ア されます。 このため、 2回読み出し て 初に 1、 次に 0 が読み出された場合、 以前に リ セ ット された こ と を示し ます。 2 回読み出し て 2 回と も 1 が読み出された場合、 現在 リ セ ッ ト 中であ る (まだ リ セ ッ ト 状態に置かれている) こ と を示し ます。

[24] 読み出し S_RETIRE_ST 後に読み出された後で命令が完了し た こ と を示し ます。 このビ ッ ト はステ ィ ッ キービ ッ ト で、 読み出し時にク リ ア されます。このビ ッ ト を使用し て、 コ アがロード / ス ト アやフ ェ ッチでスト ールし ているかど う かを判断でき ます。

[23:20] - - 予約、 RAZ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 5

アクセス制限な し 公開

Page 234: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

[19] 読み出し S_LOCKUP コ アが (ホール ト 中ではな く ) 実行中で、 ロ ッ ク ア ッ プ条件が存在し ている場合に 1 が読み出されます。

[18] 読み出し S_SLEEP コ アがス リ ープ状態 (WFI、 WFE、 または SLEEP-ON-EXIT) である こ と を示し ます。 C_HALT を使用し て制御を取 り 戻すか、 割 り込みでウ ェーク ア ッ プするのを待つ必要があ り ます。SLEEP-ON-EXIT の詳細については、 テーブル 7- 1 p. 7- 3 を参照して下さい。

[17] 読み出し S_HALT S_HALT がセ ッ ト されている と きは、 コ アはデバッ グ状態です。

[16] 読み出し S_REGRDY デバッ グ コ アレジス タ セレ ク タ レジス タで、 レジス タの読み出し/ 書き込みが使用でき ます。 後の転送が完了し ま し た。

[15:6] - - 予約

[5] 読み出し / 書き込み

C_SNAPSTALL ロード / ス ト ア操作でコ アがス ト ールし ている場合、 ス ト ールが解除され、 命令が強制的に完了し ます。 これによ って、 ホール トデバッ グがコ アの制御を取 り 戻せます。 このビ ッ ト は、 次の条件が満た されている場合のみセ ッ ト でき ます。

C_DEBUGEN = 1

C_HALT = 1

コ アは、 S_RETIRE_ST を 0 と し て読み出し ます。 これは、 進行し た命令がないこ と を示し ています。 これによ って、 使用 ミ スが回避されます。

これが使用された場合、 バス状態は予測不能です。

S_RETIRE は、 ロード / ス ト ア操作時のコ アのス ト ールを検出できます。

[4] - - 予約

[3] 読み出し / 書き込み

C_MASKINTS ステ ッ プ実行時、 またはホール ト デバッ グでの実行時に割 り 込みをマス ク し ます。 NMI はマス ク不可なので、 NMI には影響し ません。 プロセ ッ サがホール ト し ている と き (S_HALT == 1) にのみ変更する必要があ り ます。 また、 命令の実行によ り 発生し たフ ォールト 例外や SVC には影響し ません。 CMASKINTS は、 ホール ト を解除する前にセ ッ ト またはク リ アする必要があ り ます。 つま り 、C_MASKINTS をセ ッ ト またはク リ アする書き込み と、 C_HALT をセ ッ ト またはク リ アする書き込みは別々に行 う 必要があ り ます。

テーブル 10- 2 デバッ グホール ト 制御およびステータ スレジス タ (続 く )

ビ ッ ト タ イプ フ ィ ールド 機能

10- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 235: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

C_DEBUGEN = 1 で、 ホール ト モード が許可されていない場合、 他のすべてのフ ィ ール ド は無効です。

このレジス タは、 システム リ セ ッ ト 時に リ セ ッ ト されません。 パワーオン リセ ッ ト 時には リ セ ッ ト されます。 ただし、 C_HALT ビ ッ ト はシステム リ セ ット 時に常に ク リ ア されます。

リ セ ッ ト 時にホール ト するには、 次のビ ッ ト を許可する必要があ り ます。

• デバッ グ例外およびモニ タ制御レジス タのビ ッ ト [0] (VC_CORERESET)

• デバッ グホール ト 制御およびステータ ス レジス タのビ ッ ト [0] (C_DEBUGEN)

Note

このレジス タにワード以外のサイ ズで書き込みを行った場合、 結果は予測不能です。 読み出しは任意のサイ ズで許可され、 こ の方法を使用し てステ ィ ッキービ ッ ト の意図し ない変更を防止、 または意図的に変更でき ます。

[2] 読み出し / 書き込み

C_STEP ホール ト デバッ グでコ アを ステ ッ プ実行し ます。 C_DEBUGEN = 0の と きは、 このビ ッ ト は無効です。 プロセ ッ サがホール ト し ている と き (S_HALT == 1) にのみ変更する必要があ り ます。

[1] 読み出し / 書き込み

C_HALT コ アをホール ト し ます。 このビ ッ ト は、 ブレーク ポ イ ン ト など、コ アがホール ト する と きに自動的にセ ッ ト されます。 コ アの リセ ッ ト 時には、 このビ ッ ト はク リ ア されます。 このビ ッ ト は、C_DEBUGEN が 1 の と きにのみ書き込み可能で、 それ以外の と きは無視されます。 このビ ッ ト を 1 にセ ッ ト する と き、 C_DEBUGEN にも同じ値と し て 1 をセ ッ ト する必要があ り ます (値 [1:0] が 2'b11)。 C_DEBUGEN がすでに 1 で、 b11 が書き込まれた と きのみ、 コ アがホール ト でき ます。

[0] 読み出し / 書き込み

C_DEBUGEN デバッ グを許可し ます。 このビ ッ ト は、 AHB-AP によ ってのみ書き込み可能で、 コ アからは書き込めません。 コ アはこのビ ッ ト をセ ッ ト またはク リ アでき ないため、 コ アからの書き込みは無視されます。

コ アが自分をホール ト するために C_HALT へ書き込むと きは、 コアはこのビ ッ ト に 1 を書き込む必要があ り ます。

テーブル 10- 2 デバッ グホール ト 制御およびステータ スレジス タ (続 く )

ビ ッ ト タ イプ フ ィ ールド 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 7

アクセス制限な し 公開

Page 236: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

10.2.2 デバッ グコ アレジス タ セレ ク タ レジス タ

デバッ グ コ アレジス タ セレ ク タ レジス タ (DCRSR) は、 データの転送先または転送元と なるプロセ ッ サレジス タ を選択する ために使用し ます。

DCRSR には次の特徴があ り ます。

• 17 ビ ッ ト の書き込み専用レジス タであ る。

• ア ド レ スは 0xE000EDF4 であ る。

こ のレジス タのビ ッ ト 割 り 当てを、 図 10- 2 に示し ます。

図 10- 2 デバッ グコアレジス タ セレ ク タ レジス タのビ ッ ト 割り当て

デバッ グ コ アレジス タ セレ ク タ レジス タのビ ッ ト の機能を、 テーブル 10- 3に示し ます。

REGSEL予約

REGWnR

31 0151617

予約

45

テーブル 10- 3 デバッ グコアレジス タ セレ ク タ レジス タ

ビ ッ ト タ イプ フ ィ ールド 機能

[31:17] - - 予約

10- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 237: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

このレジス タは書き込み専用で、 データ をデバッ グ コ アレジス タ データ レジス タ と選択されたレジス タ と の間で転送する ため、 コ ア と のハン ド シェークを生成し ます。 コ アの ト ラ ンザ ク シ ョ ンが完了する まで、 DHCSR のビ ッ ト[16] (S_REGRDY) は 0 に保持されます。

Note

• このレジス タにワード以外のサイ ズで書き込みを行った場合、 結果は予測不能です。

• PSR レジス タはこの方法で完全にア ク セス可能です。 これに対し て、MRS 命令を使用し た場合、 一部は 0 と し て読み出されます。

• すべてのビ ッ ト は書き込み可能ですが、 一部の組み合わせでは実行が再開された と きにフ ォール ト が発生し ます。

• IT は書き込みが可能で、 IT ブロ ッ ク中であ るの と同様に動作し ます。

• ICI は書き込み可能ですが、 無効な値が書き込まれた場合や、 LDM/STMで使用されていない場合は、 例外からの復帰 と同様にフ ォール ト が発生し ます。 ICI をあ る値から 0 に変更する と、 元にな る LDM/STM は継続ではな く 、 初から開始し ます。

[16] 書き込み REGWnR 1 = 書き込み

0 = 読み出し

[15:5] - - 予約

[4:0] 書き込み REGSEL 5b00000 = R0

5b00001 = R1

5b01111 = DebugReturnAddress()

5b10000 = xPSR/ フ ラ グ、 例外状態情報、 例外番号

5b10001 = MSP ( メ イ ン SP)

5b10010 = PSP (プロセス SP)

5b10100:

• CONTROL ビ ッ ト [31:24]

• FAULTMASK ビ ッ ト [23:16]

• BASEPRI ビ ッ ト [15:8]

• PRIMASK ビ ッ ト [7:0]

未使用の値はすべて予約されています。

テーブル 10- 3 デバッ グコアレジス タ セレ ク タ レジス タ (続 く )

ビ ッ ト タ イプ フ ィ ールド 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 9

アクセス制限な し 公開

Page 238: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

10.2.3 デバッ グコ アレジス タ データ レジス タ

デバッ グ コ アレジス タ データ レジス タ (DCRDR) は、 プロセ ッ サ と の間でレジス タの読み出し と書き込みを行 う ためのデータ を保持する目的に使用されます。

DCRDR には次の特徴があ り ます。

• 32 ビ ッ ト の読み出し / 書き込みレジス タであ る。

• ア ド レ スは 0xE000EDF8 であ る。

これは、 デバッ グ コ アレジス タ セレ ク タ レジス タによ って選択されたレジスタに書き込まれるデータの値です。

プロセ ッ サがデバッ グ コ アレジス タ セレ ク タからの要求を受信する と、 このレジス タは通常のロード / ス ト アユニ ッ ト の操作を使用し て、 プロセ ッ サによ り 読み出し または書き込みされます。

コ アレジス タの転送が実行されない場合、 OS RSD や Real View Monitor などのソ フ ト ウ ェ アベースのデバッ グモニ タが、 このレジス タ を非ホール ト デバッグでの通信に使用でき ます。 これによ って、 フ ラ グやビ ッ ト によ り 状態を応答し、 コマン ド に対し て受け付け、 応答、 または両方が行われたかど う かを示すこ と ができ ます。

10.2.4 デバッ グ例外およびモニ タ制御レジス タ

デバッ グ例外およびモニタ制御レジス タ (DEMCR) は次の目的に使用されます。

• ベク タ キ ャ ッ チ。 つま り 、 指定のベク タが実行のために読み出される とき、 デバッ グエン ト リ を発生し ます。

• デバッ グモニ タの制御

DEMCR には次の特徴があ り ます。

• 32 ビ ッ ト の読み出し / 書き込みレジス タであ る。

• ア ド レ スは 0xE000EDFC であ る。

こ のレジス タのビ ッ ト 割 り 当てを、 図 10- 2 p. 10- 8 に示し ます。

10- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 239: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

図 10- 3 デバッ グ例外およびモニ タ制御レジス タのビ ッ ト 割り当て

デバッ グ例外およびモニ タ制御レジス タのビ ッ ト の機能を、 テーブル 10- 4 に示し ます。

SBZPSBZPSBZP SBZP

31 1 0

TRCENA

34567891011151617181920232425

MON_REQ VC_HARDERRMON_STEP

MON_ENMON_PEND

VC_INTERRVC_BUSERR

VC_STATERRVC_CHKERR

VC_NOCPERRVC_MMERR

VC_CORERESET

テーブル 10- 4 デバッ グ例外およびモニ タ制御レジス タ

ビ ッ ト タ イプ フ ィ ールド 機能

[31:25] - - 予約、 SBZP

[24] 読み出し / 書き込み

TRCENA 次の ト レースおよびデバッ グブロ ッ クの使用を許可するには、このビ ッ ト を 1 にセ ッ ト する必要があ り ます。

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

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

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

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

これによ って、 ト レースが必要ない場合に消費電力の管理が許可されます。 アプ リ ケーシ ョ ンは、 ITM、 またはデバッ ガで使用するために、 この機能を許可でき ます。

Note

デバッ グまたは ト レース コ ンポーネン ト が実装に存在し ない場合、 TRCENA はセ ッ ト でき ません。

[23:20] - - 予約、 SBZP

[19] 読み出し / 書き込み

MON_REQa モニ タによ って、 ウ ェーク ア ッ プの発生し た原因を識別する ために使用されます。

1 = MON_PEND によ る ウ ェーク ア ッ プ

0 = デバッ グ例外によ る ウ ェーク ア ッ プ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 11

アクセス制限な し 公開

Page 240: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

[18] 読み出し / 書き込み

MON_STEPa MON_EN = 1 の場合、 このビ ッ ト によ ってコ アがステ ッ プ実行されます。 MON_EN = 0 の場合、 このビ ッ ト は無視されます。これは、 C_STEP と等価です。 割 り 込みは、 モニ タの優先度と、PRIMAST、 FAULTMASK、 または BASEPRI の設定に従ってのみステ ッ プ実行されます。

[17] 読み出し / 書き込み

MON_PENDa 優先度で許可された と きにア ク テ ィ ブになる よ う にモニタ を保留し ます。 これによ り 、 AHB-AP ポー ト を経由し て、 モニタ をウ ェーク ア ッ プする こ と ができ ます。 モニタデバッ グ用のC_HALT と等価です。

こ のレジス タは、 システム リ セ ッ ト 時に リ セ ッ ト されません。パワーオン リ セ ッ ト 時にのみ リ セ ッ ト されます。 リ セ ッ ト ハンド ラ またはそれ以後のソ フ ト ウ ェ ア、 あ るいは DAP によ ってデバッ グモニ タ を許可する必要があ り ます。

[16] 読み出し / 書き込み

MON_ENa デバッ グモニ タ を許可し ます。 許可される と、 優先度レベルはシステムハン ド ラの優先度レジス タによ って制御されます。 禁止されている場合、 すべてのデバッ グ イベン ト はハード フ ォール ト にな り ます。 デバッ グホール ト 制御およびステータ ス レジス タの C_DEBUGEN は、 このビ ッ ト に優先し ます。

ベク タ キ ャ ッチは半同期です。 一致する イベン ト が検出されると、 ホール ト 要求が発生し ます。 プロセ ッサは命令の境界でのみホール ト 可能なため、 次の命令の境界まで待つ必要があ り ます。 その結果、 プロセ ッサは例外ハン ド ラの 初の命令で停止し ます。 ただし、 ベク タ キ ャ ッチが ト リ ガ された と きは、 2 つの特別なケースがあ り ます。

• ベク タ、 ベク タ読み出し、 またはス タ ッ ク プ ッ シュ エラーの間にフ ォール ト が取得された場合、 ベク タエラーまたはス タ ッ ク プ ッ シュに対応する フ ォール ト ハン ド ラでホール ト が発生し ます。

• ベク タ処理の間に到着し た後着割 り 込みは取得されません。 つま り 、 後着の 適化をサポー ト する実装では、 この場合に後着割 り 込みを抑制する必要があ り ます。

[15:11] - - 予約、 SBZP

[10] 読み出し / 書き込み

VC_HARDERRb ハード フ ォール ト でのデバッ グ ト ラ ッ プ

[9] 読み出し / 書き込み

VC_INTERRb 割 り 込み / 例外へのサービ スのエラーによ るデバッ グ ト ラ ップ。 これらは他のフ ォール ト のサブセ ッ ト で、 BUSERR またはHARDERR の前にキ ャ ッチされます。

テーブル 10- 4 デバッ グ例外およびモニ タ制御レジス タ (続 く )

ビ ッ ト タ イプ フ ィ ールド 機能

10- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 241: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

このレジス タは、 デバッ グ下の例外の動作を管理し ます。

ベク タ キ ャ ッチは、 ホール ト デバッ グでのみ使用でき ます。 上位ハーフ ワード はモニ タ制御用に、 下位ハーフ ワード はホール ト 例外サポー ト に使用されます。

このレジス タは、 システム リ セ ッ ト 時に リ セ ッ ト されません。

パワーオン リ セ ッ ト 時には リ セ ッ ト されます。 ビ ッ ト [19:16] は、 コ ア リ セ ット 時に常に ク リ ア されます。 デバッ グモニ タは、 リ セ ッ ト ハン ド ラ またはそれ以降の ソ フ ト ウ ェ ア、 あ るいは AHB-AP ポー ト によ って許可されます。

ベク タ キ ャ ッチは半同期です。 一致する イベン ト が検出される と、 ホール ト要求が発生し ます。 プロセ ッ サは命令の境界でのみホール ト 可能なため、 次の命令の境界まで待つ必要があ り ます。 その結果、 プロセ ッ サは例外ハン ドラの 初の命令で停止し ます。 ただし、 ベク タ キ ャ ッ チが ト リ ガ された と きは、 2 つの特別なケースがあ り ます。

1. ベク タ読み出し またはス タ ッ ク プ ッ シ ュの間にフ ォール ト が取得された場合、 ベク タエ ラーまたはス タ ッ ク プ ッ シュ エラーのためのフ ォールト ハン ド ラで、 ホール ト が発生し ます。

[8] 読み出し / 書き込み

VC_BUSERRb 通常のバスエラーによ るデバッ グ ト ラ ッ プ

[7] 読み出し / 書き込み

VC_STATERRb 用法フ ォール ト 状態エラーでのデバッ グ ト ラ ッ プ

[6] 読み出し / 書き込み

VC_CHKERRb 用法フォール ト イネーブル チェ ッ クエラーでのデバッグ ト ラ ップ

[5] 読み出し / 書き込み

VC_NOCPERRb 存在し ないか、 または CAR レジス タで存在し ない と マーク されている コプロセ ッ サへの用法フ ォール ト ア ク セスでのデバッグ ト ラ ッ プ

[4] 読み出し / 書き込み

VC_MMERRb メ モ リ 管理フ ォール ト でのデバッ グ ト ラ ッ プ

[3:1] - - 予約、 SBZP

[0] 読み出し / 書き込み

VC_CORERESETb リ セ ッ ト ベク タ キ ャ ッチ。 コ ア リ セ ッ ト が発生する と、 実行中のシステムがホール ト し ます。

a. コ ア リ セ ッ ト 時には、 このビ ッ ト はク リ ア されます。

b. C_DEBUGEN = 1 の場合のみ使用でき ます。

テーブル 10- 4 デバッ グ例外およびモニ タ制御レジス タ (続 く )

ビ ッ ト タ イプ フ ィ ールド 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 13

アクセス制限な し 公開

Page 242: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

2. ベク タ読み出し またはス タ ッ ク プ ッ シュ エラー時に検出された後着割り 込みは処理されません。 つま り 、 後着の 適化をサポー ト する実装では、 この場合に後着割 り 込みを抑制する必要があ り ます。

10- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 243: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

10.3 コ ア デバッ グアクセスの例

プロセ ッ サをホール ト し てレジス タの 1 つに値を書き込むには、 次のシーケン ス を実行し ます。

1. デバッ グホール ト 制御およびステータ ス レジス タに 0xA05F0003 を書き込

みます。 これによ って、 デバッ グが許可され、 コ アがホール ト し ます。

2. デバッ グホール ト 制御およびステータ ス レジス タの S_HALT ビ ッ ト がセ ッ ト される まで待ちます。 このビ ッ ト は、 コ アがホール ト し た こ と を示し ます。

3. 書き込む値を、 デバッ グ コ アレジス タ データ レジス タに書き込みます。

4. 書き込み先のレジス タ番号を、 デバッ グ コ アレジス タ セレ ク タ レジスタに書き込みます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 10- 15

アクセス制限な し 公開

Page 244: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

コ アデバッ グ

10.4 コ アデバッ グでのアプ リ ケーシ ョ ンレジス タの使用法

アプ リ ケーシ ョ ン レジス タは、 ステータ スへのア ク セス と、 システムへ変更を適用する ためにも使用でき ます。

アプ リ ケーシ ョ ン レジス タ を コ アデバッ グに使用する場合、 次の点に注意して く だ さい。

• AHB-AP と アプ リ ケーシ ョ ンの両方が これらのレジス タ を変更する場合、 読み出し - 変更 - 書き込みの問題が発生し ます。

• PENDSET や PENDCLR のよ う な書き込みレジス タの場合、 これらのレジス タは 初に読み出されないため、 読み出し - 変更 - 書き込みの問題が発生し ます。

• 優先度を含むレジス タ と、 他の読み出し / 書き込みレジス タの場合、 読み出し - 変更 - 書き込み操作を実行する と きに、 読み出し と書き込みとの間でレジス タに変更が発生する可能性があ り ます。 い く つかの場合には、 この問題を軽減する ためにバイ ト ア ク セスが許可されてお り 、 プロセ ッ サが動作し ている と きには、 デバッ ガはこの問題に注意を払 う 必要があ り ます。

コ アデバッ グで主に使用される アプ リ ケーシ ョ ン レジス タ と、 レジス タのビ ッ ト をテーブル 10- 5 に示し ます。 アプ リ ケーシ ョ ン レジス タの完全な一覧については、 『ARMv7-M アーキテ クチャ リ フ ァ レ ン スマニ ュ アル』 を参照して下さい。

テーブル 10- 5 コアデバッ グで使用されるアプ リ ケーシ ョ ンレジス タ

レジス タコ アデバッ グで使用されるビ ッ トまたはフ ィ ールド

割 り 込み制御状態 ISRPREEMPT

ISRPENDING

VECTPENDING

ベク タ テーブル オフセ ッ ト ベク タ テーブルの検索用

アプ リ ケーシ ョ ン割 り 込み / リ セ ッ ト 制御

VECTCLRACTIVE

ENDIANESS

構成制御 DIV_0_TRP

UNALIGN_TRP

システムハン ド ラ制御および状態 ACTIVE

PENDED

10- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 245: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

11 章 システムデバッ グ

本章では、 プロセ ッ サのシステムデバッ グについて説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• システムデバッ グについて p. 11- 2

• システムデバッ グ ア ク セス p. 11- 3

• システムデバッ グのプロ グ ラ マモデル p. 11- 5

• FPB p. 11- 6

• DWT p. 11- 13

• ITM p. 11- 33

• AHB-AP p. 11- 44

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 1

アクセス制限な し 公開

Page 246: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.1 システムデバッ グについて

プロセ ッ サにはい く つかのシステムデバッ グ コ ンポーネン ト が組み込まれてお り 、 次のよ う な目的に役立ちます。

• 低コ ス ト でのデバッ グ

• ト レースおよびプロ フ ァ イ リ ング

• ブレーク ポ イ ン ト

• ウ ォ ッ チポ イ ン ト

• コー ドへのパッチ

システムデバッ グ コ ンポーネン ト には、 次のものが含まれます。

• ブレーク ポ イ ン ト およびコードへのパッ チを実装する ためのフ ラ ッ シ ュパッチおよびブレーク ポ イ ン ト (FPB) ユニ ッ ト

• ウ ォ ッ チポ イ ン ト 、 ト リ ガ リ ソース、 システムプロ フ ァ イ リ ングを実装する ためのデータ ウ ォ ッチポ イ ン ト および ト レース (DWT) ユニ ッ ト

• printf 形式のデバッ グをサポー ト する アプ リ ケーシ ョ ン駆動型 ト レースソース用の計装 ト レース マ ク ロセル (ITM)

• 命令 ト レース用のエンベデッ ド ト レース マ ク ロセル (ETM)。 プロセ ッ サは、 ETM を持つバージ ョ ン と持たないバージ ョ ンの両方でサポー ト されています。

すべてのデバッ グ コ ンポーネン ト は内部の専用ペ リ フ ェ ラルバス (PPB) 上に存在し、 特権コー ド を使用し てア ク セスする こ と ができ ます。

システムデバッ グ コ ンポーネン ト はオプシ ョ ンです。 ト レースやデバッ グの機能が必要ない場合は、 システムデバッ グ コ ンポーネン ト をすべて取 り 除 くこ と ができ ます。 この理由から、 ブレーク ポ イ ン ト やウオ ッ チポ イ ン ト 、 および計装 ト レース と ト リ ガはサポー ト されていない可能性があ り ます。

Note

• コ アデバッ グの詳細については、 10 章 Core Debug を参照し て下さい。

11- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 247: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.2 システムデバッ グ アクセス

デバッ グ制御およびデータ ア ク セスは、 ア ド バン ス ト ハイパフ ォーマン スバス ア ク セスポー ト (AHB-AP) イ ン タ フ ェース を経由し て行われます。 こ のイン タ フ ェースは、 シ リ アルワ イヤ デバッ グポー ト (SW-DP) またはシ リ アルワイヤ JTAG デバッ グポー ト (SWJ-DP) コ ンポーネン ト のいずれかによ って行われます。 SW-DP および SWJ-DP コ ンポーネン ト の情報については、 13 章 Debug Port を参照し て下さい。 ア ク セスには次の ものが含まれます。

• 内部 PPB。 デバッ ガはこのバス を経由し て、 次に示すコ ンポーネン ト へア ク セスでき ます。

— ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC)。 プロセ ッ サコ アへのデバッ グア ク セスは、 NVIC を経由し て行われます。 詳細については、 10 章 Core Debug を参照し て下さい。

— DWT ユニ ッ ト

— FPB ユニ ッ ト

— ITM

— メ モ リ 保護ユニ ッ ト (MPU)

Note

デバッ ガは、 システム リ セ ッ ト 中に PPB 空間内のすべてのレジス タ を読み出すこ と ができ ます。 また、 パワーオン リ セ ッ ト によ ってのみ リセ ッ ト される、 PPB 空間内のレジス タに書き込むこ と も でき ます。

• 外部専用ペ リ フ ェ ラルバス。 デバッ グでは、 こ のバス を経由し て、 次のコ ンポーネン ト にア ク セスでき ます。

— ETM。 命令 ト レースのみをサポー ト する低コ ス ト の ト レースマ クロセル。 詳細については、 14 章 Embedded Trace Macrocell を参照し て下さい。

— ト レースポー ト イ ン タ フ ェースユニ ッ ト (TPIU)。 このコ ンポーネン ト は、 Cortex-M3 ト レースデータ (ITM、 および存在する場合はETM からのデータ) と オフチ ッ プの ト レースポー ト アナラ イザ との間のブ リ ッ ジ と し て動作し ます。 詳細については、 17 章 Trace Port Interface Unit を参照し て下さい。

— ROM テーブル

• デバッ グでは、 このバス を経由し て、 コード空間内に位置する メ モ リ へア ク セスでき ます。

• システムバス空間内に位置するバス、 メ モ リ 、 ペ リ フ ェ ラルへア ク セスでき ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 3

アクセス制限な し 公開

Page 248: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

システムデバッ グ ア ク セスの構造、 および AHB-AP がシステム コ ンポーネント および外部バスのそれぞれにア ク セスする方法を、 図 11- 1 p. 11- 4 に示します。

図 11- 1 システムデバッ グ アクセスのブロ ッ ク図

CM3Core

SW/SWJ-DP AHB-AP

データ

DCodeインタフェース

システムインタフェース

ブリッジ

NVIC

ETM

DWT

FPB

ITM

MPU

TPIU

ROMテーブル

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

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

バス

マトリックス

トレース

ポート

11- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 249: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.3 システムデバッ グのプログラマモデル

このセ ク シ ョ ンでは、 すべてのシステムデバッ グ コ ンポーネン ト について、デバッ グレジス タ を一覧表記し、 説明を加えます。 こ のセ ク シ ョ ンは以下の項目から構成されています。

• FPB p. 11- 6

• DWT p. 11- 13

• ITM p. 11- 33

• AHB-AP p. 11- 44

Note

• コ アデバッ グ レジス タの詳細については、 コ アデバッ グ レジス タ p. 10- 4 を参照し て下さい。

• SWJ-DP および SW-DP レジス タの詳細については、 13 章 Debug Port を参照し て下さい。

• TPIU の詳細については、 17 章 Trace Port Interface Unit を参照して下さい。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 5

アクセス制限な し 公開

Page 250: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.4 FPB

FPB には次の特徴があ り ます。

• ハー ド ウ ェ アブレーク ポ イ ン ト を実装

• コー ド空間から システム空間へ、 コードおよびデータにパッ チを適用

完全な FPB ユニ ッ ト には、 次のコ ンポーネン ト が含まれます。

• コー ド空間からの リ テ ラルロード と の一致を検出し、 システム空間の対応するエ リ アに リ マ ッ ピ ングする ための、 2 つの リ テ ラルコ ンパレータ

• コー ド空間からの命令フ ェ ッチ と の一致を検出し、 システム空間の対応するエ リ アに リ マ ッ ピングする ための 6 つの命令コ ンパレータ。 または、 個別にコ ンパレータ を構成し て、 一致が発生し た場合はブレーク ポイ ン ト 命令 (BKPT) をプロセ ッ サコ アへ戻すよ う にする と、 ハー ド ウ ェアブレーク ポイ ン ト の機能を提供する こ と ができ ます。

FPB はグ ローバル許可を持ちますが、 8 つのコ ンパレータに対し て個別に許可する こ と も でき ます。 エン ト リ の比較が一致する と、 リ マ ッ プレジス タに設定されている ア ド レ ス と、 一致し た コ ンパレータに対応するオフセ ッ ト を加えたア ド レ スに、 ア ド レ ス を リ マ ッ ピングするか、 または機能が許可されている場合は BKPT 命令に リ マ ッ プし ます。 比較は動作中に行われますが、比較の結果の発生が遅すぎ る ため、 コード 空間で発生する元の命令フ ェ ッ チおよび リ テ ラルロード は中止でき ません。 ただし、 プロセ ッ サはこの ト ラ ンザ ク シ ョ ンを無視し、 リ マ ッ プ された ト ラ ンザ ク シ ョ ンのみが使用されます。

MPU が存在する場合は、 リ マ ッ プ されたア ド レ スではな く 元のア ド レ スに対し て MPU ルッ ク ア ッ プが実行されます。

デバッ グ機能が必要ない場合、 またはサポー ト するブレーク ポ イ ン ト の数を2 まで減ら し て も問題ない場合は、 FPB を取 り 除 く こ と ができ ます。 FPB が 2つのブレーク ポ イ ン ト しかサポー ト し ない場合、 コ ンパレータ 0 および 1 のみが使用され、 フ ラ ッ シュパッチはサポー ト されません。

Note

• アンア ラ イ ン ド な リ テ ラルア ク セスは リ マ ッ プされません。 こ の場合は、 DCode バスに対する元のア ク セスが実行されます。

• 排他ロード は FPB に対し ては予測不能です。 ア ド レ スは リ マ ッ プ されますが、 排他ロー ド と し てのア ク セスは実行されません。

• ビ ッ ト バン ド エイ リ アスへの リ マ ッ ピングは、 直接エイ リ アスア ド レスにア ク セス を行い、 ビ ッ ト バン ド 領域への リ マ ッ プは行いません。

11- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 251: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.4.1 FPB のプログラマモデル

フ ラ ッ シュパッチ レジス タの一覧を、 テーブル 11- 1 p. 11- 7 に示し ます。

Note

どのフ ラ ッ シ ュパッチ レジス タ も、 存在する、 または存在し ないもの と し て構成でき ます。 存在し ないもの と し て構成されているすべてのレジス タは、 0と し て読み出されます。

テーブル 11- 1 FPB レジス タの概要

名前 タ イプ ア ド レス 説明

FP_CTRL 読み出し / 書き込み

0xE0002000 フ ラ ッ シ ュパッチ制御レジス タ p. 11- 8 参照

FP_REMAP読み出し / 書き込み

0xE0002004フ ラ ッ シ ュパッチ リ マ ッ プレジス タ p. 11- 10 参照

FP_COMP0読み出し / 書き込み

0xE0002008フ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

FP_COMP1読み出し / 書き込み

0xE000200Cフ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

FP_COMP2読み出し / 書き込み

0xE0002010フ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

FP_COMP3 読み出し / 書き込み

0xE0002014 フ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

FP_COMP4 読み出し / 書き込み

0xE0002018 フ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

FP_COMP5 読み出し / 書き込み

0xE000201C フ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

FP_COMP6 読み出し / 書き込み

0xE0002020 フ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

FP_COMP7 読み出し / 書き込み

0xE0002024 フ ラ ッ シ ュパッチ コ ンパレータ レジス タ p. 11- 11 参照

PID4 読み出し専用

0xE0002FD0 値 0x04

PID5 読み出し専用

0xE0002FD4 値 0x00

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 7

アクセス制限な し 公開

Page 252: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

フ ラ ッ シュパッ チ制御レジス タ

フ ラ ッ シ ュパッチ制御レジス タは、 フ ラ ッ シュパッチ ブロ ッ ク を許可する ために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0002000

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 ビ ッ ト [0] (ENABLE) は 1'b0 に リ セ ッ ト されます。

フ ラ ッ シ ュパッチ制御レジス タのビ ッ ト 割 り 当てを、 図 11- 2 に示し ます。

PID6 読み出し専用

0xE0002FD8 値 0x00

PID7 読み出し専用

0xE0002FDC 値 0x00

PID0 読み出し専用

0xE0002FE0 値 0x03

PID1 読み出し専用

0xE0002FE4 値 0xB0

PID2 読み出し専用

0xE0002FE8 値 0x2B

PID3 読み出し専用

0xE0002FEC 値 0x00

CID0 読み出し専用

0xE0002FF0 値 0x0D

CID1 読み出し専用

0xE0002FF4 値 0xE0

CID2 読み出し専用

0xE0002FF8 値 0x05

CID3 読み出し専用

0xE0002FFC 値 0xB1

テーブル 11- 1 FPB レジス タの概要 (続 く )

名前 タ イプ ア ド レス 説明

11- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 253: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

図 11- 2 フ ラ ッ シュパッ チ制御レジス タのビ ッ ト 割り当て

フ ラ ッ シュパッチ制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 2 に示し ます。

31 3 2 1 0

予約

12 478

NUM_LIT NUM_CODE1

ENABLE

1114 13

NUM_CODE2KEY予約

テーブル 11- 2 フ ラ ッ シュパッ チ制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:15] - 予約。 0 と し て読み出され、 書き込みは無視されます。

[14:12] NUM_CODE2 コード コ ンパレータの全バン ク数で、 バン ク ご と に 16 個のコ ンパレータが含まれます。 コード コ ンパレータが 16 個よ り 少ない場合は、 バン ク カ ウ ン ト は 0 で、現在の数は NUM_CODE で示されます。 この読み出し専用フ ィ ール ド は 3'b000で、 Cortex-M3 プロセ ッサのバン ク が 0 であ る こ と を示し ます。

[11:8] NUM_LIT リ テ ラルス ロ ッ ト フ ィ ール ド の数。 こ の読み出し専用フ ィ ール ド の値は b0000( リ テ ラルス ロ ッ ト が存在し ない) または b0010 (2 つの リ テ ラルス ロ ッ ト が存在する) です。

[7:4] NUM_CODE1 コード ス ロ ッ ト フ ィ ール ド の数。 こ の読み出し専用フ ィ ール ド の値は b0000(コード ス ロ ッ ト が存在し ない)、 b0010 (2 つのコード ス ロ ッ ト が存在する)、b0110 (6 つのコード ス ロ ッ ト が存在する) のいずれかです。

[3:2] - 予約

[1] KEY キーフ ィ ール ド。 フ ラ ッ シ ュパッチ制御レジス タに書き込むには、 この書き込み専用ビ ッ ト に 1 を書き込む必要があ り ます。

[0] ENABLE フ ラ ッ シ ュパッチ ユニ ッ ト のイ ネーブルビ ッ ト

1 = フ ラ ッ シュパッチ ユニ ッ ト を許可

0 = フ ラ ッ シュパッチ ユニ ッ ト を禁止

ENABLE ビ ッ ト は リ セ ッ ト 時にク リ ア されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 9

アクセス制限な し 公開

Page 254: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

フ ラ ッ シュパッ チ リ マ ッ プレジス タ

フ ラ ッ シ ュパッチ リ マ ッ プレジス タは、 一致し たア ド レ スがシステム空間のどの位置に リ マ ッ プされるかを指定する ために使用し ます。 REMAP ア ド レ スは 8 ワード ア ラ イ ン ド で、 8 つの FPB コ ンパレータのそれぞれに対し て 1ワード が割 り 当て られます。

比較が一致する と、 次の位置に リ マ ッ プされます。

{3'b001, REMAP, COMP[2:0], HADDR[1:0]}

こ こ で、

• 3'b001 によ り 、 リ マ ッ プ されたア ク セスがシステム空間に固定されています。

• REMAP は 24 ビ ッ ト で 8 ワード ア ラ イ ン ド の リ マ ッ プア ド レ スです。

• COMP は一致し ている コ ンパレータです。 テーブル 11- 3 を参照し て下さい。

• HADDR[1:0] は、 元のア ド レ スの 2 つの 下位ビ ッ ト (LSB) です。HADDR[1:0] は、 命令フ ェ ッチに対し ては常時 2'b00 です。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0002004

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 こ のレジス タは リ セ ッ ト されません。

テーブル 11- 3 COMP マ ッ ピング

COMP[2:0] コ ンパレータ 説明

000 FP_COMP0 命令コ ンパレータ

001 FP_COMP1 命令コ ンパレータ

010 FP_COMP2 命令コ ンパレータ

011 FP_COMP3 命令コ ンパレータ

100 FP_COMP4 命令コ ンパレータ

101 FP_COMP5 命令コ ンパレータ

110 FP_COMP6 リ テ ラルコ ンパレータ

111 FP_COMP7 リ テ ラルコ ンパレータ

11- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 255: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

フ ラ ッ シュパッチ リ マ ッ プレジス タのビ ッ ト 割 り 当てを、 図 11- 3 に示し ます。

図 11- 3 フ ラ ッ シュパッ チ リ マ ッ プレジス タのビ ッ ト 割り当て

フ ラ ッ シュパッチ リ マ ッ プレジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 4 に示し ます。

フ ラ ッ シュパッ チ コ ンパレータ レジス タ

フ ラ ッ シュパッチ コ ンパレータ レジス タは、 PC のア ド レ ス と比較する値を格納する ために使用されます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ク セス 読み出し / 書き込み

ア ド レ ス 0xE0002008、 0xE000200C、 0xE0002010、 0xE0002014、 0xE0002018、 0xE000201C、

0xE0002020、 0xE0002024

リ セ ッ ト 時 ビ ッ ト [0] (ENABLE) は 1'b0 に リ セッ ト されます。

フ ラ ッ シュパッチ コ ンパレータ レジス タのビ ッ ト 割 り 当てを、 図 11- 4 に示し ます。

31 0

予約

4529 28

REMAP

予約

テーブル 11- 4 フ ラ ッ シュパッ チ リ マ ッ プレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:29] - 予約。 読み出し値 b001。 リ マ ッ プをシステム空間へ接続します。

[28:5] REMAP ベースア ド レ ス フ ィ ール ド を リ マ ッ プし ます。

[4:0] - 予約。 0 と し て読み出され、 書き込みは無視されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 11

アクセス制限な し 公開

Page 256: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

図 11- 4 フ ラ ッ シュパッ チ コ ンパレータ レジス タのビ ッ ト 割り当て

フ ラ ッ シ ュパッチ コ ンパレータ レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 5 p. 11- 12 に示し ます。

31 0

COMP

12829 2

REPLACE ENABLE

30

予約 予約

テーブル 11- 5 フ ラ ッ シュパッ チ コ ンパレータ レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:30] REPLACE COMP ア ド レ スが一致し た場合に発生させる イベン ト を選択し ます。

次のよ う に解釈されます。

b00 = リ マ ッ プア ド レ スに リ マ ッ プし ます。 FP_REMAP を参照し て下さい。

b01 = BKPT を下位ハーフ ワード に設定し ます。 上位ハーフ ワード には影響し ません。

b10 = BKPT を上位ハーフ ワード に設定し ます。 下位ハーフ ワード には影響し ません。

b11 = BKPT を下位および上位ハーフ ワード の両方に設定し ます。

b00 以外の設定は、 命令コ ンパレータに対し てのみ有効です。 リ テ ラルコ ンパレータでは、 b00 以外の設定は無視されます。

ア ド レ ス リ マ ッ ピングは、 b00 設定に対し てのみ有効です。

[29] - 予約

[28:2] COMP 比較ア ド レ ス

[1] - 予約

[0] ENABLE フ ラ ッ シュパッチ コ ンパレータ レジス タ n の比較および リ マ ッ プの許可

1 = フ ラ ッ シ ュパッチ コ ンパレータ レジス タ n の比較および リ マ ッ プを許可

0 = フ ラ ッ シ ュパッチ コ ンパレータ レジス タ n の比較および リ マ ッ プを禁止

FP_CTRL の ENABLE ビ ッ ト も、 比較を許可する よ う にセ ッ ト する必要があ り ます。

ENABLE ビ ッ ト は リ セ ッ ト 時にク リ ア されます。

11- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 257: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.5 DWT

DWT ははオプシ ョ ンのユニ ッ ト で、 次のよ う なデバッ グ機能を実行し ます。

• DWT ユニ ッ ト には 4 つのコ ンパレータが組み込まれてお り 、 ハードウ ェ ア ウ ォ ッチポイ ン ト 、 ETM ト リ ガ、 PC サンプラ イベン ト ト リ ガ、またはデータ ア ド レ スサンプラ イベン ト ト リ ガ と し て構成する こ と ができ ます。 初のコ ンパレータ DWT_COMP0 は、 ク ロ ッ ク サイ クル カウ ン タ CYCCNT に対し て比較する こ と もでき ます。 2 番目のコ ンパレータ DWT_COMP1 は、 データ コ ンパレータ と し て も使用でき ます。DWT にコ ンパレータが 1 つだけ含まれる よ う に構成し、 そのコ ンパレータ を ウ ォ ッチポ イ ン ト または ト リ ガ と し て使用可能にする こ と もでき ます。 コ ンパレータが 1 つしか存在し ない場合、 データの一致はサポー ト されません。

• DWT には、 次の ものに対し て使用する カ ウ ン タが組み込まれています。

— ク ロ ッ クサイ クル (CYCCNT)

— フ ォール ド された命令

— ロード / ス ト アユニ ッ ト (LSU) 操作

— ス リ ープサイ クル

— CPI ( 初のサイ クルを除 く すべての命令サイ クル)

— 割 り 込みオーバヘッ ド

Note

イベン ト は、 カ ウ ン タがオーバフ ローする たびに送信されます。

• DWT を構成する と、 定義された間隔で PC サンプルおよび割 り 込みイベン ト 情報を送信する こ と ができ ます。

11.5.1 DWT レジス タの概要と説明

DWT レジス タの一覧を、 テーブル 11- 6 p. 11- 14 に示し ます。

Note

どの DWT レジス タ も、 存在する、 または存在し ないもの と し て構成でき ます。 存在し ないもの と し て構成されているすべてのレジス タは、 0 と し て読み出されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 13

アクセス制限な し 公開

Page 258: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

テーブル 11- 6 DWT レジス タの概要

名前 タ イプ ア ド レス リセッ ト時の値 説明

DWT_CTRL 読み出し / 書き込み

0xE0001000 0x40000000 DWT 制御レジス タ p. 11- 16 参照

DWT_CYCCNT 読み出し / 書き込み

0xE00010040x00000000 DWT カレン ト PC サンプラサイ クル カ ウ

ン ト レジス タ p. 11- 20 参照

DWT_CPICNT 読み出し / 書き込み

0xE0001008- DWT CPI カ ウ ン ト レジス タ p. 11- 21 参照

DWT_EXCCNT 読み出し / 書き込み

0xE000100C - DWT 例外オーバヘッ ド カ ウ ン ト レジス タ p. 11- 22 参照

DWT_SLEEPCNT 読み出し / 書き込み

0xE0001010 - DWT ス リ ープカ ウ ン ト レジス タ p. 11- 23参照

DWT_LSUCNT 読み出し / 書き込み

0xE0001014 - DWT LSU カ ウ ン ト レジス タ p. 11- 24 参照

DWT_FOLDCNT 読み出し / 書き込み

0xE0001018 - DWT フ ォール ド カ ウ ン ト レジス タ p. 11- 25 参照

DWT_PCSR 読み出し専用

0xE000101C - DWT プロ グ ラ ムカ ウ ン タ サンプルレジスタ p. 11- 26 参照

DWT_COMP0読み出し / 書き込み

0xE0001020 - DWT コ ンパレータ レジス タ p. 11- 26 参照

DWT_MASK0読み出し / 書き込み

0xE0001024 - DWT マス ク レジス タ 0 ~ 3 p. 11- 27 参照

DWT_FUNCTION0読み出し / 書き込み

0xE0001028 0x00000000 DWT 機能レジス タ 0 ~ 3 p. 11- 28 参照

DWT_COMP1読み出し / 書き込み

0xE0001030 - DWT コ ンパレータ レジス タ p. 11- 26 参照

DWT_MASK1読み出し / 書き込み

0xE0001034 - DWT マス ク レジス タ 0 ~ 3 p. 11- 27 参照

DWT_FUNCTION1 読み出し / 書き込み

0xE0001038 0x00000000 DWT 機能レジス タ 0 ~ 3 p. 11- 28 参照

DWT_COMP2読み出し / 書き込み

0xE0001040 - DWT コ ンパレータ レジス タ p. 11- 26 参照

11- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 259: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT_MASK2読み出し / 書き込み

0xE0001044 - DWT マス ク レジス タ 0 ~ 3 p. 11- 27 参照

DWT_FUNCTION2 読み出し / 書き込み

0xE0001048 0x00000000 DWT 機能レジス タ 0 ~ 3 p. 11- 28 参照

DWT_COMP3読み出し / 書き込み

0xE0001050 - DWT コ ンパレータ レジス タ p. 11- 26 参照

DWT_MASK3読み出し / 書き込み

0xE0001054 - DWT マス ク レジス タ 0 ~ 3 p. 11- 27 参照

DWT_FUNCTION3 読み出し / 書き込み

0xE0001058 0x00000000 DWT 機能レジス タ 0 ~ 3 p. 11- 28 参照

PID4 読み出し専用

0xE0001FD0 0x04 値 0x04

PID5 読み出し専用

0xE0001FD4 0x00 値 0x00

PID6 読み出し専用

0xE0001FD8 0x00 値 0x00

PID7 読み出し専用

0xE0001FDC 0x00 値 0x00

PID0 読み出し専用

0xE0001FE0 0x02 値 0x02

PID1 読み出し専用

0xE0001FE4 0xB0 値 0xB0

PID2 読み出し専用

0xE0001FE8 0x2B 値 0x2B

PID3 読み出し専用

0xE0001FEC 0x00 値 0x00

CID0 読み出し専用

0xE0001FF0 0x0D 値 0x0D

テーブル 11- 6 DWT レジス タの概要 (続 く )

名前 タ イプ ア ド レス リセッ ト時の値 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 15

アクセス制限な し 公開

Page 260: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT 制御レジス タ

DWT 制御レジス タは、 DWT ユニ ッ ト を許可する ために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001000

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 ウ ォ ッ チポ イ ン ト および ト リ ガ用に 4 つのコ ンパレータが存在する場合 0x40000000

ウ ォ ッ チポ イ ン ト 専用の 4 つのコ ンパレータが存在する場合0x4F000000

1 つのコ ンパレータのみが存在する場合 0x10000000

ウ ォ ッ チポ イ ン ト 専用の 1 つのコ ンパレータのみが存在し、 トリ ガが存在し ない場合 0x1F000000

DWT が存在し ない場合 0x00000000

DWT 制御レジス タのビ ッ ト 割 り 当てを、 図 11- 5 p. 11- 17 に示し ます。

CID1 読み出し専用

0xE0001FF4 0xE0 値 0xE0

CID2 読み出し専用

0xE0001FF8 0x05 値 0x05

CID3 読み出し専用

0xE0001FFC 0xB1 値 0xB1

テーブル 11- 6 DWT レジス タの概要 (続 く )

名前 タ イプ ア ド レス リセッ ト時の値 説明

11- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 261: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

図 11- 5 DWT 制御レジス タのビ ッ ト 割り当て

DWT 制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 7 に示し ます。

31 019 18 17 16 15 13 12 11 10 8 5

POSTCNT POSTPRESET

28 27

NUMCOMP

SLEEPEVTENAEXCEVTENACPIEVTENA

EXCTRCENA

PCSAMPLENASYNCTAP

202122

CYCEVTENAFOLDEVTENA

LSUEVTENA

149

CYCCNTENA

CYCTAP

23

NOEXTTRIGNOTRCPKT

242526

NOCYCCNTNOPRFCNT

予約 予約

テーブル 11- 7 DWT 制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:28] NUMCOMP コ ンパレータ数のフ ィ ール ド。 こ のフ ィ ール ド は読み出し専用で、 存在する コンパレータの数を示し ています。 有効な値は b0100、 b0001、 b0000 のいずれかです。

[27] NOTRCPKT こ のビ ッ ト がセ ッ ト されている場合、 ト レースサンプ リ ング と例外 ト レースはサポー ト されていません。

[26] NOEXTTRIG こ のビ ッ ト がセ ッ ト されている場合、 CMPMATCH[N] はサポー ト されていません。

[25] NOCYCCNT こ のビ ッ ト がセ ッ ト されている場合、 DWT_CYCCNT はサポー ト されていません。

[24] NOPRFCNT こ のビ ッ ト がセ ッ ト されている場合、 DWT_FOLDCNT、 DWT_LSUCNT、DWT_SLEEPCNT、 DWT_EXCCNT、 DWT_CPICNT はサポー ト されていません。

[23] 予約 -

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 17

アクセス制限な し 公開

Page 262: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

[22] CYCEVTENA サイ クルカ ウ ン ト イベン ト を許可し ます。 POSTCNT カ ウ ン タによ って ト リ ガされる と、 イベン ト を送信し ます。 詳細については、 CYCTAP (ビ ッ ト [9]) および POSTPRESET、 ビ ッ ト [4:1] を参照し て下さい。

1 = サイ クルカ ウ ン ト イベン ト を許可

0 = サイ クルカ ウ ン ト イベン ト を禁止

こ のイベン ト は、 PCSAMPLENA、 ビ ッ ト [12] が禁止されている場合にのみ送信されます。

PCSAMPLENA は、 このビ ッ ト の設定に優先し ます。

CYCEVTENA ビ ッ ト は、 リ セ ッ ト 時にク リ ア されます。

[21] FOLDEVTENA フ ォール ド された命令カ ウ ン ト イベン ト を許可し ます。 DWT_FOLDCNT がオーバフ ローする と、 イベン ト を送信し ます (フ ォール ド された命令の 256 サイ クルご と)。 フ ォール ド された命令と は、 実行に 1 サイ クルも掛から なかった命令です。 例えば、 IT 命令はフ ォール ド される ため 1 サイ クルも使用されません。

1 = フ ォール ド された命令のカ ウ ン ト イベン ト を許可

0 = フ ォール ド された命令のカ ウ ン ト イベン ト を禁止

FOLDEVENTA ビ ッ ト は、 リ セ ッ ト 時にク リ ア されます。

[20] LSUEVTENA LSU カ ウ ン ト イベン ト を許可し ます。 DWT_LSUCNT がオーバフ ローする と、イベン ト を送信し ます (LSU 演算の 256 サイ クルご と)。 LSU カ ウ ン ト には、命令の初期サイ クル後にかかるすべての LSU サイ クルをカ ウ ン ト し ます。

1 = LSU カ ウ ン ト イベン ト を許可

0 = LSU カ ウ ン ト イベン ト を禁止

LSUEVTENA ビ ッ ト は、 リ セ ッ ト 時に ク リ ア されます。

[19] SLEEPEVTENA ス リ ープカ ウ ン ト イベン ト を許可し ます。 DWT_SLEEPCNT がオーバフ ローする と、 イベン ト を送信し ます (プロセ ッ サがス リ ープ中の 256 サイ クルご と)。

1 = ス リ ープカ ウ ン ト イベン ト を許可

0 = ス リ ープカ ウ ン ト イベン ト を禁止

SLEEPEVTENA ビ ッ ト は、 リ セ ッ ト 時に ク リ ア されます。

[18] EXCEVTENA 割 り 込みオーバヘッ ド イベン ト を許可し ます。 DWT_EXCCNT がオーバフ ローする と、 イベン ト を送信し ます (割 り 込みオーバヘッ ド の 256 サイ クルご と)。

1 = 割 り 込みオーバヘッ ド イベン ト を許可

0 = 割 り 込みオーバヘッ ド イベン ト を禁止

EXCEVTENA ビ ッ ト は、 リ セ ッ ト 時にク リ ア されます。

テーブル 11- 7 DWT 制御レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

11- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 263: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

[17] CPIEVTENA CPI カ ウ ン ト イベン ト を許可し ます。 DWT_CPICNT がオーバフ ローする と、 イベン ト を送信し ます (マルチサイ クル命令の 256 サイ クルご と)。

1 = CPI カ ウ ン ト イベン ト を許可

0 = CPI カ ウ ン ト イベン ト を禁止

CPIEVTENA ビ ッ ト は、 リ セ ッ ト 時にク リ ア されます。

[16] EXCTRCENA 割 り 込みイベン ト ト レース を許可し ます。

1 = 割 り 込みイベン ト ト レース を許可

0 = 割 り 込みイベン ト ト レース を禁止

EXCEVTENA ビ ッ ト は、 リ セ ッ ト 時にク リ ア されます。

[15:13] - 予約

[12] PCSAMPLEENA PC サンプ リ ング イベン ト を許可し ます。 POSTCNT カ ウ ン タによ って ト リ ガ される と、 PC サンプルイベン ト が送信されます。 詳細については、 CYCTAP(ビ ッ ト [9]) および POSTPRESET (ビ ッ ト [4:1]) を参照し て下さい。 このビ ット によ る許可は、 CYCEVTENA (ビ ッ ト [20]) よ り 優先されます。

1 = PC サンプ リ ング イベン ト を許可

0 = PC サンプ リ ング イベン ト を禁止

PCSAMPLENA ビ ッ ト は、 リ セ ッ ト 時にク リ ア されます。

[11:10] SYNCTAP ITM の SYNCENA 制御に同期化パルス を供給し ます。 こ こ で選択された値により 、 DWT_CYCCNT レジス タ上でタ ッ プを選択し て周期 (約 1/ 秒またはそれより 小さい) が決定されます。 同期化 (ハー ト ビー ト および動的接続同期化) を使用するには、 CYCCNTENA を 1 に、 SYNCTAP をその値のいずれかに、SYNCENA を 1 に設定する必要があ り ます。

0b00 = 禁止。 同期化カ ウ ン ト な し

0b01 = CYCCNT ビ ッ ト 24 でタ ッ プ

0b10 = CYCCNT ビ ッ ト 26 でタ ッ プ

0b11 = CYCCNT ビ ッ ト 28 でタ ッ プ

[9] CYCTAP DWT_CYCCNT レジス タのタ ッ プを選択し ます。 これらは、 次のよ う にビ ッ ト[6] と ビ ッ ト [10] に分け られます。

CYCTAP = 0 の場合、 ビ ッ ト [6] がタ ッ プ と し て選択

CYCTAP = 1 の場合、 ビ ッ ト [10] がタ ッ プ と し て選択

CYCCNT レジス タで選択し たビ ッ ト が、 0 から 1 または 1 から 0 に変更されると、 POSTCNT のビ ッ ト [8:5]、 ポス ト ス カ ラ カ ウ ン タへ送信され、 そのカ ウ ンタはカ ウ ン ト ダウ ン されます。 ポス ト ス カ ラが 0 の場合にビ ッ ト が変更されると、 PC サンプ リ ングまたは CYCEVTCNT のイベン ト が ト リ ガ されます。

テーブル 11- 7 DWT 制御レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 19

アクセス制限な し 公開

Page 264: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

Note

デバッ グ例外およびモニ タ制御レジス タの TRCENA ビ ッ ト は、 DWT を使用する前にセ ッ ト する必要があ り ます。 デバッ グ例外およびモニ タ制御レジスタ p. 10- 10 を参照し て下さい。

Note

DWT は、 ITM と は独立に許可されます。 DWT を許可し て イベン ト を送信する場合は、 ITM も許可する必要があ り ます。

DWT カ レン ト PC サンプ ラサイ クル カウン ト レジス タ

DWT カレ ン ト PC サンプラサイ クル カ ウ ン ト レジス タは、 コ アサイ クルの数をカ ウ ン ト する ために使用し ます。 これによ り 、 経過し た実行時間が測定でき ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001004

[8:5] POSTCNT CYCTAP のポス ト ス カ ラ カ ウ ン タ。

選択し た タ ッ プビ ッ ト が 0 から 1 または 1 から 0 に変更される と、 ポス ト ス カラ カ ウ ン タは、 0 でなければカ ウ ン ト ダウ ン されます。

0 の場合は、 PCSAMPLENA または CYCEVTENA を使用する ためのイベン ト がト リ ガ されます。 同時に、 POSTPRESET (ビ ッ ト [4:1]) の値がこのカ ウ ン タにリ ロード されます。

[4:1] POSTPRESET ビ ッ ト [8:5] の POSTCNT (ポス ト ス カ ラ カ ウ ン タ) の リ ロード に使用される値。

こ の値が 0 の場合、 イベン ト は各タ ッ プ変更の際に ト リ ガ されます (2 のべき乗、 例えば 1<<6 または 1<<10 など)。

こ のフ ィ ール ド が 0 以外の値の場合、 その値がカ ウ ン ト ダウ ン値と な り 、 0 にな るたびに POSTCNT に リ ロード されます。 例えば、 このレジス タの値が 1 の場合は、 タ ッ プが 2 回変更される ご と にイベン ト が生成されます。

[0] CYCCNTENA CYCCNT カ ウ ン タ を許可し ます。 許可されていない場合は、 カ ウ ン タはカ ウ ント されず、 PS サンプ リ ングまたは CYCCNTENA のイベン ト は生成されません。通常に使用する場合は、 デバッ ガによ り CYCCNT カ ウ ン タ を 0 に初期化する必要があ り ます。

テーブル 11- 7 DWT 制御レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

11- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 265: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x00000000

DWT カレ ン ト PC サンプラサイ クル カ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 8 に示し ます。

これはフ リ ーラ ン カ ウ ン タです。 このカ ウ ン タには、 次の 3 つの機能があ ります。

• PCSAMPLENA がセ ッ ト されている場合、 選択し た タ ッ プビ ッ ト の値が(0 から 1 または 1 から 0 へ) 変更され、 いずれかのポス ト ス カ ラ値のカ ウ ン ト が 0 になった と きに、 PC がサンプ リ ング されて送信されます。

• CYCEVTENA がセ ッ ト されている (かつ PCSAMPLENA が ク リ ア されている) 場合、 選択し た タ ッ プビ ッ ト の値が (0 から 1 または 1 から 0へ) 変更され、 いずれかのポス ト スカ ラ値のカ ウ ン ト が 0 になった と きに、 イベン ト が送信されます。

• アプ リ ケーシ ョ ンおよびデバッ ガは、 カ ウ ン タ を使用し て経過し た実行時間を測定する こ と ができ ます。 開始時刻と終了時刻の差を計算する こと によ り 、 アプ リ ケーシ ョ ンはコ ア内ク ロ ッ ク間の時間を測定する こ と

ができ ます (デバッ グでホール ト 中を除 く )。 これは 232 コ ア ク ロ ッ ク サイ クルまで有効です (例えば、 50MHz において約 86 秒)。

DWT CPI カウン ト レジス タ

DWT CPI カ ウ ン ト レジス タは、 初のサイ クル以後の命令サイ クルの総数をカ ウ ン ト する ために使用し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001008

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 -

テーブル 11- 8 DWT カ レン ト PC サンプ ラサイ クル カウン ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] CYCCNT カレ ン ト PC サンプラサイ クル カ ウ ン タのカ ウ ン ト 値。 許可されている場合は、 こ のカ ウ ン タによ り 、 コ アが停止し ている と き を除 く コ アサイ クルの数がカ ウ ン ト されます。

CYCCNT は、 加算式のフ リ ーラ ン カ ウ ン タです。 オーバフ ローする と 0 にラ ッ プア ラウ ン ド し ます。

初に許可される と きに、 デバッ ガによ り 0 に初期化する必要があ り ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 21

アクセス制限な し 公開

Page 266: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT CPI カ ウ ン ト レジス タのビ ッ ト 割 り 当てを、 図 11- 6 に示し ます。

図 11- 6 DWT CPI カウン ト レジス タのビ ッ ト 割り当て

DWT CPI カ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 9 に示し ます。

DWT 例外オーバヘ ッ ド カウン ト レジス タ

DWT 例外オーバヘッ ド カ ウ ン ト レジス タは、 割 り 込み処理中に消費される合計サイ クル数をカ ウ ン ト する ために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000100C

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 -

DWT 例外オーバヘッ ド カ ウ ン ト レジス タのビ ッ ト 割 り 当てを、 図 11- 7 に示し ます。

図 11- 7 DWT 例外オーバヘ ッ ド カウン ト レジス タのビ ッ ト 割り当て

予約

31 8 7 0

CPICNT

テーブル 11- 9 DWT CPI カウン ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:8] - 予約

[7:0] CPICNT 現在の CPI カ ウ ン タ値。 DWT_LSUCNT によ って記録される命令以外のすべての命令を実行するのに必要な追加サイ クル ( 初のサイ クルはカ ウ ン ト されません) でイ ン クリ メ ン ト されます。 このカ ウ ン タは、 すべての命令フ ェ ッチス ト ールでも イ ン ク リ メン ト されます。

CPIEVTENA がセ ッ ト されている と、 カ ウ ン タがオーバフ ローし た と きにイベン ト が送信されます。

許可する と 0 に ク リ ア されます。

予約

31 8 7 0

SLEEPCNT

11- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 267: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT 例外オーバヘッ ド カ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 10 に示し ます。

DWT ス リープ カウン ト レジス タ

DWT ス リ ープカ ウ ン ト レジス タは、 プロセ ッ サがス リ ープ中の合計サイ クル数をカ ウ ン ト する ために使用し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001010

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 -

DWT ス リ ープカ ウ ン ト レジス タのビ ッ ト 割 り 当てを、 図 11- 8 に示し ます。

図 11- 8 DWT ス リープカウン ト レジス タのビ ッ ト 割り当て

テーブル 11- 10 DWT 例外オーバヘ ッ ド カウン ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:8] - 予約

[7:0] EXCCNT 現在の割 り 込みオーバヘッ ド のカ ウ ン タ値。 割 り 込み処理中に消費される合計サイ クル数をカ ウ ン ト し ます (エン ト リ ス タ ッ ク、 復帰アン ス タ ッ ク、 横取 り など)。 カ ウン タがオーバフ ローする と、 イベン ト が送信されます (256 サイ クルご と)。 許可される と、 このカ ウ ン タは 0 に初期化されます。

許可する と 0 にク リ ア されます。

予約

31 8 7 0

SLEEPCNT

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 23

アクセス制限な し 公開

Page 268: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT ス リ ープカ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 11に示し ます。

Note

SLEEPCNT は FCLK で動作し ています。 電力消費を 小限にする ために、 プロセ ッ サのス リ ープ中は FCLK の周波数を下げる こ と ができ ます。 こ のため、ス リ ープの期間を計算する と きは、 ス リ ープ中の FCLK の周波数を使用し て計算する必要があ り ます。

DWT LSU カウン ト レジス タ

DWT LSU カ ウ ン ト レジス タは、 プロセ ッ サが LSU 操作を処理する、 初のサイ クルよ り 後の合計サイ クル数をカ ウ ン ト する ために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001014

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 -

DWT LSU カ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 図 11- 9 に示し ます。

図 11- 9 DWT LSU カウン ト レジス タのビ ッ ト 割り当て

テーブル 11- 11 DWT ス リープカウン ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:8] - 予約

[7:0] SLEEPCNT ス リ ープカ ウ ン タ。 プロセ ッサがス リ ープ中のサイ クル数をカ ウ ン ト し ます。 カ ウン タがオーバフ ローする と、 イベン ト が送信されます (256 サイ クルご と)。 許可される と、 こ のカ ウ ン タは 0 に初期化されます。

予約

31 8 7 0

LSUCNT

11- 24 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 269: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT LSU カ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 12 に示し ます。

DWT フ ォールド カウン ト レジス タ

DWT フ ォール ド カ ウ ン ト レジス タは、 フ ォール ド された命令の総数をカ ウン ト する ために使用し ます。 0 サイ クルを要する命令ご と に、 1 だけカ ウ ン トされます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001018

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 -

DWT フ ォール ド カ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 図 11- 10 に示し ます。

図 11- 10 DWT フ ォールド カウン ト レジス タのビ ッ ト 割り当て

テーブル 11- 12 DWT LSU カウン ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:8] - 予約

[7:0] LSUCNT LSU カ ウ ン タ。 プロセ ッサが LSU 操作を処理する合計サイ クル数をカ ウ ン ト し ます。命令の初期実行コ ス ト はカ ウ ン ト されません。

例えば、 完了するのに 2 サイ クルを要する LDR では、 こ のカ ウ ン タが 1 サイ クル分イ ン ク リ メ ン ト されます。 同様に、 2 サイ クル分ス ト ールする LDR (つま り 、 4 サイクル分) では、 このカ ウ ン タが 3 サイ クル分イ ン ク リ メ ン ト されます。 カ ウ ン タがオーバフ ローする と、 イベン ト が送信されます (256 サイ クルご と)。

許可する と 0 にク リ ア されます。

予約

31 8 7 0

FOLDCNT

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 25

アクセス制限な し 公開

Page 270: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT フ ォール ド カ ウ ン ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 13 に示し ます。

DWT プログラムカウン タ サンプルレジス タ

DWT プロ グ ラ ムカ ウ ン タ サンプルレジス タ (PCSR) は、 現在実行中のコー ドを変更せずに、 デバッ グエージェ ン ト を使用し て粒度の粗いソ フ ト ウ ェ アプロ フ ァ イ リ ングを行 う ために使用し ます。

コ アがデバッ グ状態でない場合は、 返される値は直前に実行された命令の命令ア ド レ スです。

コ アがデバッ グ状態の場合は、 返される値は 0xFFFFFFFF です。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE000101C

ア ク セス 読み出し専用

リ セ ッ ト 時 予測不能

DWT PCSR のフ ィ ール ド の説明を、 DWT プロ グ ラ ムカ ウ ン タ サンプルレジス タのビ ッ ト 割 り 当てに示し ます。

DWT コ ンパレータ レジス タ

DWT コ ンパレータ レジス タ 0 ~ 3 は、 ウ ォ ッ チポ イ ン ト イベン ト を ト リ ガする値を書き込むために使用し ます。

テーブル 11- 13 DWT フ ォールド カウン ト レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:8] - 予約

[7:0] FOLDCNT フ ォール ド された命令の総数をカ ウ ン ト し ます。 許可される と、 こ のカ ウ ン タは0 に初期化されます。

テーブル 11- 14 DWT プログラムカウン タ サンプルレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] EIASAMPLE 実行命令ア ド レ スサンプル、 またはコ アが停止し ている場合は0xFFFFFFFF。

11- 26 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 271: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001020、 0xE0001030、 0xE0001040、 0xE0001050

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 -

DWT コ ンパレータ レジス タ 0 ~ 3 のフ ィ ール ド の説明を、 テーブル 11- 15 に示し ます。

DWT マスク レジス タ 0 ~ 3

DWT マス ク レジス タ 0 ~ 3 は、 COMP と の比較の際に、 マス ク をデータ ア ドレ スに適用する ために使用し ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001024、 0xE0001034、 0xE0001044、 0xE0001054

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 -

DWT マス ク レジス タ 0 ~ 3 のビ ッ ト 割 り 当てを、 図 11- 11 に示し ます。

図 11- 11 DWT マスク レジス タ 0 ~ 3 のビ ッ ト 割り当て

テーブル 11- 15 DWT コ ンパレータ レジス タ 0 ~ 3 のビ ッ ト 割り当て

フ ィ ールド 名前 定義

[31:0] COMP DWT_FUNCTIONx によ って指定されるデータ ア ド レ ス、 および PC に対し て比較するためのデータ値。

DWT_COMP0 は、 PC サンプラ カ ウ ン タ (DWT_CYCCNT) の値に対し て も比較でき ます。

DWT_COMP1 は、 データマ ッチングが実行されるためのデータ値 (DATAVMATCH) に対し て も比較でき ます。

31 0

Reserved

4

MASK

3

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 27

アクセス制限な し 公開

Page 272: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT マス ク レジス タ 0 ~ 3 のビ ッ ト 割 り 当ての説明を、 テーブル 11- 16 に示し ます。

DWT 機能レジス タ 0 ~ 3

DWT 機能レジス タ 0 ~ 3 は、 コ ンパレータの動作を制御する ために使用し ます。 各コ ンパレータは、 次の操作を実行でき ます。

• PC またはデータ ア ド レ スのいずれかに対する比較。 これはCYCMATCH によ って制御されます。 こ の機能はコ ンパレータ 0 (DWT_COMP0) でのみ使用可能です。

• 関連付け られたア ド レ ス コ ンパレータでア ド レ スが一致し た場合、 データの値の比較を実行し ます。 この機能はコ ンパレータ 1 (DWT_COMP1)でのみ使用可能です。

• データ または PC カ ッ プルの送信、 ETM の ト リ ガ、 あ るいはFUNCTION で定義された操作に依存する ウ ォ ッチポイ ン ト の生成。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0001028、 0xE0001038、 0xE0001048、 0xE0001058

ア ク セス 読み出し / 書き込み

ア ド レ ス 0x00000000

DWT 機能レジス タ 0 ~ 3 のビ ッ ト 割 り 当てを、 図 11- 12 に示し ます。

テーブル 11- 16 DWT マスク レジス タ 0 ~ 3 のビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:4] - 予約

[3:0] MASK COMP と の比較時のデータ ア ド レ スのマス ク。 これは、 無視マス ク のサイ ズです。

そのため、 使用する ア ド レ スに対し て、 ~0<<MASK によ り マス クが形成されます。 つまり 、 DWT マ ッチングは (ADDR & (~0 << MASK)) == COMP と し て実行されます。

ただし、 バス上のど こに出現し て も ア ド レ スの比較を可能にするため、 実際の比較はも う 少し複雑です。 そのため、 COMP が 3 の場合、 0 のワード内であ るため、 0 のワード ア ク セスでも一致し ます。

11- 28 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 273: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

図 11- 12 DWT 機能レジス タ 0 ~ 3 のビ ッ ト 割り当て

DWT 機能レジス タ 0 ~ 3 のビ ッ ト 割 り 当ての説明を、 テーブル 11- 17 に示します。

31 1 06 5 4 3 2

予約

CYCMATCH

EMITRANGE

FUNCTION

7825 24 23 1920 16 15 12 11 10 9

MATCHED

予約

DATAVADDR1DATAVADDR0

DATAVSIZE

DATAVMATCHLNK1ENA

予約

予約

テーブル 11- 17 DWT 機能レジス タ 0 ~ 3 のビ ッ ト 機能

ビ ッ ト フ ィ ールド 機能

[31:25] - 予約

[24] MATCHED こ のビ ッ ト はコ ンパレータが一致し た場合にセ ッ ト され、 こ のビ ッ ト が 後に読み出された後に、 FUNCTION によ って定義された操作が発生し た こ と を示します。 こ のビ ッ ト は読み出し時にク リ ア されます。

[23:20] - 予約

[19:16] DATAVADDR1 DATAVMATCH == 1 および LNK1ENA == 1 の場合に、 データ値の一致に対する 2番目の リ ン ク される ア ド レ ス コ ンパレータの ID を示し ます。

[15:12] DATAVADDR0 DATAVMATCH == 1 の場合に、 データ値の一致に対する リ ン ク される ア ド レ ス コ ンパレータの ID を示し ます。

[11:10] DATAVSIZE 一致する COMP レジス タのデータサイ ズを定義し ます。

00 = バイ ト

01 = ハーフ ワード

10 = ワード

11 = 予測不能

[9] LNK1ENA 読み出し専用

0 = DATAVADDR1 はサポー ト されていません。

1 = DATAVADDR1 はサポー ト (許可) されています。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 29

アクセス制限な し 公開

Page 274: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

DWT 機能レジス タの機能設定の説明を、 テーブル 11- 18 に示し ます。

[8] DATAVMATCH

このビ ッ ト は、 コ ンパレータ 1 でのみ使用可能です。 DATAVMATCH がセ ッ トされている場合は、 このコ ンパレータでデータ値の比較が実行されます。

DATAVADDR0 および DATAVADDR1 によ って指定されたコ ンパレータによ り 、データ比較のア ド レ スが提供されます。 DWT_FUNCTION1 で DATAVMATCH がセ ッ ト されている場合は、 DATAVADDR0 および DATAVADDR1 によ って指定された コ ンパレータに対する FUNCTION 設定は上書き され、 これらのコ ンパレータはデータ比較用のア ド レ ス一致のみを提供し ます。

[7] CYCMATCH コ ンパレータ 0 でのみ使用可能です。 セ ッ ト されている場合、 このコ ンパレータはク ロ ッ ク サイ クル カ ウ ン タに対し て比較されます。

[6] - 予約

[5] EMITRANGE 送信範囲フ ィ ール ド。 範囲一致が発生し た場合にオフセ ッ ト の送信を許可するよ う に予約されています。 EMITRANGE ビ ッ ト は、 リ セ ッ ト 時にク リ ア されます。 EMITRANGE が許可されている場合、 PC サンプ リ ングはサポー ト されません。

EMITRANGE は、 FUNCTION の値が次のいずれかの場合にのみ適用されます。

FUNCTION = b0001、 b0010、 b0011、 b1100、 b1101、 b1110、 b1111

[4] - 予約

[3:0] FUNCTION FUNCTION 設定については、 テーブル 11- 18 p. 11- 30 を参照し て下さい。

テーブル 11- 17 DWT 機能レジス タ 0 ~ 3 のビ ッ ト 機能 (続 く )

ビ ッ ト フ ィ ールド 機能

テーブル 11- 18 DWT 機能レジス タの設定

値 機能

b0000 禁止

b0001 EMITRANGE = 0、 ITM を通し て PC をサンプ リ ング し送信し ます。

EMITRANGE = 1、 ITM を通し てア ド レ スオフセ ッ ト を送信し ます。

b0010 EMITRANGE = 0、 読み出し / 書き込み時に ITM を通し てデータ を送信します。

EMITRANGE = 1、 読み出し / 書き込み時に ITM を通し てデータおよびアド レ スオフセ ッ ト を送信し ます。

b0011 EMITRANGE = 0、 読み出し / 書き込み時に ITM を通し て PC およびデータ値をサンプ リ ング し ます。

EMITRANGE = 1、 読み出し / 書き込み時に ITM を通し てア ド レ スオフセ ッ ト およびデータ値を送信し ます。

11- 30 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 275: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

Note

• ETM が組み込まれていない場合、 ETM ト リ ガは使用でき ません。

• データ値は、 フ ォール ト (MPU またはバス フ ォール ト ) が発生し ないア ク セスについてのみサンプ リ ング されます。 PC は、 どのフ ォール トかには関係な く サンプ リ ング されます。 PC はバース ト の 初のア ド レスについてのみサンプ リ ング されます。

• DWT_FUNCTION1 で も DATAVMATCH がセ ッ ト されている場合、DWT_FUNCTION1 の DATAVADDR0 および DATAVADDR1 によ って指定された コ ンパレータについて FUNCTION が上書き されます。DATAVADDR0 および DATAVADDR1 によ って指定された コ ンパレータは、 コ ンパレータ 1 のデータ一致に対し てのみア ド レ ス コ ンパレータ一致を実行でき ます。

b0100 PC 一致時のウ ォ ッチポイ ン ト

b0101 読み出し時のウ ォ ッチポイ ン ト

b0110 書き込み時のウ ォ ッチポイ ン ト

b0111 読み出し / 書き込み時のウ ォ ッチポイ ン ト

b1000 PC 一致時の ETM ト リ ガ

b1001 読み出し時の ETM ト リ ガ

b1010 書き込み時の ETM ト リ ガ

b1011 読み出し / 書き込み時の ETM ト リ ガ

b1100 EMITRANGE = 0、 読み出し転送のデータ をサンプ リ ング し ます。

EMITRANGE = 1、 読み出し転送の Daddr[15:0] をサンプ リ ング し ます。

b1101 EMITRANGE = 0、 書き込み転送のデータ をサンプ リ ング し ます。

EMITRANGE = 1、 書き込み転送の Daddr[15:0] をサンプ リ ング し ます。

b1110 EMITRANGE = 0、 読み出し転送の PC + データ をサンプ リ ング し ます。

EMITRANGE = 1、 読み出し転送の Daddr[15:0] + データ をサンプ リ ング します。

b1111 EMITRANGE = 0、 書き込み転送の PC + データ をサンプ リ ング し ます。

EMITRANGE = 1、 書き込み転送の Daddr[15:0] + データ をサンプ リ ング します。

テーブル 11- 18 DWT 機能レジス タの設定 (続 く )

値 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 31

アクセス制限な し 公開

Page 276: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

• 実装時にデータ一致機能が組み込まれていない場合、 DWT_FUNCTION1の DATAVADDR0、 DATAVADDR1、 DATAVMATCH をセ ッ ト する こ とはでき ません。 これは、 その実装ではデータ一致機能が使用でき ないこと を意味し ます。 データ一致が使用でき るかど う かをテス ト するには、DWT_FUNCTION1 の DATAVMATCH ビ ッ ト を書き込んでから読み出します。 こ のビ ッ ト をセ ッ ト でき ない場合は、 データ一致は使用でき ません。

• ウ ォ ッ チポ イ ン ト は命令の後で停止する ため、 ウ ォ ッ チポ イ ン ト でのPC 一致は推奨されません。 これは、 主に ETM をガード し て ト リ ガし ます。

11- 32 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 277: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.6 ITM

ITM は printf 形式のデバッ グをサポー ト する、 オプシ ョ ンのアプ リ ケーシ ョン駆動型 ト レース ソースで、 オペレーテ ィ ングシステム (OS) およびアプ リケーシ ョ ンのイベン ト を ト レース し て、 システム診断情報を送信し ます。ITM は ト レース情報をパケ ッ ト と し て送信し ます。 パケ ッ ト を生成可能なソースは 3 つあ り ます。 複数の ソースが同時にパケ ッ ト を生成し た場合は、ITM によ ってパケ ッ ト の出力順序が調整されます。 ソースは、 優先順位の高いものから順に、 次の 3 つです。

• ソ フ ト ウ ェ ア ト レース。 ソ フ ト ウ ェ アは ITM ステ ィ ム ラ ス レジス タに直接書き込むこ と ができ ます。 これによ り パケ ッ ト が送信されます。

• ハード ウ ェ ア ト レース。 これらのパケ ッ ト は DWT によ り 生成され、ITM によ って送信されます。

• タ イ ム ス タ ンプ。 タ イ ム ス タ ンプはパケ ッ ト に関連し て送信されます。ITM にはタ イ ム ス タ ンプを生成する 21 ビ ッ ト カ ウ ン タが組み込まれています。 Cortex-M3 ク ロ ッ ク またはシ リ アルワ イヤ ビ ューア (SWV) 出力のビ ッ ト ク ロ ッ ク レー ト でカ ウ ン タ を駆動し ます。

11.6.1 ITM レジス タの概要と説明

Note

デバッ グ例外およびモニ タ制御レジス タの TRCENA は、 ITM をプロ グ ラ ムするかまたは使用する前に許可する必要があ り ます。 デバッ グ例外およびモニタ制御レジス タ p. 10- 10 を参照し て下さい。

ITM レジス タの一覧を、 テーブル 11- 19 に示し ます。

Note

どの ITM レジス タ も、 存在する、 または存在し ないもの と し て構成でき ます。 存在し ないもの と し て構成されているすべてのレジス タは、 0 と し て読み出されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 33

アクセス制限な し 公開

Page 278: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

テーブル 11- 19 ITM レジス タの概要

名前 タ イプ ア ド レス リセッ ト時の値 説明

ステ ィ ム ラ スポー ト0 ~ 31

読み出し / 書き込み

0xE0000000~

0xE000007C

- ITM ステ ィ ム ラ スポー ト 0 ~ 31 p. 11- 35 参照

ト レース イネーブル 読み出し / 書き込み

0xE0000E000x00000000 ITM ト レース イネーブル レジス タ

p. 11- 36 参照

ト レース特権 読み出し / 書き込み

0xE0000E400x00000000 ITM ト レース特権レジス タ p. 11- 37 参

ト レース制御レジスタ

読み出し / 書き込み

0xE0000E80 0x00000000 ITM ト レース制御レジス タ p. 11- 38 参照

統合書き込み 書き込み専用

0xE0000EF8 0x00000000 ITM 統合書き込みレジス タ p. 11- 40 参照

統合読み出し 読み出し専用

0xE0000EFC 0x00000000 ITM 統合読み出し レジス タ p. 11- 41 参照

統合モード制御 読み出し / 書き込み

0xE0000F00 0x00000000 ITM 統合モード制御レジス タ p. 11- 42参照

ロ ッ ク ア ク セス レジス タ

書き込み専用

0xE0000FB0 0x00000000 ITM ロ ッ ク ア ク セス レジス タ p. 11- 42参照

ロ ッ ク ステータ ス レジス タ

読み出し専用

0xE0000FB4 0x00000003 ITM ロ ッ ク ステータ ス レジス タ p. 11- 43 参照

PID4 読み出し専用

0xE0000FD0 0x00000004 値 0x04

PID5 読み出し専用

0xE0000FD4 0x00000000 値 0x00

PID6 読み出し専用

0xE0000FD8 0x00000000 値 0x00

PID7 読み出し専用

0xE0000FDC 0x00000000 値 0x00

PID0 読み出し専用

0xE0000FE0 0x00000001 値 0x01

11- 34 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 279: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

Note

ITM レジス タは特権モード では完全にア ク セス可能です。 ユーザモード ではすべてのレジス タは読み出せますが、 書き込みはステ ィ ム ラ ス レジス タおよび ト レース イ ネーブル レジス タに対し てのみ行えます。 また、 対応する トレース特権レジス タのビ ッ ト がセ ッ ト されている場合にのみ書き込みが可能です。 ITM レジス タへの無効なユーザモード書き込みは破棄されます。

ITM ステ ィ ムラスポー ト 0 ~ 31

32 個のステ ィ ム ラ スポー ト には、 それぞれ固有のア ド レ スがあ り ます。 トレース イ ネーブル レジス タの対応する ビ ッ ト がセ ッ ト されている場合は、 これらの位置のいずれかに書き込むと、 データが FIFO に書き込まれます。 ステ ィ ム ラ スポー ト のいずれかを読み出すと、 ビ ッ ト [0] に次の FIFO ステータスが返されます。

• 0 = フル

• 1 = フルではない

ポー リ ング される FIFO イ ン タ フ ェースでは不可分な読み出し - 変更 - 書き込みは提供されないため、 ポー リ ング される printf が、 割 り 込みまたは他のス レ ッ ド によ る ITM の使用と同時に使われている場合は、 Cortex-M3 の排他

PID1 読み出し専用

0xE0000FE4 0x000000B0 値 0xB0

PID2 読み出し専用

0xE0000FE8 0x0000002B 値 0x2B

PID3 読み出し専用

0xE0000FEC 0x00000000 値 0x00

CID0 読み出し専用

0xE0000FF0 0x0000000D 値 0x0D

CID1 読み出し専用

0xE0000FF4 0x000000E0 値 0xE0

CID2 読み出し専用

0xE0000FF8 0x00000005 値 0x05

CID3 読み出し専用

0xE0000FFC 0x000000B1 値 0xB1

テーブル 11- 19 ITM レジス タの概要 (続 く )

名前 タ イプ ア ド レス リセッ ト時の値 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 35

アクセス制限な し 公開

Page 280: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

モニ タ を使用する必要があ り ます。 以下のポー リ ング される コード は、 ITMへのポー リ ングによ る ア ク セスによ って、 ステ ィ ム ラ スが消失し ないこ と を保証し ます。

; r0 = Value to write to port

; r1 and r2 = Temporary scratch registers

MOV r1, #0xE0000000 ; r1 = Stimulus port base

Retry LDREX r2, [r1, #Port*4] ; Load FIFO full status

CMP r2, #0 ; Compare with full

ITT NE ; If (not full)

STREXNE r2, [r1, #Port*4]; Try sending value to port

CMPNE r2, #1 ; and check for failure

BEQ Retry ; If full or failed then retry

ITM ト レースイネーブル レジス タ

ト レース イ ネーブル レジス タは、 対応する ステ ィ ム ラ スポー ト に書き込みを行い、 ト レースデータ を生成する ために使用し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ク セス 読み出し / 書き込み

ア ド レ ス 0xE0000E00

リ セ ッ ト 時 0x00000000

ITM ト レース イ ネーブル レジス タのフ ィ ール ド の説明を、 テーブル 11- 20 に示し ます。

テーブル 11- 20 ITM ト レースイネーブル レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] STIMENA ITM ステ ィ ム ラ スポー ト での ト レース を許可する ビ ッ ト マス ク。ステ ィ ム ラ スポー ト ご と に 1 つのビ ッ ト が使用されます。

11- 36 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 281: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

Note

ITMENA がセ ッ ト されている場合は、 このレジス タへの特権書き込みが受け付け られます。 ITMENA がセ ッ ト され、 適切な特権マス ク が ク リ ア されている場合は、 こ のレジス タへのユーザ書き込みが受け付け られます。 ステ ィ ムラ スポー ト への特権ア ク セス を使用する と、 RTOS カーネルは、 必要に応じて計装ス ロ ッ ト すなわち帯域幅を保証する こ と ができ ます。

ITM ト レース特権レジス タ

ITM ト レース特権レジス タは、 オペレーテ ィ ングシステムによ って、 ユーザコード によ り ア ク セス可能なステ ィ ム ラ スポー ト の制御を行 う ために使用されます。

Note

特権モー ド でのみ、 このレジス タに書き込むこ と ができ ます。

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ク セス 読み出し / 書き込み

ア ド レ ス 0xE0000E40

リ セ ッ ト 時 0x00000000

ITM ト レース特権レジス タのビ ッ ト 割 り 当てを、 図 11- 13 に示し ます。

図 11- 13 ITM ト レース特権レジス タのビ ッ ト 割り当て

予約

31 4 3 0

PRIVMASK

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 37

アクセス制限な し 公開

Page 282: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

ITM ト レース特権レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 21 に示し ます。

ITM ト レース制御レジス タ

こ のレジス タは、 ITM 転送の構成 と制御に使用し ます。

Note

特権モード でのみ、 こ のレジス タに書き込むこ と ができ ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ク セス 読み出し / 書き込み

ア ド レ ス 0xE0000E80

リ セ ッ ト 時 0x00000000

ITM ト レース制御レジス タのビ ッ ト 割 り 当てを、 図 11- 14 に示し ます。

テーブル 11- 21 ITM ト レース特権レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:4] - 予約

[3:0] PRIVMASK ITM ステ ィ ム ラ スポー ト での ト レース を許可する ビ ッ ト マス ク

ビ ッ ト [0] = ステ ィ ム ラ スポー ト [7:0]

ビ ッ ト [1] = ステ ィ ム ラ スポー ト [15:8]

ビ ッ ト [2] = ステ ィ ム ラ スポー ト [23:16]

ビ ッ ト [3] = ステ ィ ム ラ スポー ト [31:24]

11- 38 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 283: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

図 11- 14 ITM ト レース制御レジス タのビ ッ ト 割り当て

ITM ト レース制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 22 に示し ます。

31 4 3 01279 8101516

予約

SYNCENATSENA

TSPrescale

DWTENA

24 23

予約 ATBID

5

SWOENA

BUSY

22

予約

テーブル 11- 22 ITM ト レース制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:24] - 0b00000000

[23] BUSY ITM イベン ト が存在し、 出力されている と きにセ ッ ト されます。

[22:16] ATBID CoreSight システム用の ATB ID

[15:10] - 0b000000

[9:8] TSPrescale タ イ ム ス タ ンプのプ リ スケーラ

0b00 = プ リ ス ケー リ ングな し

0b01 = 4 で除算

0b10 = 16 で除算

0b11 = 64 で除算

[7:5] - 予約

[4] SWOENA SWV 動作 -TPIUACTV および TPIUBAUD でのカ ウ ン ト を許可し ます。

[3] DWTENA DWT ステ ィ ム ラ ス を許可し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 39

アクセス制限な し 公開

Page 284: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

Note

DWT は ITM ブロ ッ ク内では許可されません。 ただし、 FIFO への DWT ステ ィ ム ラ スエン ト リ は DWTENA によ って制御されます。 DWT がタ イ ム ス タンプを要求する場合は、 TSSEN ビ ッ ト をセ ッ ト する必要があ り ます。

ITM 統合書き込みレジス タ

こ のレジス タ を使用し て、 ATVALIDM ビ ッ ト の動作を決定し ます。

ITM 統合書き込みレジス タのビ ッ ト 割 り 当てを、 図 11- 15 に示し ます。

図 11- 15 ITM 統合書き込みレジス タのビ ッ ト 割り当て

[2] SYNCENA TPIU の同期化パケ ッ ト を許可し ます。

[1] TSENA 差分タ イ ム ス タ ンプを許可し ます。 パケ ッ ト が、 0 ではないタ イ ム ス タ ンプ カ ウ ンタで FIFO に書き込まれ、 タ イ ム ス タ ンプカ ウ ン タがオーバフ ローし た場合に、 差分タ イ ム ス タ ンプが送信されます。

タ イ ム ス タ ンプは、 ア イ ド ル時間中で 2,000,000 サイ クル (固定サイ クル数) の後に送信されます。 これによ り 、 パケ ッ ト およびパケ ッ ト 間ギャ ッ プの時間参照が提供されます。

SWOENA (ビ ッ ト [4]) がセ ッ ト されている場合、 タ イ ム ス タ ンプは内部 ト レースバス上の動作によ ってのみ ト リ ガ されます。 この場合、 ITM がア イ ド ル時の通常のタイ ム ス タ ンプ出力はあ り ません。

[0] ITMENA ITM を許可し ます。 これはマス タ イ ネーブルであ り 、 ITM ステ ィ ム ラ スおよび トレース イネーブル レジス タに書き込まれる前にセ ッ ト する必要があ り ます。

テーブル 11- 22 ITM ト レース制御レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

31 01

予約

ATVALIDM

11- 40 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 285: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

ITM 統合書き込みレジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 23 に示し ます。

Note

モード が設定される と、 ビ ッ ト [0] によ り ATVALIDM が駆動されます。

ITM 統合読み出し レジス タ

このレジス タは、 ATREADYM の値を読み出すために使用し ます。

ITM 統合読み出し レジス タのビ ッ ト 割 り 当てを、 図 11- 16 に示し ます。

図 11- 16 ITM 統合読み出し レジス タのビ ッ ト 割り当て

ITM 統合読み出し レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 24 に示し ます。

テーブル 11- 23 ITM 統合書き込みレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:1] - 予約

[0] ATVALIDM 統合モード が設定されるのは、次の場合です。

0 = ATVALIDM ク リ ア

1 = ATVALIDM セ ッ ト

31 01

予約

ATREADYM

テーブル 11- 24 ITM 統合読み出し レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:1] - 予約

[0] ATREADYM ATREADYM の値

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 41

アクセス制限な し 公開

Page 286: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

ITM 統合モー ド制御レジス タ

こ のレジス タは、 制御レジス タへの書き込みア ク セス を許可する ために使用し ます。

ITM 統合モード制御レジス タのビ ッ ト 割 り 当てを、 図 11- 17 p. 11- 42 に示します。

図 11- 17 ITM 統合モー ド制御レジス タのビ ッ ト 割り当て

ITM 統合モード制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 25 に示し ます。

ITM ロ ッ ク ア クセス レジス タ

こ のレジス タは、 制御レジス タへの書き込みア ク セス を禁止する ために使用し ます。

ITM ロ ッ ク ア ク セス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 26 に示し ます。

31 1

予約

INTEGRATION

テーブル 11- 25 ITM 統合モー ド制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:1] - 予約

[0] INTEGRATION 0 = ATVALIDM 標準

1 = ATVALIDM を統合書き込みレジス タから駆動

テーブル 11- 26 ITM ロ ッ クアクセス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] ロ ッ ク ア クセス

0xC5ACCE55 の特権書き込みによ り 、 制御レジス タ 0xE00::0xFFC への書き込みア ク セスが

許可されます。 無効な書き込みによ り 、 書き込みア ク セスが取 り 消されます。

11- 42 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 287: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

ITM ロ ッ ク ステータ ス レジス タ

このレジス タは、 制御レジス タへの書き込みア ク セス を許可する ために使用し ます。

ITM ロ ッ ク ステータ ス レジス タのビ ッ ト 割 り 当てを、 図 11- 18 p. 11- 43 に示し ます。

図 11- 18 ITM ロ ッ クステータ ス レジス タのビ ッ ト 割り当て

ITM ロ ッ ク ステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 27に示し ます。

31 1

予約

存在

23

ByteAccアクセス

テーブル 11- 27 ITM ロ ッ クステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:3] - 予約

[2] ByteAcc 8 ビ ッ ト ロ ッ ク ア ク セスは実装でき ません。

[1] ア ク セス コ ンポーネン ト への書き込みア ク セスはブロ ッ ク されます。 すべての書き込みが無視され、 読み出しは許可されます。

[0] 存在 このコ ンポーネン ト のロ ッ ク機構が存在する こ と を示し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 43

アクセス制限な し 公開

Page 288: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

11.7 AHB-AP

AHB-AP は Cortex-M3 システムへのオプシ ョ ンのデバッ グア ク セス ポー トで、 NVIC を経由し て、 プロセ ッ サレジス タ を含むシステム内のすべての メ モリ およびレジス タにア ク セスでき ます。 システムア ク セスは、 プロセ ッ サステータ スから独立し ています。 SW-DP または SWJ-DP が AHB-AP にア ク セス し ます。

AHB-AP はバスマ ト リ ッ ク スのマス タです。 AHB-AP プロ グ ラ マモデルを使用し て ト ラ ンザ ク シ ョ ンが実行され、 このモデルによ り バスマ ト リ ッ ク スへの AHB-Lite ト ラ ンザ ク シ ョ ンが生成されます。 AHB-AP レジス タの概要と説明を参照し て下さい。

11.7.1 AHB-AP ト ラ ンザク シ ョ ン タ イプ

AHB-AP はバス上で連続する ト ラ ンザク シ ョ ンを実行し ないため、 すべてのト ラ ンザ ク シ ョ ンは ノ ンシーケンシ ャルです。 AHB-AP は、 アンア ラ イ ン ドおよびビ ッ ト バン ド の ト ラ ンザク シ ョ ンが実行でき ます。 これらの ト ラ ンザク シ ョ ンは、 バスマ ト リ ッ ク スによ り 処理されます。 AHB-AP ト ラ ンザ クシ ョ ンは MPU 管理の対象ではあ り ません。 AHB-AP ト ラ ンザ ク シ ョ ンは FPBをバイパスする ため、 FPB は AHB-AP ト ラ ンザ ク シ ョ ンを リ マ ッ プでき ません。

SWJ/SW-DP が起動する ト ラ ンザ ク シ ョ ンアボー ト は、 HABORT と呼ばれる、AHB-AP でサポー ト されるサイ ド バン ド信号を駆動し ます。 この信号はバスマ ト リ ッ ク スに接続されていて、 バスマ ト リ ッ ク スの状態を リ セ ッ ト するので、 AHB-AP が専用ペ リ フ ェ ラルバスにア ク セス し て、 コ アの読み出し / 中止 / リ セ ッ ト などの 後の手段のデバッ グを行えます。

AHB-AP ト ラ ンザク シ ョ ンは リ ト ルエンデ ィ アンです。

11.7.2 AHB-AP レジス タの概要と説明

AHB-AP レジス タの一覧を、 テーブル 11- 28 に示し ます。

Note

どの AHB-AP レジス タ も、 存在する、 または存在し ないもの と し て構成できます。 存在し ないもの と し て構成されているすべてのレジス タは、 0 と し て読み出されます。

11- 44 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 289: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

AHB-AP 制御およびステータ スワー ド レジス タ

このレジス タ を使用し て、 AHB イ ン タ フ ェース を経由する転送の構成 と制御を行います。

AHB-AP 制御およびステータ ス ワード レジス タのビ ッ ト 割 り 当てを、図 11- 19 に示し ます。

テーブル 11- 28 AHB-AP レジス タの概要

名前 タ イプ ア ド レス リセッ ト時の値 説明

制御およびステータス ワード

読み出し/ 書き込み

0x00 レジス タ参照

AHB-AP 制御およびステータ ス ワード レジス タ p. 11- 45 参照

転送ア ド レ ス 読み出し/ 書き込み

0x04 - AHB-AP 転送ア ド レ ス レジス タ p. 11- 47参照

データ読み出し / 書き込み

読み出し/ 書き込み

0x0C - AHB-AP データ読み出し / 書き込みレジス タ p. 11- 48 参照

バン クデータ 0 読み出し/ 書き込み

0x10 - AHB-AP バン クデータ レジス タ 0 ~ 3 p. 11- 48 参照

バン クデータ 1 読み出し/ 書き込み

0x14 - AHB-AP バン クデータ レジス タ 0 ~ 3 p. 11- 48 参照

バン クデータ 2 読み出し/ 書き込み

0x18 - AHB-AP バン クデータ レジス タ 0 ~ 3 p. 11- 48 参照

バン クデータ 3 読み出し/ 書き込み

0x1C - AHB-AP バン クデータ レジス タ 0 ~ 3 p. 11- 48 参照

デバッ グ ROM ア ドレ ス

読み出し専用

0xF8 0xE00FF003 AHB-AP デバッ グ ROM ア ド レ ス レジス タ p. 11- 49 参照

識別レジス タ読み出し専用

0xFC 0x24770011 AHB-AP ID レジス タ p. 11- 49 参照

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 45

アクセス制限な し 公開

Page 290: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

図 11- 19 AHB-AP 制御およびステータ スワー ド レジス タ

AHB-AP 制御およびステータ ス ワード レジス タのビ ッ ト 割 り 当ての説明を、テーブル 11- 29 に示し ます。

11 831 29 28 2630 12 7 6 5 4 3 2 0

MODE予約 SIZE

25 24

TransInProgDbgStatus

AddrInc

Hprot1

MasterType

予約

予約 予約

テーブル 11- 29 AHB-AP 制御およびステータ スワー ド レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:30] - 予約。 0b00 と し て読み出されます。

[29] MasterTypea &100e;

0 = コ ア

1 = デバッ グ

ト ラ ンザク シ ョ ンが終了し ていない場合は、 変更でき ません。 デバッ ガは 初にTransInProg をチェ ッ クする必要があ り ます。

リ セ ッ ト 時の値 = 0b1

FIXHMASTERTYPE 入力信号が 1 にセ ッ ト されている場合、 このレジス タは ト ラ ンザク シ ョ ンによ り 示されているマス タ値に影響し ません。 この値は、 常にデバッ ガと し てマーク されます。

[28:26] - 予約 0b000

[25] Hprot1 ユーザ / 特権制御 -HPROT[1]

リ セ ッ ト 時の値 = 0b1

[24] - 予約 0b1

[23:12] - 予約 0x000

[11:8] モード 演算モード のビ ッ ト

b0000 = 標準ダウ ン ロード / ア ッ プロード モード

b0001 ~ b1111 は予約されています。

リ セ ッ ト 時の値 = 0b0000

[7] TransINProg 転送が進行中です。 このフ ィ ール ド は、 APB マス タポー ト 上で転送が進行中であ るかど う かを示し ます。

11- 46 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 291: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

AHB-AP 転送ア ド レスレジス タ

このレジス タは、 現在の転送のア ド レ ス をプロ グ ラ ムする ために使用し ます。

[6] DbgStatus DAPEN ポー ト の状態を示し ます。 DbgStatus が LOW の場合、 AHB 転送は実行されていません。

1 = AHB 転送が許可されています。

0 = AHB 転送が許可されていません。

[5:4] AddrInc 読み出し / 書き込みデータ ア ク セス時の自動ア ド レ ス イ ン ク リ メ ン ト およびパッ クモード。 現在の ト ラ ンザク シ ョ ンがエラーな しで完了し た場合にのみイ ン ク リ メ ント されます。

自動ア ド レ ス イ ン ク リ メ ン ト およびパッ ク転送は、 バン クデータ レジス タ 0x10 ~

0x1C へのア ク セスの際は実行されません。 この場合、 これらのビ ッ ト の状態は無視

されます。

4KB ア ド レ ス境界内でイ ン ク リ メ ン ト と ラ ッ プア ラ ウ ン ド が行われます。 例えば、ワード が 0x1000 か ら 0x1FFC までイ ン ク リ メ ン ト されます。 開始値が 0x14A0 の場合、 カ

ウ ン タは 0x1FFC までイ ン ク リ メ ン ト されてから、 0x1000 にラ ッ プア ラ ウ ン ド し、 0x149Cまでイ ン ク リ メ ン ト が続行されます。

0b00 = 自動イ ン ク リ メ ン ト オフ

0b01 = イ ン ク リ メ ン ト シングル。 対応するバイ ト レーンからのシングル転送。

0b10 = イ ン ク リ メ ン ト パッ ク

0b11 = 予約。 転送な し。

ア ド レ ス イ ン ク リ メ ン ト のサイズは、 サイズフ ィールド [2:0] によ って定義されます。

リ セ ッ ト 時の値 : 0b00

[3] - 予約

[2:0] SIZE ア ク セス フ ィ ール ド のサイ ズ

b000 = 8 ビ ッ ト

b001 = 16 ビ ッ ト

b010 = 32 ビ ッ ト

b011 ~ 111 は予約されています。

リ セ ッ ト 時の値 : b000

a. ク リ ア されている場合、 こ のビ ッ ト によ り デバッ ガはデバッ グホール ト 制御およびステータ ス レジス タの

C_DEBUGEN ビ ッ ト をセ ッ ト する こ と を禁止される ため、 コ アをホール ト する こ と ができ ません。

テーブル 11- 29 AHB-AP 制御およびステータ スワー ド レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 47

アクセス制限な し 公開

Page 292: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

AHB-AP 転送ア ド レ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 30に示し ます。

AHB-AP データ読み出し / 書き込みレジス タ

こ のレジス タは、 現在の転送データの読み出し / 書き込みに使用し ます。

AHB-AP データ読み出し / 書き込みレジス タのビ ッ ト 割 り 当ての説明を、テーブル 11- 31 に示し ます。

AHB-AP バン クデータ レジス タ 0 ~ 3

これらのレジス タは、 AHB-AP 転送ア ド レ ス レジス タ (TAR) に再書き込みせずに、 AHB-AP ア ク セス を直接 AHB 転送へマ ッ プする ために使用し ます。

テーブル 11- 30 AHB-AP 転送ア ド レスレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] ADDRESS 現在の転送ア ド レ ス。

リ セ ッ ト 時の値はあ りません。

テーブル 11- 31 AHB-AP データ読み出し / 書き込みレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] DATA 書き込みモード : 現在の転送の書き込みデータ値

読み出しモード : 現在の転送の読み出しデータ値

リ セ ッ ト 時の値はあ り ません。

11- 48 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 293: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

AHB-AP バン クデータ レジス タのフ ィ ール ド の説明を、 テーブル 11- 32 に示し ます。

AHB-AP デバッ グ ROM ア ド レスレジス タ

このレジス タは、 デバッ グ イ ン タ フ ェースのベースア ド レ ス を指定し ます。読み出し専用です。

AHB-AP デバッ グ ROM ア ド レ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 33 に示し ます。

AHB-AP ID レジス タ

このレジス タは、 ア ク セスポー ト の外部イ ン タ フ ェース を定義し ます。

AHB-AP ID レジス タのビ ッ ト 割 り 当てを、 図 11- 20 に示し ます。

テーブル 11- 32 AHB-AP バン クデータ レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] DATA BD0 ~ BD3 によ り 、 4 つの位置境界内の TAR を再書き込みせずに、 DAP ア ク セス を経由し て直接 AHB 転送へマ ッ プする機構が提供されます。 例えば、 TAR からの BD0読み出し / 書き込み、 TAR + 4 からの BD1 読み出し / 書き込みがそれに相当し ます。

DAPADDR[7:4] == 0x0001 の場合は、 範囲 0x10 ~ 0x1C の AHB-AP レジス タにア ク セス し て

取得される HADDR[31:0] は次の とお り です。

読み出しモード : 外部ア ド レ ス TAR[31:4] + DAPADDR[3:0] から現在転送されている読み出しデータ値。 BD0 ~ BD3 への DAP ア ク セスでは、 自動ア ド レ ス イ ン ク リ メ ン トは実行されません。

書き込みモード : 外部ア ド レ ス TAR[31:4] + DAPADDR[3:0] へ現在転送されている書き込みデータ値。

バン ク転送は、 ワード転送についてのみサポー ト されます。 現在の と こ ろ、 ワード以外のバン ク転送サイ ズは無視され、 ワード ア ク セス と見な されます。

リ セ ッ ト 時の値はあ り ません。

テーブル 11- 33 AHB-AP デバッ グ ROM ア ド レスレジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:0] デバッ グ ROMア ド レ ス

デバッ グ イ ン タ フ ェースのベースア ド レ ス

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 11- 49

アクセス制限な し 公開

Page 294: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

システムデバッ グ

図 11- 20 AHB-AP ID レジス タ

AHB-AP ID レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 11- 34 に示し ます。

831 0728 2427 23 17 16 15

予約

4 3

APタイプAP

バリアントJEP-106 IDコードリビジョン

クラス

JEP-106継続コード

テーブル 11- 34 AHB-AP ID レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:28] リ ビジ ョ ン こ のフ ィ ール ド は AP 設計の 初の実装では 0 ですが、 設計の主要な改訂ご と に更新されます。

[27:24] JEP-106 継続コード ARM で設計された AP の場合は、 このフ ィールドの値は 0b0100、 0x4 です。

[23:17] JEP-106 ID コード ARM で設計された AP の場合は、 こ のフ ィ ール ド の値は 0b0111011、0x3B です。

[16] ク ラ ス 0b1: こ の AP は メ モ リ ア ク セス ポー ト です。

[15:8] - 予約。 SBZ

[7:4] AP バ リ アン ト 0x1: Cortex-M3 バ リ アン ト

[3:0] AP タ イプ 0x1: AMBA AHB バス

11- 50 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 295: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

12 章 バスイ ン タ フ ェース

本章では、 プロセ ッ サのバス イ ン タ フ ェースについて説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• バス イ ン タ フ ェースについて p. 12- 2

• AMBA 3 への準拠 p. 12- 3

• ICode バス イ ン タ フ ェース p. 12- 4

• DCode バス イ ン タ フ ェース p. 12- 6

• システム イ ン タ フ ェース p. 12- 7

• コード バスの統合 p. 12- 9

• 外部専用ペ リ フ ェ ラル イ ン タ フ ェース p. 12- 10

• ア ク セスのア ラ イ メ ン ト p. 12- 11

• 領域にまたがる アンア ラ イ ン ド ア ク セス p. 12- 12

• ビ ッ ト バン ド ア ク セス p. 12- 14

• ラ イ ト バッ フ ァ p. 12- 15

• メ モ リ 属性 p. 12- 16

• AHB のタ イ ミ ング特性 p. 12- 17

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 1

アクセス制限な し 公開

Page 296: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.1 バスイ ン タ フ ェースについて

プロセ ッ サには、 次の 4 つのバス イ ン タ フ ェースが組み込まれています。

• ICode メ モ リ イ ン タ フ ェース。 コー ド メ モ リ 空間 (0x0000000 ~ 0x1FFFFFFF)からの命令フ ェ ッチは、 この 32 ビ ッ ト ア ド バン ス ト ハイパフ ォーマンスバス ラ イ ト (AHB-Lite) バス経由で行われます。 詳細については、ICode バス イ ン タ フ ェース p. 12- 4 を参照し て く だ さい。

• DCode メ モ リ イ ン タ フ ェース。 コー ド メ モ リ 空間 (0x0000000 ~ 0x1FFFFFFF)へのデータおよびデバッ グア ク セスは、 こ の 32 ビ ッ ト AHB-Lite バス経由で行われます。 詳細については、 DCode バス イ ン タ フ ェース p. 12- 6を参照し て下さい。

• システム イ ン タ フ ェース。 システム空間 (0x20000000 ~ 0xDFFFFFFF、 0xE0100000~ 0xFFFFFFFF) への命令フ ェ ッ チ とデータおよびデバッ グア ク セスは、 こ

の 32 ビ ッ ト AHB-Lite バス経由で行われます。 詳細については、 システム イ ン タ フ ェース p. 12- 7 を参照し て下さい。

• 外部専用ペ リ フ ェ ラルバス (PPB)。 外部 PPB 空間 (0xE0040000 ~ 0xE00FFFFF)へのデータおよびデバッ グア ク セスは、 こ の 32 ビ ッ ト ア ド バン ス ト ペリ フ ェ ラルバス (APB)(AMBA v3.0) 経由で行われます。 ト レースポー ト イ ン タ フ ェースユニ ッ ト (TPIU) およびベンダ固有のペ リ フ ェ ラルは、こ のバスに接続されます。 詳細については、 外部専用ペ リ フ ェ ラル イン タ フ ェース p. 12- 10 を参照し て下さい。

Note

プロセ ッ サには、 ネス ト 型ベク タ割 り 込みコ ン ト ローラ (NVIC)、 データウ ォ ッ チポ イ ン ト および ト レース (DWT)、 計装 ト レース マ ク ロセル (ITM)、フ ラ ッ シ ュパッチおよびブレーク ポ イ ン ト (FPB)、 メ モ リ 保護ユニ ッ ト (MPU)へのア ク セス用の内部 PPB が組み込まれています。

12- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 297: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.2 AMBA 3 への準拠

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

• IDLE 転送 - マス タは、 転送タ イプを IDLE から NONSEQ へ変更する こと が許可されています。

• BUSY 転送、 固定長バース ト - マス タは、 転送タ イプを BUSY から SEQへ変更する こ と が許可されています。

• BUSY 転送、 不定長バース ト - マス タは、 BUSY から他の転送タ イプへ変更する こ と が許可されています。

プロセ ッ サは、 ウエイ ト された転送時にア ク セス タ イプを SEQ またはNONSEQ から IDLE へ変更する こ と があ る ため、 上の定義を満た し ていません。 こ の動作を行 う と、 以前のア ク セスがウ ェ イ ト 状態で完了待ちであ る ために、 予定されている転送がまだ発生し ていない場合、 その転送は取 り 消されます。 これによ って、 ウ ェ イ ト 状態のシステムでプロセ ッ サの割 り 込みレイ テンシを短 く し、 パフ ォーマン ス を向上する こ と ができ ます。

Note

必要な らば、 Cortex-M3 の外部に回路を実装し て完全な準拠を実現でき ますが、 その方法が必要にな るのは、 ペ リ フ ェ ラルがウエイ ト された転送中で も制御情報の維持を必要とする場合のみです。 こ のロ ジ ッ ク を実装する方法の1 つは、 HREADY が LOW の間、 HTRANS などの制御情報をマス クする こ とです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 3

アクセス制限な し 公開

Page 298: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.3 ICode バスイ ン タ フ ェース

ICode イ ン タ フ ェースは、 32 ビ ッ ト AHB-Lite バス イ ン タ フ ェースです。コード メ モ リ 空間 (0x00000000 ~ 0x1FFFFFFF) からの命令フ ェ ッチ とベク タ フ ェ ッ

チは、 こ のバス を経由し て行われます。

CM3Core 命令フ ェ ッ チバスのみが、 ICode イ ン タ フ ェースにア ク セス し、適なコード フ ェ ッチ パフ ォーマン ス を実現でき ます。 すべてのフ ェ ッチはワード 幅です。 ワード あた り のフ ェ ッチされる命令数は、 実行されているコード と、 メ モ リ 内でのコード のア ラ イ メ ン ト によ って異な り ます。 こ の関係の説明を、 テーブル 12- 1 に示し ます。

Note

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

テーブル 12- 1 命令フ ェ ッ チ

32 ビ ッ ト 命令フ ェ ッ チ [31:16]

32 ビ ッ ト 命令フ ェ ッ チ [15:0]

説明

Thumb16[15:0] Thumb16[15:0] すべての Thumb 命令は メ モ リ 上でハーフ ワード ア ラ イ ン ド なので、 2つの 16 ビ ッ ト Thumb 命令が同時にフ ェ ッチされます。 シーケンシ ャルなコード の場合、 命令フ ェ ッチは 2 サイ クルご と に実行されます。割 り 込みや分岐があ る と、 命令フ ェ ッチは連続し たサイ クルで実行でき ます。

Thumb32[31:16] Thumb32[15:0] 32 ビ ッ ト Thumb 命令が メ モ リ 上でワード ア ラ イ ン ド の場合、 完全なThumb32 命令がサイ クルご と にフ ェ ッチされます。

Thumb32[15:0] Thumb32[31:16] 32 ビ ッ ト Thumb 命令がハーフ ワード ア ラ イ ン ド の場合、 初の 32ビ ッ ト フ ェ ッチでは 32 ビ ッ ト Thumb 命令の 初のハーフ ワード のみが返されます。 2 番目のハーフ ワード をフ ェ ッチするには、 2 回目のフ ェ ッチを実行する必要があ り ます。 このシナ リ オでは、 実行されている命令によ ってはウ ェ イ ト サイ クル (CM3Core が命令を実行でき ないサイ クル) が発生し ます。 このレ イ テンシの追加サイ クルは、 ハーフ ワード ア ラ イ ン ド の 32 ビ ッ ト Thumb 命令が 初にフ ェ ッチされると きにのみ発生し ます。 CM3Core には 3 エン ト リ のフ ェ ッチバッ フ ァが搭載されているため、 ハーフ ワード ア ラ イ ン ド の 32 ビ ッ ト Thumb命令に含まれる上位のハーフ ワード はフ ェ ッチバッ フ ァに保持され、次のシーケンシャルな 32 ビ ッ ト Thumb 命令に使用されます。

12- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 299: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

すべての ICode 命令フ ェ ッ チはキ ャ ッ シ ュ可でバッ フ ァ不可 と し てマーク され (HPROTI[3:2] = 2'b10)、 また割 り 当て可能で共有不可 と し てマーク されます (MEMATTRI = 2'b01)。 これらの属性は固定です。 MPU が搭載されている場合、 ICode バスについて MPU の領域属性は無視されます。

HPROTI[0] は、 フ ェ ッチの対象を示し ます。

• 0 - 命令フ ェ ッチ

• 1 - ベク タ フ ェ ッ チ

すべての ICode ト ラ ンザク シ ョ ンは、 ノ ンシーケンシ ャルに実行されます。

12.3.1 分岐状態信号

分岐状態信号 BRCHSTAT は、 エンベデッ ド ト レース マ ク ロセル (ETM) イ ンタ フ ェースに出力され、 パイプラ イ ンに分岐が含まれているかど う かを示します。 例えば、 プ リ フ ェ ッチユニ ッ ト はこの信号を利用し て、 分岐がフ ェ ッチされよ う と し ている と きのプ リ フ ェ ッチを防止でき ます。 分岐状態信号の詳細については、 15 章 Embedded Trace Macrocell Interface を参照し て下さ い。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 5

アクセス制限な し 公開

Page 300: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.4 DCode バスイ ン タ フ ェース

DCode イ ン タ フ ェースは、 32 ビ ッ ト AHB-Lite バスです。 コード メ モ リ 空間(0x00000000 ~ 0x1FFFFFFF) へのデータおよびデバッ グア ク セスは、 こ の 32 ビ ッ ト

AHB-Lite バス を経由し て行われます。 コ アデータ ア ク セスは、 デバッ グア クセス よ り も高い優先度で行われます。 つま り 、 こ のバスに対し て コ アア ク セス とデバッ グア ク セスが同時に行われる と、 コ アア ク セスが完了する までデバッ グア ク セスは待た されます。

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

アンア ラ イ ン ド ア ク セスの説明については、 ア ク セスのア ラ イ メ ン ト p. 12- 11 を参照し て下さい。

Note

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

12.4.1 排他アクセス

DCode バスは排他ア ク セス をサポー ト し ています。 これは、 EXREQD およびEXRESPD と い う 2 つのサイ ド バン ド信号を使用し て行われます。 詳細については、 DCode イ ン タ フ ェース p. A- 9 を参照し て下さい。

セマフ ォおよびローカル排他モニ タの詳細については、 『ARMv7M ARM アーキテ クチャ リ フ ァ レ ン スマニ ュ アル』 の 「ARM アーキテ クチャの メ モ リ モデル」 の章を参照し て下さい。

12.4.2 メ モ リ属性

すべての DCode メ モ リ ア ク セスはキ ャ ッ シ ュ可でバッ フ ァ不可 と し てマークされ (HPROTD[3:2] = 2'b10)、 また割 り 当てで共有不可と し てマーク されます(MEMATTRD = 2'b01)。

これらの属性は固定です。 MPU が搭載されている場合、 DCode バスについてMPU の領域属性は無視されます。

12- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 301: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.5 システムイ ン タ フ ェ ース

システム メ モ リ 空間 (0x20000000 ~ 0xDFFFFFFF、 0xE0100000 ~ 0xFFFFFFFF) への命令お

よびベク タ フ ェ ッ チ と、 データおよびデバッ グア ク セスは、 こ のバス を経由し て行われます。

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

• データ ア ク セス

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

• デバッ グ

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

12.5.1 アンアラ イ ン ド アクセス

アンア ラ イ ン ド のデータおよびデバッ グア ク セスは、 そのサイ ズ と ア ラ イ メン ト によ って 2 つまたは 3 つのア ラ イ ン ド ア ク セスに変換されます。 このため、 アンア ラ イ ン ド ア ク セスが完了する まで、 以後のア ク セスはすべてスト ールし ます。 アンア ラ イ ン ド ア ク セスの詳細については、 ア ク セスのア ライ メ ン ト p. 12- 11 を参照し て下さい。

12.5.2 ビ ッ ト バン ド ア クセス

ビ ッ ト バン ド エイ リ アス領域へのア ク セスは、 ビ ッ ト バン ド 領域へのア ク セスに変換されます。 ビ ッ ト バン ド 領域への書き込みには 2 サイ クルが必要です。 これらの書き込みは読み出し - 変更 - 書き込み操作に変換される ため、ビ ッ ト バン ド書き込みア ク セスが完了する まで、 以後のア ク セスはすべてスト ールし ます。 ビ ッ ト バン ド ア ク セスの詳細については、 ビ ッ ト バン ド ア クセス p. 12- 14 を参照し て下さい。

12.5.3 フ ラ ッ シュパッ チのリ マ ッ プ

システム メ モ リ 空間へ リ マ ッ プされた コード メ モ リ 空間へのア ク セスでは、リ マ ッ プのために 1 サイ クルのペナルテ ィ が発生し ます。 こ のため、 フ ラ ッシュパッチア ク セスが完了する まで、 以後のア ク セスはすべてス ト ールし ます。 フ ラ ッ シ ュパッチの説明については、 FPB p. 11- 6 を参照し て下さい。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 7

アクセス制限な し 公開

Page 302: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.5.4 排他アクセス

システムバスは排他ア ク セス をサポー ト し ています。 これは、 EXREQS および EXRESPS と い う 2 つのサイ ド バン ド信号を使用し て行われます。 詳細については、 システムバス イ ン タ フ ェース p. A- 10 を参照し て下さい。

セマフ ォおよびローカル排他モニ タの詳細については、 『ARMv7M ARM アーキテ クチャ リ フ ァ レ ン スマニ ュ アル』 の 「ARM アーキテ クチャの メ モ リ モデル」 の章を参照し て下さい。

12.5.5 メ モ リ属性

プロセ ッ サは、 MEMATTRS と い う サイ ド バン ド バス を使用し て、 システムバスの メ モ リ 属性を出力し ます。 詳細については、 メ モ リ 属性 p. 12- 16 を参照し て下さい。

12.5.6 パイプ ラ イ ン化された命令フ ェ ッ チ

システムバスで ク リ ーンな タ イ ミ ング イ ン タ フ ェース を提供する ため、 このバスへの命令およびベク タ フ ェ ッ チ要求はレジス タ出力されます。 その結果、システムバスからの命令フ ェ ッチには 2 サイ クルを要し、 1 サイ クルのレ イテンシが追加されます。 これは、 システムバスからは連続し た命令フ ェ ッ チが不可能であ る こ と も意味し ます。

Note

ICode バスへの命令フ ェ ッチ要求はレジス タ出力されません。 パフ ォーマンスが重要なコード は、 ICode イ ン タ フ ェースから実行する必要があ り ます。

12- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 303: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.6 コー ドバスの統合

一部のシステムでは、 プロセ ッ サコ アの ICode バス と DCode バス を組み合わせて単一の統合コード バスにする こ と が必要な場合があ り ます。 高速動作でこれをサポー ト する ため、 プロセ ッ サには DNOTITRANS 入力があ り 、HTRANSD がア ク テ ィ ブの と き、 HTRANSI ラ イ ンを抑制し ます。DNOTITRANS がアサー ト されている状態で、 対応する単一サイ クル ア ド レ スフ ェーズで HTRANSI および HTRANSD が同時にア ク テ ィ ブにな る と、HTRANSD のみがアサー ト されます。 ICode ト ラ ンザ ク シ ョ ンはプロセ ッ サ内でウ ェ イ ト 状態にな り ます。 言い換えれば、 外部 ICode バスは強制的にア イド ル状態にな り ます。 し たがって、 2 つの HTRANS 信号が同時にア ク テ ィ ブと な る こ と は絶対にないため、 バスマルチプレ クサを非常に簡単なデバイ スと し て設計でき ます。

Note

DNOTITRANS は静的な入力で、 この動作を保証する ために HIGH へ接続する必要があ り ます。

外部の ICode/DCode バスマルチプレ クサは、 図 12- 1 に示すよ う にCortex-M3 システムに統合でき ます。

図 12- 1 ICode/DCode マルチプレ クサ

Cortex-M3

ICode

DCode

AHBI

AHBD

AHBC メモリ

(AHBスレーブ)

1

DNOTITRANS

コードバス マルチプレクサ

HTRANSC

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 9

アクセス制限な し 公開

Page 304: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.7 外部専用ペ リ フ ェ ラル イ ン タ フ ェース

外部専用ペ リ フ ェ ラル イ ン タ フ ェースは APB (AMBA v3.0) バスです。 外部ペリ フ ェ ラル メ モ リ 空間 (0xE0040000 ~ 0xE00FFFFF) へのデータおよびデバッ グア ク

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

PADDR31 は、 このバスのサイ ド バン ド信号 と し て駆動されます。 こ の信号がHIGH の と き、 AHB-AP デバッ グがマス タ を要求し ている こ と を示し ます。こ の信号が LOW の と きは、 コ アがマス タ を要求し ている こ と を示し ます。

こ のバスへのアンア ラ イ ン ド ア ク セスはアーキテ クチャの関係で予測不能であ り 、 サポー ト されていません。 プロセ ッ サはコ アからの元の HADDR[1:0]要求を出力し、 要求を複数のア ラ イ ン ド ア ク セスに変換する動作は行いません。

12- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 305: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.8 アクセスのアラ イ メ ン ト

プロセ ッ サは、 ARMv6 モデルを使用し たアンア ラ イ ン ド データ ア ク セス をサポー ト し ています。 DCode およびシステムバス イ ン タ フ ェースには、 アンアラ イ ン ド ア ク セス をア ラ イ ン ド ア ク セスに変換する ロ ジ ッ ク が組み込まれています。

アンア ラ イ ン ド データ ア ク セスの説明を、 テーブル 12- 2 に示し ます。 この表は、 初の列にアンア ラ イ ン ド ア ク セスの種類を示し、 残 り の列ではそのア ク セスがどのよ う に変換されるかを示し ています。 アンア ラ イ ン ド ア ク セスは、 そのサイ ズ と ア ラ イ メ ン ト によ って、 2 つまたは 3 つのア ラ イ ン ド アク セスに変換されます。

Note

ビ ッ ト バン ド エイ リ アス領域にまたがる アンア ラ イ ン ド ア ク セスはビ ッ ト バン ド要求 と は見な されず、 そのア ク セスはビ ッ ト バン ド領域に リ マ ッ プされません。 その代わ り に、 そのア ク セスはビ ッ ト バン ド エイ リ アス領域へのハーフ ワード またはバイ ト ア ク セス と見な されます。

テーブル 12- 2 バスマ ッパーのアンアラ イ ン ド アクセス

アンアラ イン ド アクセス アライン ド アクセス

サイ クル 1 サイクル 2 サイ クル 3

サイズ ADDR[1:0] HSIZE HADDR[1:0] HSIZE HADDR[1:0] HSIZE HADDR[1:0]

ハーフワード

00 ハーフワード

00 - - - -

ハーフワード

01 バイ ト 01 バイ ト 10 - -

ハーフワード

10 ハーフワード

10 - - - -

ハーフワード

11 バイ ト 11 バイ ト {(Addr+4)[31:2],2b00} - -

ワード 00 ワード 00 - - - -

ワード 01 バイ ト 01 ハーフワード

10 バイ ト {(Addr+4)[31:2],2b00}

ワード 10 ハーフワード

10 ハーフワード

{(Addr+4)[31:2],2b00} - -

ワード 11 バイ ト 11 ハーフワード

{(Addr+4)[31:2],2b00} バイ ト {(Addr+4)[31:2],2b10}

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 11

アクセス制限な し 公開

Page 306: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

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

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

Note

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

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

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

• DCode ア ク セスは領域内でラ ッ プア ラ ウ ン ド し ます。 例えば、 コード空間の 後のバイ ト (0x1FFFFFFF) に対し て行われたアンア ラ イ ン ド のハーフ

ワー ド ア ク セスは、 DCode イ ン タ フ ェースによ って、 0x1FFFFFFF へのバイ

ト ア ク セス と、 0x00000000 へのバイ ト ア ク セスに変換されます。

• PPB 空間にまたがる システムア ク セスは、 システム空間内でラ ッ プア ラウ ン ド し ません。例えば、 システム空間の 後のバイ ト (0xDFFFFFFF) に対

し て行われたアンア ラ イ ン ド のハーフ ワード ア ク セスは、 システム イ ンタ フ ェースによ って、 0xDFFFFFFF へのバイ ト ア ク セス と、 0xE0000000 へ

のバイ ト ア ク セスに変換されます。 0xE0000000 は、 システムバス上で有効

なア ド レ スではあ り ません。

• コー ド空間にまたがる システムア ク セスは、 システム空間内でラ ッ プアラ ウ ン ド し ません。例えば、 システム空間の 後のバイ ト (0xFFFFFFFF) に

対し て行われたアンア ラ イ ン ド のハーフ ワード ア ク セスは、 システム イン タ フ ェースによ って、 0xFFFFFFFF へのバイ ト ア ク セス と、 0x00000000 への

バイ ト ア ク セスに変換されます。 0x00000000 は、 システムバス上で有効な

ア ド レ スではあ り ません。

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

ビ ッ ト バン ド エイ リ アス領域にまたがる アンア ラ イ ン ド ア ク セス も、 アーキテ クチャの関係で予測不能です。 プロセ ッ サはビ ッ ト バン ド エイ リ アスのアド レ スへのア ク セス を実行し ますが、 これはビ ッ ト バン ド操作と はな り ませ

12- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 307: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

ん。 例えば、 0x21FFFFFF へのアンア ラ イ ン ド のハーフ ワード ア ク セスは、

0x21FFFFFF へのバイ ト ア ク セス と、 それに続 く 0x22000000 (ビ ッ ト バン ド エイ リ

アスの 初のバイ ト ) へのバイ ト ア ク セス と し て実行されます。

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

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 13

アクセス制限な し 公開

Page 308: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.10 ビ ッ ト バン ド アクセス

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

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

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

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

ビ ッ ト バン ド の詳細については、 ビ ッ ト バン ド p. 4- 5 を参照し て下さい。

Note

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

12- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 309: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.11 ラ イ ト バッ フ ァ

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

DMB および DSB 命令は、 完了する前にラ イ ト バッ フ ァ の ド レ イ ンを待ちます。 DMB/DSB がラ イ ト バッ フ ァ の ド レ イ ンを待っている間に割 り 込みが発生し た場合、 DMB/DSB よ り 後のオペコード は割 り 込みの完了時に実行されます。 これは、 割 り 込み処理が一種の メ モ リ バ リ ア操作と な る ためです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 15

アクセス制限な し 公開

Page 310: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.12 メ モ リ属性

プロセ ッ サは、 MEMATTR と い う サイ ド バン ド バスの追加によ り 、 システムバスの メ モ リ 属性を出力し ます。

MEMATTR[0] と HPROT[3:2] と の関係を、 テーブル 12- 3 に示し ます。

テーブル 12- 3 メ モ リ属性

MEMATTR[0] HPROT[3] HPROT[2] 説明

0 0 0 ス ト ロ ング リ オーダ

0 0 1 デバイ ス

0 1 0 L1 キ ャ ッ シュ可、 L2 キ ャ ッ シュ不可

1 0 0 無効

1 0 1 無効

1 1 0 キ ャ ッ シュ ラ イ ト スルー (WT)、読み出し割 り 当て

0 1 1 キ ャ ッ シュ ラ イ ト バッ ク (WB)、読み出し / 書き込み割 り 当て

1 1 1 キ ャ ッ シュ ラ イ ト バッ ク (WB)、読み出し割 り 当て

12- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 311: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12.13 AHB のタ イ ミ ング特性

プロセ ッ サのマ ク ロセル内には、 メ モ リ が含まれていません。 高いシステムパフ ォーマン ス を達成し、 実装者が メ モ リ アーキテ クチャの完全な柔軟性を得られる よ う にする ため、 プロセ ッ サからの メ モ リ 要求はレジス タ出力されず、 AHB イ ン タ フ ェースへ直接送られます。

このため、 Cortex-M3 AHB 出力はサイ クルの約 50% まで有効で、 AHB 入力はク ロ ッ ク期間の約 50% のセ ッ ト ア ッ プ要件があ り ます。

各イ ン タ フ ェースのタ イ ミ ング特性の説明を、 テーブル 12- 4 に示し ます。

テーブル 12- 4 イ ン タ フ ェースのタ イ ミ ング特性

イ ン タフ ェース

タ イ ミ ング特性

ICODE 命令ア ド レ ス と制御信号は ALU から生成される ため、 ク ロ ッ ク サイ クルの約 50% まで有効です。 読み出しデータ (HRDATAI) および読み出し応答 (HRESPI) はプロセ ッサへ直接送られ、 クロ ッ ク期間の約 50% のセ ッ ト ア ッ プを持ちます。

DCODE データ とデバッ グの要求はどち ら も、 サイ クルの比較的早い時間に出力され、 これらはレジスタ と、 その後にあ る少量の組み合わせロ ジ ッ ク によ り 生成されます。 このバス上の要求は、ICODE バス上のものよ り も余裕が多 く なっています。 書き込みデータ (HWDATAD) は ALU から直接出力され、 ク ロ ッ ク サイ クルの約 50% まで有効です。 読み出しデータ (HRDATAD) および読み出し応答 (HRESPD) はプロセ ッサへ直接送られ、 ク ロ ッ ク期間の約 50% のセ ッ ト ア ッ プを持ちます。

SYSTEM このバスからの命令フ ェ ッチはパイプラ イ ン化された命令フ ェ ッチ p. 12- 8 で説明されている よう にパイプラ イ ン化され、 このバスへのデータおよびデバッ グ要求はサイ クルの早い時点で出力されるため、 このバス上の要求は ICODE バスに出力される ものよ り も余裕が多 く なっています。 書き込みデータ (HWDATAS) は ALU から直接出力され、 ク ロ ッ クサイ クルの約 50% まで有効です。 読み出しデータ (HRDATAS) および読み出し応答 (HRESPS) はプロセ ッ サへ直接送られ、ク ロ ッ ク期間の約 50% のセ ッ ト ア ッ プを持ちます。

PPB このバスへのデータおよびデバッ グ要求はサイ クルの早い時点で出力されるため、 このバスへの要求は ICODE バスへ出力される ものよ り も余裕が多 く なっています。 書き込みデータ(PWDATA) は ALU から直接出力され、 ク ロ ッ クサイ クルの約 50% まで有効です。 読み出しデータ (PRDATA) はプロセ ッサへ直接送られ、 ク ロ ッ ク期間の約 50% のセ ッ ト ア ッ プを持ちます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 12- 17

アクセス制限な し 公開

Page 312: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

バスイ ン タ フ ェース

12- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 313: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

13 章 デバッ グポー ト

本章では、 プロセ ッ サのデバッ グポー ト (DP) について説明し ます。 このセ クシ ョ ンは以下の項目から構成されています。

• DP について p. 13- 2

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 13- 1

アクセス制限な し 公開

Page 314: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

デバッ グポー ト

13.1 DP について

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

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

• SW-DP。 AHB-AP ポー ト への 2 ピ ン (ク ロ ッ ク + データ) イ ン タ フ ェース を提供し ます。

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

Note

SWJ-DP は、 JTAG デバッ グア ク セスに使用されていない と きは、 JTAG-TDOと JTAG-TDI のピンの共有ができ る よ う に設計されています。 Cortex-M3 TPIU と と もに使用する と きには、 シ リ アルワ イ ヤ出力 (SWO) の接続に別のオプシ ョ ンがあ り ます。 詳細については、 シ リ アルワ イ ヤ出力接続 p. 17- 24を参照し て下さい。

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

Note

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

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

AHB-AP の詳細については、 AHB-AP p. 11- 44 を参照し て下さい。

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

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

13- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 315: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

本章では、 エンベデッ ド ト レース マ ク ロセル (ETM) のイ ン タ フ ェースについて説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• ETM について p. 14- 2

• データ ト レース p. 14- 7

• ETM リ ソース p. 14- 8

• ト レース出力 p. 14- 11

• ETM のアーキテ クチャ p. 14- 12

• ETM のプロ グ ラ マモデル p. 14- 16

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 1

アクセス制限な し 公開

Page 316: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.1 ETM について

ETM はオプシ ョ ンのデバッ グ コ ンポーネン ト で、 プロ グ ラ ム実行の再構築を可能にし ます。 ETM は高速で低消費電力のデバッ グツール と し て設計されてお り 、 命令 ト レースのみをサポー ト し ます。 これによ って、 占有面積を 小にし、 ゲー ト の数も削減し ています。

14.1.1 ETM のブロ ッ ク図

ETM のブロ ッ ク図、 および ETM と ト レースポー ト イ ン タ フ ェースユニ ッ ト(TPIU) と のイ ン タ フ ェース を、 図 14- 1 p. 14- 3 に示し ます。

14- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 317: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 14- 1 ETM のブロ ッ ク図

14.1.2 ETM の入力と出力

このセ ク シ ョ ンでは、 ETM の入力 と出力について説明し ます。

• ETM コ ア イ ン タ フ ェース。 テーブル 14- 1 p. 14- 4 を参照し て下さい。

• その他の構成入力。 テーブル 14- 2 p. 14- 5 を参照し て下さい。

• ト レースポー ト 信号。 テーブル 14- 2 p. 14- 5 を参照し て下さい。

• その他の信号。 テーブル 14- 4 p. 14- 6 を参照し て下さい。

• ク ロ ッ ク と リ セ ッ ト 。 テーブル 14- 5 p. 14- 6 を参照し て下さい。

CM3Trigger

CM3EtmResCntrl

CM3EtmTrigEvt

CM3EtmTrcEn

CM3Trace

CM3Etm制御

CM3EtmFifoPeek

CM3EtmFifo

CM3EtmAPBIf

CM3EtmTraceOut

CPU I/F

APB I/F

CM3ETM

TPIUフォーマッタ

TPIUFIFO

TPIU出力

ステージ

TRACEDATA[3:0]

TRACECLK

SWVATBからのITM

TRACECLKIN

CM3 TPIU

トリガ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 3

アクセス制限な し 公開

Page 318: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

• ア ド バン ス ト ペ リ フ ェ ラルバス (APB) イ ン タ フ ェース信号。 テーブル 14- 6 p. 14- 6 を参照し て下さ い。

テーブル 14- 1 ETM コアイ ン タ フ ェースの入力と出力

名前 説明 認証する信号 方向

ETMIA[31:1] コ アの命令のア ド レ スバス ETMIVALID 入力

ETMIVALID 現在の命令データは命令を示し ています。 - 入力

ETMDVALID 現在の命令データは命令を示し ています。 - 入力

ETMICCFAIL 命令で条件コード が失敗し ま し た。 ETMIVALID 入力

ETMIBRANCH 命令は分岐ターゲ ッ ト です。 ETMIVALID 入力

ETMIINDBR 命令は間接分岐ターゲ ッ ト です。 ETMIBRANCH 入力

ETMFLUSH 次の命令の前に PC が変更されます。 - 入力

ETMISTALL コ アによ って信号を出された 後の命令がまだ実行を開始されていないこ と を示し ます。

- 入力

ETMFINDBR 間接操作によ って PC が変更されま し た。 ETMFLUSH 入力

ETMINTSTAT[2:0] 例外の開始と終了 - 入力

ETMINTNUM[8:0] 例外のタ イプ ETMINTSTAT 入力

ETMCANCEL 例外はキ ャ ンセル例外です。 ETMINTSTAT 入力

COREHALT コ アがホール ト し ています。 - 入力

DWTMATCH[3:0] データ ウ ォ ッチポイ ン ト および ト レース (DWT) ト リ ガユニ ッ ト が、 ア ド レ ス、 データ、 制御バスに現在提示されている条件に一致し た こ と を示し ます。

- 入力

DWTINOTD[3:0] DWT ト リ ガユニ ッ ト が PC の値 (セ ッ ト ) またはデータ ア ド レ ス (ク リ ア) の比較を実行し ている こ と を示し ます。

- 入力

14- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 319: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

Note

ETM への EXTIN 入力の 1 つを コ アからの LOCKUP 出力で駆動し、 ロ ッ クア ッ プ条件が発生し た と きに ト リ ガし た り 、 ト レースキ ャプチャ を停止し たり でき ます。 EXTIN 入力は ETM 内で同期されていません。 これらの入力がETM ク ロ ッ ク で駆動されない場合、 ETM の外部で同期する必要があ り ます。

テーブル 14- 2 その他のコ ン フ ィ ギュ レーシ ョ ン入力

名前 説明 方向 クロ ッ ク ド メ イン

NIDEN 非侵蝕性デバッ グが有効です。 入力 FCLK

EXTIN[1:0] 外部入力 リ ソース 入力 FCLK

MAXEXTIN[1:0] サポー ト されている 大の外部入力

入力 FCLK

CGBYPASS アーキテ クチャ上のク ロ ッ クゲー ト セルをバイパス し ます。

入力 FCLK

FIFOFULLEN ETMFIFOFULL を有効にし ます。 入力 FCLK

テーブル 14- 3 ト レースポー ト 信号

名前 説明 方向 クロ ッ ク ド メ イン

ATDATAM[7:0] 8 ビ ッ ト の ト レースデータ 出力 FCLK

ATVALIDM ATDATA が有効 出力 FCLK

ATIDM[6:0] ト レース ソース ID 出力 FCLK

ATREADYM ト レースポー ト が ATDATA のデータ を受け付け可能な こと を示し ます。

入力 FCLK

AFREADYM ETM FIFO が空であ る こ と を示し ます。 出力 FCLK

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 5

アクセス制限な し 公開

Page 320: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

テーブル 14- 4 その他の信号

名前 説明 方向 クロ ッ ク ド メ イン

FIFOPEEK[9:0] 検証専用 出力 FCLK

FIFOFULL ETM FIFO がフルであ る こ と を示し ます。

出力 FCLK

ETMPWRUP ETM の電力がオンであ る こ と を示し ます。

出力 FCLK

ETMTRIGOUT ト リ ガが発生し た こ と を示すステータ ス信号

出力 HCLK

ETMDBGRQ コ アへのデバッ グ要求 出力 FCLK

ETMEN ETM ト レースポー ト が許可されています。

出力 FCLK

テーブル 14- 5 ク ロ ッ ク と リ セ ッ ト

名前 説明 方向

FCLK ETM ロ ジ ッ ク のク ロ ッ ク で、 Cortex-M3 と同じ FCLK に接続する必要があ ります。

入力

PORRESETn HCLK ド メ イ ンのパワーオン リ セ ッ ト 。 コ アの HCLK リ セ ッ ト (SYSRESETn)と同じにする こ と はでき ません。

入力

テーブル 14- 6 APB イ ン タ フ ェース信号

名前 説明 方向 クロ ッ ク ド メ イン

PSEL APB デバイ スの選択 入力 FCLK

PENABLE APB 制御信号 入力 FCLK

PADDR[11:2] APB ア ド レ スバス 入力 FCLK

PWRITE APB 転送の方向 (!Read/Write) 入力 FCLK

PWDATA[31:0] APB 書き込みデータバス 入力 FCLK

PRDATA[31:0] APB 読み出しデータバス 出力 FCLK

14- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 321: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.2 データ ト レース

Cortex-M3 システムは、 データ ウ ォ ッ チポ イ ン ト および ト レース (DWT)、 および計装 ト レースマ ク ロセル (ITM) コ ンポーネン ト を使用し て、 低帯域幅のデータ ト レース を実行でき ます。 少ないピン数で命令 ト レース をサポー ト する ため、 データ ト レースは ETM に組み込まれていません。 これによ って、 トリ ガを行 う リ ソースが簡素化され、 ETM のゲー ト 数が大幅に削減されています。

ETM がプロセ ッ サに実装される と き、 ITM および ETM と い う 2 つの ト レース ソースはどち ら も TPIU にフ ィ ード され、 TPIU で結合されて、 通常は トレースポー ト 経由で出力されます。 DWT は、 FIFO オーバフ ローの問題の可能性があ り ますが、 集中し たデータ ト レース、 またはグ ローバルなデータ トレースのどち ら も提供でき ます。 TPIU は、 単一コ アの Cortex-M3 システムの要件に 適化されています。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 7

アクセス制限な し 公開

Page 322: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.3 ETM リ ソース

ETM はデータ ト レース情報を生成し ないため、 帯域幅が低 く 、 ト リ ガ機能を比較的簡素化でき ます。 これは、 ETM に次の機能が含まれていないこ と を意味し ます。

• 内部コ ンパレータ

• カ ウ ン タ

• シーケンサ

Cortex-M3 リ ソースの一覧を、 テーブル 14- 7 に示し ます。

テーブル 14- 7 Cortex-M3 リ ソース

機能 Cortex-M3 ETM に存在するか

アーキテ クチャのバージ ョ ン ETMv3.4

ア ド レ ス コ ンパレータ ペア 0

データ コ ンパレータ 0

コ ンテキス ト ID コ ンパレータ 0

MMD 0

カ ウ ン タ 0

シーケンサ いいえ

開始 / 停止ブロ ッ ク はい

エンベデッ ド ICE コ ンパレータ 4

外部入力 2

外部出力 0

拡張外部入力 0

拡張外部入力セレ ク タ 0

FIFOFULL はい

FIFOFULL のレベル設定 はい

分岐ブロード キ ャ ス ト はい

ASIC 制御レジス タ いいえ

データ抑制 いいえ

14- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 323: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.3.1 定期的な同期

ETM は、 ト レース 1024 バイ ト ご と の固定周期で同期パケ ッ ト を生成し ます。

14.3.2 データおよび命令ア ド レス比較のリ ソース

DWT は、 データバス上で 4 つのア ド レ ス コ ンパレータ を提供し、 デバッ グ機能を実現し ています。 DWT ユニ ッ ト 内では、 一致によ り ト リ ガ される機能を指定でき、 これらの機能の 1 つは ETM 一致入力の生成です。 これらの入力は、 エンベデッ ド イ ンサーキ ッ ト エ ミ ュ レータ (ICE) コ ンパレータ入力 と して ETM へ送られます。

ソ フ ト ウ ェアから レジス タへのア クセス

はい

読み出し可能なレジス タ はい

FIFO サイ ズ 24 バイ ト

小ポー ト サイ ズ 8 ビ ッ ト

大ポー ト サイ ズ 8 ビ ッ ト

通常のポー ト サイ ズ -

通常のハーフ レー ト ク ロ ッ ク /1:1 はい - 非同期

Demux ポー ト モード -

Demux ハーフ レー ト ク ロ ッ ク /1:2 いいえ

Mux ポー ト モード /2:1 いいえ

1:4 ポー ト モード いいえ

動的ポー ト モード (ス ト ールを含む) いいえ - 非同期ポー ト モード でサポー ト

CPRT データ いいえ

PC を 初にロード いいえ

フ ェ ッチ比較 いいえ

データ ロード の ト レース いいえ

テーブル 14- 7 Cortex-M3 リ ソース (続 く )

機能 Cortex-M3 ETM に存在するか

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 9

アクセス制限な し 公開

Page 324: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

1 つの DWT リ ソースが ETM イベン ト を ト リ ガ し、 同時に同じ イベン ト から直接計装 ト レース を生成する こ と もでき ます。

また、 4 つの DWT コ ンパレータ を個別に構成し、 実行 PC と の比較によ りPC 比較 リ ソースへの ETM によ る ア ク セス を許可でき ます。 これらの入力は、エンベデッ ド ICE コ ンパレータ入力と し て ETM へ送られます。

Note

DWT コ ンパレータ を PC コ ンパレータ と し て使用する と、 使用可能なデータア ド レ ス比較の数が減少し ます。

DWT ユニ ッ ト の詳細については、 DWT p. 11- 13 を参照し て下さい。

外部入力

2 つの外部入力 (ETMEXTIN[1:0]) によ り 、 追加のオンチ ッ プ IP で ETM 用の トリ ガ / イ ネーブル信号を生成でき ます。

開始 / 停止ブロ ッ ク

開始 / 停止ブロ ッ クは、 ETM へのエンベデッ ド ICE 入力を使用し て、 開始 / 停止動作を制御し ます。 DWT はこれらの入力を制御し ます。

14.3.3 FIFO 機能

FIFO のサイ ズは 24 バイ ト です。

FIFO が特定の深さ に達し た と き コ アを ス ト ールでき る よ う に、 FIFOFULL 出力が用意されています。 一般的なアプ リ ケーシ ョ ンでは、 ほ と んどの場合コアのス ト ールは許容でき ないものですが、 この機構によ って 100% の ト レースを行い、 ス ト ールを行わない実行で得られた部分的な ト レース と の比較が可能にな り ます。

14- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 325: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.4 ト レース出力

ETM 出力データは 8 ビ ッ ト ずつ、 コ アの ク ロ ッ ク速度で出力されます。 トレースポー ト のサイ ズやモード の変更はサポー ト されていません。 TPIU は トレース出力をチ ッ プから出力し ます。 こ の出力は、 AMBA ト レースバス(ATB) プロ ト コル互換です。

AFVALID 機能はサポー ト されていないため、 ト レースポー ト は ETM FIFO からデータ を フ ラ ッ シ ュでき ません。 ただし、 8 ビ ッ ト ATB ポー ト によ りFIFO は常に ド レ イ ン される ため、 AFVALID は不要になっています。

Cortex-M3 システムには、 ETM および ITM と と もに使用される ために 適化された TPIU が搭載されています。 こ の TPIU は、 追加の ト レース ソース をサポー ト し ていません。 ただし、 TPIU を よ り 複雑なバージ ョ ンに置き換え、 さらに ト レース設備を追加すれば、 ト レース ソース を追加でき ます。

Note

ト レース ID レジス タ と出力は、 複数の ト レース ソース を使用する システム用に提供されています。

TPIU は、 フ ォーマ ッ ト された ト レース出力プロ ト コルを使用し ます。 こ のため、 TRACECTL 信号用の追加ピンは必要あ り ません。

ETM からの ト レース出力は、 コ ア ク ロ ッ ク に同期し ています。 ト レースポート イ ン タ フ ェースには非同期 FIFO が組み込まれています。 ETM をマルチコア システムに統合する場合は、 非同期 ATB ブ リ ッ ジを使用する こ と が必要な可能性があ り ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 11

アクセス制限な し 公開

Page 326: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.5 ETM のアーキテ クチャ

ETM は命令専用 ETM で、 ARM ETM アーキテ クチャ v3.4 を実装し ています。こ のアーキテ クチャは、 ARM ETM アーキテ クチャ仕様に基づいた ものです。完全な詳細については、 『ARM エンベデッ ド ト レース マ ク ロセル アーキテ クチャ仕様書』 を参照し て下さい。

すべての 32 ビ ッ ト Thumb 命令は単一の命令と し て ト レース されます。 IT 命令以後の命令は、 通常の条件付き命令と し て ト レース されます。 デコ ンプレ ッ サは、 IT 命令を参照する必要はあ り ません。

14.5.1 再始動可能な命令

ARMv7-M アーキテ クチャは、 例外によ って中断された LSM 命令を再始動でき ます。 ETM は、 例外によ って中断された命令を ト レースする ために、 命令がキ ャ ンセルされた こ と を通知し ます。 例外からの復帰時に、 ETM は同じ命令を、 再始動または再開が行われたかど う かにかかわらず再度 ト レース し ます。

14.5.2 例外からの復帰

ETM は、 例外からの復帰を、 ト レース ス ト リ ームに明示的に示し ます。 これは、 例外からの復帰機能がデータ依存の方法でエン コード され、 単純な分岐と は異な る動作を行 う ためです。

パケ ッ ト のエン コード によ り 、 例外からの復帰が示されます。 図 14- 2 は、 この動作を示し た ものです。

図 14- 2 例外からの復帰を示すパケ ッ ト のエン コー ド

新しい、 よ り 優先度の高い例外がス タ ッ ク ポ ッ プを横取 り し た場合、 例外ハン ド ラへの分岐は、 後の命令がキ ャ ンセルされた こ と を示す必要があ り ます。 これは、 例外からの復帰パケ ッ ト はキ ャ ンセルされたが、 例外からの復帰命令はキ ャ ンセルされなかった こ と を示し ます。 例外からの復帰パケ ッ トが存在し ている場合、 前の命令が完了し た こ と を意味し ます。

01234567

0 0 01 1 1 1 1

14- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 327: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.5.3 例外の ト レース

例外を ト レースする ため、 分岐パケ ッ ト にはオプシ ョ ンのフ ィ ール ド が追加されています。 この追加フ ィ ール ド は、 例外に関する情報を示し ています。通常の分岐パケ ッ ト は 1 ~ 5 バイ ト の ト レースデータにエン コード されますが、 例外への分岐は次のよ う にエン コード されます。

• 2 ~ 5 バイ ト のア ド レ ス

• 1 ~ 2 バイ ト の例外

例外のマ ッ ピングは、 も多い例外が 1 バイ ト でエン コード される よ う に設計されています。 ETM の例外 ト レースのマ ッ ピングを、 テーブル 14- 8 に示し ます。

テーブル 14- 8 例外 ト レースのマ ッ ピング

バイ ト 数 例外 ETMINTNUM ト レースされる値

1 バイ ト の例外 な し - 0

1 バイ ト の例外 IRQ1 17 1

1 バイ ト の例外 IRQ2 18 2

1 バイ ト の例外 IRQ3 19 3

1 バイ ト の例外 IRQ4 20 4

1 バイ ト の例外 IRQ5 21 5

1 バイ ト の例外 IRQ6 22 6

1 バイ ト の例外 IRQ7 23 7

1 バイ ト の例外 IRQ0 16 8

1 バイ ト の例外 用法フ ォール ト

6 9

1 バイ ト の例外 NMI 2 10

1 バイ ト の例外 SVC 11 11

1 バイ ト の例外 DebugMon 12 12

1 バイ ト の例外 MemManage 4 13

1 バイ ト の例外 PendSV 14 14

1 バイ ト の例外 SysTick 15 15

2 バイ ト の例外 予約 8 16

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 13

アクセス制限な し 公開

Page 328: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

例外パケ ッ ト を持つ完全な分岐を、 図 14- 3 に示し ます。

2 バイ ト の例外 リ セ ッ ト 時の状態

0 17

2 バイ ト の例外 予約 10 18

2 バイ ト の例外 HardFault 3 19

2 バイ ト の例外 予約 9 20

2 バイ ト の例外 BusFault 5 21

2 バイ ト の例外 予約 7 22

2 バイ ト の例外 予約 13 23

2 バイ ト の例外 IRQ8 24 24

2 バイ ト の例外 IRQ9 25 25

2 バイ ト の例外 IRQ10 26 26

. . . .

. . . .

. . . .

2 バイ ト の例外 IRQ239 255 255

テーブル 14- 8 例外 ト レースのマ ッ ピング (続 く )

バイ ト 数 例外 ETMINTNUM ト レースされる値

14- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 329: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 14- 3 分岐パケ ッ ト の例外のエン コー ド

後のア ド レ スバイ ト のビ ッ ト [7:6] は、 ア ド レ ス フ ィ ール ド の終わ り を示すため 0b01 にセ ッ ト されます。 このフ ィ ール ド の後に例外のデータが置かれます。 例外のバイ ト 0 のビ ッ ト [7] は、 その後に 2 番目の例外バイ ト が続 く 場合は 1 にセ ッ ト されます。 例外が存在せず、 ア ド レ ス ビ ッ ト [6:1] のみが変更された場合、 単一のバイ ト が使用されます。 例外が存在する場合、 ア ド レ スを示すために 低 2 バイ ト が使用されます。

例外ハン ド ラ開始の直前に ト レース を停止する と、 例外を開始する まで ETMは許可状態に維持されます。 これによ って、 ETM は分岐ア ド レ ス、 例外のタイプ、 再開情報を ト レースでき ます。

アドレスのバイト0

アドレスのバイト1(オプション)

アドレスのバイト2(オプション)

アドレスのバイト3(オプション)

アドレスのバイト4(オプション)

例外情報の

バイト0

例外情報の

バイト1(オプション)

01234567

C

C

C

C

C

C

C

1

NS

E/Addr[13]

E/Addr[20]

E/Addr[27]

E

0

T2EE

SBZ

Canc

0 1

Addr[6:1]

Addr[12:7]

Addr[19:14]

Addr[26:21]

Addr[31:28]

Excp[3:0]

Excp[8:4]

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 15

アクセス制限な し 公開

Page 330: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.6 ETM のプログラマモデル

ETM のプロ グ ラ マモデルの詳細については、 『ARM エンベデッ ド ト レース マク ロセル アーキテ クチャ仕様書』 を参照し て下さい。 こ のセ ク シ ョ ンでは、ETM プロ グ ラ マモデルの実装固有の機能について定義し ます。

14.6.1 ア ドバンス ト ペ リ フ ェ ラルバス イ ン タ フ ェ ース

ETM には、 APB ス レーブイ ン タ フ ェースが組み込まれてお り 、 ETM レジスタの読み出し と書き込みを実行でき ます。 このイ ン タ フ ェースは、 プロセ ッサの ク ロ ッ ク に同期し ています。 コ アおよび外部デバッ グ イ ン タ フ ェースは、シ リ アルワ イヤ デバッ グポー ト /JTAG デバッ グポー ト (SW-DP/JTAG-DP) を経由し て このイ ン タ フ ェースにア ク セスでき ます。

14.6.2 ETM レジス タの一覧

ETM レジス タの一覧を、 テーブル 14- 9 に示し ます。 完全な詳細については、『ARM エンベデッ ド ト レース マ ク ロセル アーキテ クチャ仕様書』 を参照し て下さい。

テーブル 14- 9 ETM レジス タ

名前 タ イプ ア ド レス 存在 説明

ETM 制御 読み出し / 書き込み

0xE0041000 はい 説明については、 p. 14- 20 を参照し て下さい。

コ ンフ ィ ギ ュ レーシ ョ ン コード 読み出し専用

0xE0041004 はい 説明については、 p. 14- 21 を参照し て下さい。

ト リ ガイベン ト 読み出し / 書き込み

0xE0041008 はい ト リ ガを制御する イベン ト を定義し ます。

[16:14] ブール関数

[13:7] リ ソース A

[6:0] リ ソース B

ETM イベン ト リ ソース p. 14- 23を参照し て下さい。

ASIC 制御 - 0xE004100C いいえ -

14- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 331: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ETM ステータ ス 読み出し / 書き込み

0xE0041010 はい ト レースおよび ト リ ガロ ジ ッ クの現在のステータ スに関する情報を提供し ます。

[3] - ト リ ガフ ラ グ

[2] - 開始 / 停止 リ ソースの状態

[1] - プロ グ ラ ミ ングビ ッ ト の状態

[0] - ト レース されていないオーバフ ロー

システム構成 読み出し専用

0xE0041014 はい 説明については、 p. 14- 21 を参照し て下さい。

ト レース開始 / 停止 リ ソースの制御

- 0xE0041018 いいえ -

TraceEnable イベン ト 書き込み専用

0xE0041020 はい TraceEnable 許可イベン ト を記述し ます。

[16:14] ブール関数

[13:7] リ ソース A

[6:0] リ ソース B

ETM イベン ト リ ソース p. 14- 23を参照し て下さい。

TraceEnable 制御 1 書き込み専用

0xE0041024 はい 説明については、 p. 14- 22 を参照し て下さい。

TraceEnable 制御 2 書き込み専用

0xE004101C いいえ -

FIFOFULL 領域 書き込み専用

0xE0041028 いいえ 許可されている場合、 FIFOFULLロ ジ ッ クは常にア ク テ ィ ブです。

FIFOFULL レベル 読み出し / 書き込み

0xE004102C はい FIFO に残っているバイ ト 数がこの値未満になる と、 FIFOFULL 信号がアサー ト されてコ アがスト ールし ます。 ETM 制御レジスタのビ ッ ト [7] は、 FIFOFULL 出力を許可する ために使用されます。

ViewData - 0xE0041030 ~

0xE004103Cいいえ -

テーブル 14- 9 ETM レジス タ (続 く )

名前 タ イプ ア ド レス 存在 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 17

アクセス制限な し 公開

Page 332: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ア ド レ ス コ ンパレータ - 0xE0041040 ~

0xE004113Cいいえ -

カ ウ ン タ - 0xE0041140 ~

0xE004157Cいいえ -

シーケンサ - 0xE0041180 ~

0xE0041194、0xE0041198

いいえ -

外部出力 - 0xE00411A0~0xE00411AC

いいえ -

CID コ ンパレータ - 0xE00411B0~0xE00411BC

いいえ -

実装固有 - 0xE00411C0~0xE00411DC

いいえ すべて RAZ。 書き込みは無視されます。

同期周波数 読み出し専用

0xE00411E0 はい 0x00000400 と し て読み出されます。

ETM ID 読み出し専用

0xE00411E4 はい 説明については、 p. 14- 22 を参照し て下さい。

コ ンフ ィ ギ ュ レーシ ョ ン コード拡張機能

読み出し専用

0xE00411E8 はい 説明については、 p. 14- 22 を参照し て下さい。

拡張外部入力セレ ク タ - 0xE00411EC いいえ 拡張外部入力は実装されていません。

TraceEnable 開始 / 中止エンベデッ ド ICE

読み出し / 書き込み

0xE00411F0 はい ビ ッ ト [19:16] は、 停止 リ ソースと し て使用する よ う に DWT コ ンパレータ を構成し ます。 ビ ッ ト[3:0] は、 開始 リ ソース と し て使用する よ う に DWT コ ンパレータ入力を構成し ます。

エンベデッ ド ICE 動作制御 - 0xE00411F4 いいえ エンベデッ ド ICE (DWT コ ンパレータ ) 入力はデフ ォル ト の動作を使用し ます。

テーブル 14- 9 ETM レジス タ (続 く )

名前 タ イプ ア ド レス 存在 説明

14- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 333: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

CoreSight ト レース ID 読み出し / 書き込み

0xE0041200 はい 通常のもの と し て実装されます。

値 0x00 および 0x70 ~ 0x7F は予約済

みで、 ETM がア ク テ ィ ブな と きは使用でき ません。

OS 保存 / 復元 - 0xE0041304 ~

0xE0041308いいえ OS 保存 / 復元は実装されていま

せん。 RAZ、 書き込みは無視されます。

電力オフ ステータ ス レジス タ 読み出し専用

0xE0041314 はい 説明については、 p. 14- 23 を参照し て下さい。

ITMISCIN 読み出し専用

0xE0041EE0 はい [1:0] を EXTIN[1:0] に、 [4] をCOREHALT にセ ッ ト し ます。

ITTRIGOUT 書き込み専用

0xE0041EE8 はい [0] を TRIGGER にセ ッ ト し ます。

ITATBCTR2 読み出し専用

0xE0041EF0 はい [0] を ATREADY にセ ッ ト し ます。

ITATBCTR0 書き込み専用

0xE0041EF8 はい [0] を ATVALID にセ ッ ト し ます。

統合モード制御 読み出し / 書き込み

0xE0041F00 はい 通常のもの と し て実装されます。

ク レーム タ グ 読み出し / 書き込み

0xE0041FA0~0xE0041FA4

はい 4 ビ ッ ト のク レーム タ グを実装します。

ロ ッ ク ア ク セス 書き込み専用

0xE0041FB0~0xE0041FB4

はい 通常のもの と し て実装されます。

ロ ッ ク ステータ ス 読み出し専用

0xE0041Fb4 はい 通常のもの と し て実装されます。

認証ステータ ス 読み出し専用

0xE0041FB8 はい 通常のもの と し て実装されます。

デバイ ス タ イプ 読み出し専用

0xE0040FCC はい リ セ ッ ト 時の値 : 0x13

ペ リ フ ェ ラル ID 4 読み出し専用

0xE0041FD0 はい 0x04

テーブル 14- 9 ETM レジス タ (続 く )

名前 タ イプ ア ド レス 存在 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 19

アクセス制限な し 公開

Page 334: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.6.3 ETM レジス タの説明

以下のセ ク シ ョ ンでは、 ETM レジス タのい く つかについて追加説明を行います。 詳細については、 『ARM エンベデッ ド ト レース マ ク ロセル アーキテ クチャ仕様書』 を参照し て下さい。

ETM 制御レジス タ

ETM 制御レジス タは、 ETM の一般的な動作、 例えば ト レース を許可するかどう かなど を制御し ます。

リ セ ッ ト 時の値 : 0x00002411

ペ リ フ ェ ラル ID 5 読み出し専用

0xE0041FD4 はい 0x00

ペ リ フ ェ ラル ID 6 読み出し専用

0xE0041FD8 はい 0x00

ペ リ フ ェ ラル ID 7 読み出し専用

0xE0041FDC はい 0x00

ペ リ フ ェ ラル ID 0 読み出し専用

0xE0041FE0 はい 0x24

ペ リ フ ェ ラル ID 1 読み出し専用

0xE0041FE4 はい 0xB9

ペ リ フ ェ ラル ID 2 読み出し専用

0xE0041FE8 はい 0x2B

ペ リ フ ェ ラル ID 3 読み出し専用

0xE0041FEC はい 0x00

コ ンポーネン ト ID 0 読み出し専用

0xE0041FF0 はい 0x0D

コ ンポーネン ト ID 1 読み出し専用

0xE0041FF4 はい 0x90

コ ンポーネン ト ID 2 読み出し専用

0xE0041FF8 はい 0x05

コ ンポーネン ト ID 3 読み出し専用

0xE0041FFC はい 0xB1

テーブル 14- 9 ETM レジス タ (続 く )

名前 タ イプ ア ド レス 存在 説明

14- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 335: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

実装されている ビ ッ ト は次の とお り です。

• [21] ポー ト サイ ズ [3]

• [17:16] ポー ト モード [1:0]

• [13] ポー ト モード [2]

• [11] ETMEN

• [10] ETM プロ グ ラ ミ ング

• [9] デバッ グ要求制御

• [8] 分岐出力

• [7] プロセ ッ サのス ト ール

• [6:4] ポー ト サイ ズ [2:0]

• [0] ETM 電力オフ

他のビ ッ ト はすべて RAZ で、 書き込みは無視されます。

コ ン フ ィ ギュ レーシ ョ ン コー ド レジス タ

ETM コ ン フ ィ ギ ュ レーシ ョ ン コード レジス タによ って、 デバッ ガは ETM の実装固有の構成を読み出すこ と が出来ます。

リ セ ッ ト 時の値 : 0x8C800000

ビ ッ ト [22:20] は 0 に固定されてお り 、 ASIC からは供給されません。 ビ ッ ト[18:17] は MAXEXTIN[1:0] 入力バスによ って供給され、 MAXEXTIN と 2(EXTIN の数) のどち らか低い値と し て読み出されます。 これは、 次の内容を示し ています。

• ソ フ ト ウ ェ アア ク セスがサポー ト されています。

• ト レース開始 / 停止ブロ ッ ク が存在し ます。

• CID コ ンパレータは存在し ません。

• FIFOFULL ロ ジ ッ ク が存在し ます。

• 外部出力は存在し ません。

• 0 ~ 2 の外部入力 (MAXEXTIN によ って制御される) が存在し ます。

• シーケンサは存在し ません。

• カ ウ ン タは存在し ません。

• MMD は存在し ません。

• データ コ ンパレータは存在し ません。

• ア ド レ ス コ ンパレータ ペアは存在し ません。

システム構成レジス タ

システム構成レジス タは、 ASIC でサポー ト されている ETM 機能を示し ています。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 21

アクセス制限な し 公開

Page 336: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

リ セ ッ ト 時の値 : 0x00020D09

ビ ッ ト [11:10] は通常の もの と し て実装されます。 ビ ッ ト [9] および [2:0] は4'b0001 に固定されています。

TraceEnable 制御 1 レジス タ

TraceEnable 制御 1 レジス タは、 TraceEnable を構成する レジス タの 1 つです。

ビ ッ ト [25] ( ト レース開始 / 停止イネーブル ) のみが、 次のよ う に実装されています。

• 0 - ト レースは、 ト レース開始 / 停止ロ ジ ッ ク の影響を受けません。

• 1 - ト レースは、 ト レース開始 / 停止ロ ジ ッ ク について構成されているト レースのオン / オフア ド レ スによ って制御されます。

ト レース開始 / 停止 リ ソース ( リ ソース 0x5F) は、 こ のビ ッ ト の値に影響さ

れません。

ETM ID レジス タ

ETM ID レジス タは ETM のアーキテ クチャバ リ アン ト を保持し、 ETM のプログ ラ マモデルを正確に定義し ています。

リ セ ッ ト 時の値 : 0x4114F242

こ の値は次の内容を示し ています。

• ARM 実装者

• 特殊分岐のエン コード (各バイ ト のビ ッ ト [7:6] に影響し ます)。

• 32 ビ ッ ト Thumb 命令がサポー ト されています。

• コ アフ ァ ミ リ は別の場所に示されています。

• ETMv3.4

• 実装 リ ビジ ョ ン 2

コ ン フ ィ ギュ レーシ ョ ン コー ド拡張レジス タ

コ ンフ ィ ギュ レーシ ョ ン コード拡張レジス タは、 ETM コ ン フ ィ ギ ュ レーシ ョン コード の追加ビ ッ ト を保持し ています。 これらのビ ッ ト は、 拡張外部入力を記述し ています。

リ セ ッ ト 時の値 : 0x00018800

こ のレジス タは次の内容を示し ています。

• 開始 / 停止ブロ ッ クは、 エンベデッ ド イ ンサーキ ッ ト エ ミ ュ レータ(ICE) 入力を使用し ます。

14- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 337: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

• 4 つのエンベデッ ド ICE 入力が存在し ます。

• データ比較はサポー ト されていません。

• すべてのレジス タが読み出し可能です。

• 拡張外部入力はサポー ト されていません。

電力オフ ステータ スレジス タ

電力オフ ステータ ス レジス タ (PDSR) は、 ETM の電力がオンになっているかど う かを示し ます。

リ セ ッ ト 時の値 : 0x00000001

ビ ッ ト [0] のみが実装されています。 これは、 ETM デバッ グ電力ド メ イ ンの電力がオンになっているかど う かを示し ます。

• 0 = ETM デバッ グ電力ド メ イ ンの電力がオンになっていません。

• 1 = ETM デバッ グ電力ド メ イ ンの電力がオンになっています。

Note

ETM の電力がオンになっていない場合、 ETM レジス タにはア ク セスでき ません。

14.6.4 ETM イベン ト リ ソース

ト レースの許可イベン ト と ト リ ガイベン ト は、 同じ機構を使用し て構成されます。 各イベン ト について 2 つの リ ソース と と もに、 それら 2 つの リ ソースのブール関数も定義されます。 テーブル 14- 10 およびテーブル 14- 11 p. 14- 24 は、 こ の動作を示し た ものです。

テーブル 14- 10 イベン ト のブール関数エン コー ド

エン コー ド 機能

0b000 A

b001 NOT(A)

b010 A AND B

b011 NOT(A) AND B

b100 NOT(A) AND NOT (B)

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 23

アクセス制限な し 公開

Page 338: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14.6.5 ク ロス ト リ ガ イ ン タ フ ェース

Cortex-M3 システムで推奨される ク ロ ス ト リ ガ イ ン タ フ ェース (CTI) 接続の一覧をテーブル 14- 12 と テーブル 14- 13 に示し ます。

b101 A OR B

b110 NOT (A) OR B

b111 NOT (A) OR NOT (B)

テーブル 14- 11 リ ソース ID のエン コー ド

リ ソース タ イプ、ビ ッ ト [6:4]

イ ンデッ クス範囲、ビ ッ ト [3:0]

リ ソース タ イプの説明

b010 0-3 DWT コ ンパレータ入力 (0 ~ 3)

b101 15 ト レース開始 / 停止 リ ソース

b110 0-1 ExtIn (0 ~ 1)

b110 15 固定 (常に TRUE)

テーブル 14- 10 イベン ト のブール関数エン コー ド (続 く )

エン コー ド 機能

テーブル 14- 12 入力接続

ト リ ガビ ッ ト

ソース信号 ソースデバイス 注

[7] ETMTRIGOUT ETM ETM が存在する場合に推奨されます。

[6] ETMTRIGGER[2] DWT 推奨

[5] ETMTRIGGER[1] DWT 推奨

[4] ETMTRIGGER[0] DWT 推奨

[3] ACQCOMP ETB FULL 参照

14- 24 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 339: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ETM の ETMDBGREQ から CTI への接続はあ り ません。 必要な場合、 この信号を外部デバッ グ要求入力、 および CTI からの ト リ ガビ ッ ト [0] と OR する必要があ り ます。

[2] FULL ETB ETM が存在する場合に推奨されます。 単一の ETB が複数のコ アで共有される場合、 コ アの う ち 1 つの CTIにのみ接続し ます。

[1] ユーザ定義 - -

[0] DBGACK コ ア 必須

テーブル 14- 13 ト リ ガ出力接続

ト リ ガビ ッ ト

ソース信号 ソースデバイス 注

[7] ユーザ定義 - -

[6] ユーザ定義 - -

[5] ETMEXTIN[1] ETM ETM が存在する場合は必須です。

[4] ETMEXTIN[0] ETM ETM が存在する場合は必須です。

[3] INTISR[y] NVIC FULL 参照

[2] INTISR[x] NVIC 必須任意の割 り 込みが使用でき ます。

[1] ユーザ定義 - -

[0] EDBGRQ コ ア 必須

テーブル 14- 12 入力接続 (続 く )

ト リ ガビ ッ ト

ソース信号 ソースデバイス 注

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 14- 25

アクセス制限な し 公開

Page 340: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

14- 26 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 341: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

15 章 エンベデ ッ ド ト レース マク ロセルのイ ン タ フ ェース

本章では、 エンベデッ ド ト レース マ ク ロセル (ETM) のイ ン タ フ ェースについて説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• ETM イ ン タ フ ェースについて p. 15- 2

• CPU の ETM イ ン タ フ ェースポー ト の説明 p. 15- 3

• 分岐ステータ ス イ ン タ フ ェース p. 15- 6

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 15- 1

アクセス制限な し 公開

Page 342: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデ ッ ド ト レース マク ロセルの イ ン タ フ ェース

15.1 ETM イ ン タ フ ェースについて

ETM イ ン タ フ ェースは、 ETM からプロセ ッ サへの簡単な接続に使用でき ます。 このイ ン タ フ ェースには、 命令 ト レースから ETM へのチャネルが用意されています。

15- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 343: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデッ ド ト レース マク ロセルの イ ン タ フ ェース

15.2 CPU の ETM イ ン タ フ ェースポー ト の説明

プロセ ッ サには、 ETM が命令実行シーケン ス を判定する ためのポー ト があ ります。 これらのポー ト の説明を、 テーブル 15- 1 に示し ます。

テーブル 15- 1 ETM イ ン タ フ ェースポー ト

ポー ト 名 方向 認証する信号 説明

ETMIVALID 出力 認証な し 実行中の命令は有効です。 オペコード が実行の初のサイ クルに入った こ と を示し ます。

ETMIBRANCH 出力 ETMIVALID オペコード は分岐ターゲ ッ ト です。 現在のコードがプロ グ ラ ムカ ウ ン タ (PC) 変更イベン ト (分岐、割 り 込み処理) のデステ ィ ネーシ ョ ンであ る こ とを示し ます。

ETMIINDBR 出力 ETMIBRANCH オペコード の分岐ターゲ ッ ト は間接です。 現在のオペコード が分岐ターゲ ッ ト で、 PC のコ ンテンツから そのデステ ィ ネーシ ョ ンを推定でき ないこ とを示し ます。 例えば、 LSU、 レジス タ移動、 割 り込み処理などが挙げられます。

ETMDVALID 出力 認証な し データ ウ ォ ッチポイ ン ト および ト レース (DWT) から見た現在のデータ ア ド レ スが、 このサイ クルについて有効であ る こ と を示し ます。

ETMICCFAIL 出力 ETMIVALID オペコード の条件コード の失敗または成功を示します。 現在のオペコード が条件付き実行チェ ッ クで失敗し たか成功し たかを示し ます。 オペコードは、 条件付き分岐の場合、 または IT ブロ ッ ク内に見つかった他のオペコード の場合に、 条件付きで実行されます。

ETMINTSTAT[2:0] 出力 認証な し 割 り 込みステータ ス。 現在のサイ クルの割 り 込みステータ ス を次のよ う に示し ます。

000 - ステータ スな し

001 - 割 り 込み開始

010 - 割 り 込み終了

011 - 割 り 込み復帰

100 - ベク タ フ ェ ッチおよびス タ ッ ク プ ッ シュ。ETMINTSTAT 開始 / 復帰は、 新規割 り 込みコ ンテキス ト の 初のサイ クルでアサー ト されます。ETMIVALID な しで終了し ます。

ETMINTNUM[8:0] 出力 ETMINTSTAT 割 り 込み番号。 現在の実行コ ンテキス ト の割 り 込み番号を示し ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 15- 3

アクセス制限な し 公開

Page 344: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデ ッ ド ト レース マク ロセルの イ ン タ フ ェース

ETMIA[31:1] 出力 認証な し 命令ア ド レ ス。 実行されているオペコード、 または 後に実行されたオペコード の現在のフ ェ ッチア ド レ ス を示し ます。 コ ンテキス ト は、 次の信号を調べる こ と で判定でき ます。

ETMIVALID

HALTED

SLEEPING

ETM は、 ETMIVALID がアサー ト された と き、 このネ ッ ト を調べます。 DWT は、 PC サンプル と バスウ ォ ッチ用にこのネ ッ ト を調べます。

ETMFOLD 出力 ETMIVALID オペコード はフ ォール ド されます。 このサイ クルで IT オペコード がフ ォール ド された こ と を示し ます。 現在の (16 ビ ッ ト ) オペコード と IT 命令 (16ビ ッ ト ) を超えて PC が進行し ます。 これはETMIA に影響し ます。

ETMFLUSH 出力 認証な し PC イベン ト のフ ラ ッ シ ュマーカ。 PC を変更するオペコード が実行されたか、 または割 り 込みプ ッシュ / ポ ッ プが開始された こ と を示し ます。 ETMはこのコ ン ト ロールを使用し て、 ETMIBRANCH イベン ト の準備のために未解決のパケ ッ ト を完了でき ます。

ETMFINDBR 出力 ETMFLUSH フ ラ ッ シュは間接的です。 PC がフ ラ ッ シ ュ ヒ ン トのデステ ィ ネーシ ョ ンを推定でき ないこ と を示します。

ETMCANCEL 出力 認証な し 現在実行されているオペコード がキ ャ ンセルされま し た。 割 り 込みされたオペコード は、 この実行コ ンテキス ト に復帰し た と きに再始動または続行されます。 これには、 次のオペコード が含まれます。

LDR/STR

LDRD/STRD

LDM/STM

U/SMULL

MLA

U/SDIV

MSR

CPSID

テーブル 15- 1 ETM イ ン タ フ ェースポー ト (続 く )

ポー ト 名 方向 認証する信号 説明

15- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 345: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデッ ド ト レース マク ロセルの イ ン タ フ ェース

ETMISTALL 出力 認証な し コ アによ って信号を出された 後の命令がまだ実行を開始されていないこ と を示し ます。ETMICANCEL が ETMISTALL と共にアサー ト された場合、 ス ト ールし た命令が実行されなかった こと と、 前の命令がキ ャ ンセルされた こ と を示し ます。

ETMTRIGGER[3:0] 出力 認証な し DWT からの出力 ト リ ガ。 4 つの DWT コ ンパレータそれぞれについて 1 ビ ッ ト が使用されています。

ETMTRIGINOTD[3:0] 出力 認証な し ETM が命令またはデータ一致で ト リ ガ されるかどう かを示す出力です。

テーブル 15- 1 ETM イ ン タ フ ェースポー ト (続 く )

ポー ト 名 方向 認証する信号 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 15- 5

アクセス制限な し 公開

Page 346: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデ ッ ド ト レース マク ロセルの イ ン タ フ ェース

15.3 分岐ステータ スイ ン タ フ ェース

プロセ ッ サは、 一部の分岐ターゲ ッ ト について、 分岐の実行を待たず、 デコード 時に投機的にフ ェ ッ チを行います。 プロセ ッ サには内部的なプ リフ ェ ッ チバッ フ ァ が搭載されている ため、 実行されている命令や、 メ モ リ のウ ェ イ ト ステー ト の数によ っては、 投機的なフ ェ ッチが誤っていた場合にもペナルテ ィ が発生し ない こ と があ り ます。 つま り 、 ウ ェ イ ト ステー ト の低いメ モ リ では、 分岐を 1 サイ クルで実行でき ます。 特定の実装では、 命令のスループ ッ ト を向上させる ため、 プロセ ッ サの外部に追加のプ リ フ ェ ッ チロジ ッ ク を搭載する こ と が有利な場合があ り ます。 このロ ジ ッ ク では、 効率向上のために BRCHSTAT を使用でき ます。 分岐ステータ ス信号 BRCHSTAT によ り 、 現在デコー ド中のオペコード に関する情報が得られます。 BRCHSTATは、 現在デコード中の命令がデコード時または実行時に ノ ンシーケンシ ャルなフ ェ ッチを引き起こすか、 分岐が条件付きか、 および分岐が前方または後方いずれの方向への ものかを示し ます。 実行時分岐にはマルチサイ クルのBRCHSTAT が含まれている可能性があ り 、 これは実行中の前のオペコード のス ト ールに依存し ます。 信号の機能を、 テーブル 15- 2 に示し ます。

プロセ ッ サが実行可能な分岐を、 テーブル 15- 3 p. 15- 7 に示し ます。 各タ イプの分岐について、 その分岐が評価される ステージが示されています。 例えば、 イ ミ デ ィ エー ト 値を持つすべての分岐はデコード時に評価されます。 つま り 、 イ ミ デ ィ エー ト 値によ る分岐がデコード ステージに入る と、 分岐ターゲ ッ ト ア ド レ スが必ず AHB に出力されます。

テーブル 15- 2 分岐ステータ ス信号の機能

名前 方向 説明

BRCHSTAT 出力 0000 = 現在デコード中の分岐はあ り ません。

0001 = デコード時条件付きの後方分岐をデコード中です。

0010 = デコード時条件付きの分岐をデコード中です。

0011 = 実行時条件付きの分岐をデコード 中です。

0100 = デコード時無条件分岐をデコード 中です。

0101 = 実行時無条件分岐をデコード 中です。

0110 = 予約

0111 = 予約

1000 = デコード中の条件付分岐が、 b0001 または b0010 の後のサイ クルで分岐されます。

15- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 347: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデッ ド ト レース マク ロセルの イ ン タ フ ェース

ALU レジス タ をベース とする分岐と LSU PC 変更命令は、 IT ブロ ッ ク内に存在する場合は条件付き分岐 (b0011) と し て認識されます。 それ以外の場合は、無条件分岐 (b0101) と し て認識されます。

テーブル 15- 3 分岐と プロセ ッサによ って評価されるステージ

分岐命令 命令サイズ 分岐ターゲッ ト が出力されるステージ

B <imm> 16 ビ ッ ト デコード -

B <imm> 32 ビ ッ ト デコード -

BL 32 ビ ッ ト デコード デコード時に LR が書き込まれていない場合

BLX LR 16 ビ ッ ト デコード デコード時に LR が書き込まれていない場合

BX LR 16 ビ ッ ト デコード デコード時に LR が書き込まれていない場合

MOV PC, LR 16 ビ ッ ト デコード デコード時に LR が書き込まれていない場合

ADD PC 32 ビ ッ ト 実行 -

BLX 16 ビ ッ ト 実行 LR がソース レジス タではない場合、 またはデコード時に LRが書き込まれていない場合

BX 16 ビ ッ ト 実行 LR がソース レジス タではない場合、 またはデコード時に LRが書き込まれていない場合

CBZ, CBNZ 16 ビ ッ ト 実行 -

ISB 16 ビ ッ ト 実行 -

LDR PC 32 ビ ッ ト 実行 -

PC への LDM 32 ビ ッ ト 実行 -

MOV PC 32 ビ ッ ト 実行 LR がソース レジス タではない場合、 または LR がデコード時に書き込まれてお り 、 かつLR がソース レジス タであ る場合

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 15- 7

アクセス制限な し 公開

Page 348: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデ ッ ド ト レース マク ロセルの イ ン タ フ ェース

Note

• エン コード b1000 は、 条件付きデコード 分岐で分岐が行われた後のサイクルにのみアサー ト されます。 これはレジス タ出力なので、 メ モ リ コ ント ローラのア ド レ スのマルチプレ クサを駆動する ために使用でき ます。

• b0101 エン コード のマルチサイ クル LSU では、 無条件分岐が実行されるこ と が判明し ている ため、 シーケンシ ャルなフ ェ ッチを防止する ために実行中のフ ェ ッチが抑制されます。

• これらのエン コー ド は、 デコード イ ネーブルがアサー ト された時点のみでな く 、 デコード の (マルチサイ クルの) 期間中ずっ と存在し ます。

投機的なフ ェ ッチは、 ウ ェ イ ト ステー ト の間にキ ャ ンセルされる こ と があ ります。 つま り 、 HREADY が LOW の間にフ ェ ッ チア ド レ スが新しいア ド レ スに変更される こ と があ り ます。 AMBA 3 への準拠 p. 12- 3 を参照し て下さい。

条件付き後方分岐が行われなかった場合 と、 行われた場合について、 図 15- 1および図 15- 2 p. 15- 9 に示し ます。 分岐は、 オペコード のデコード フ ェーズにおいて投機的に行われます。 分岐ターゲ ッ ト は、 ハーフ ワード のアンア ライ ン ド の 16 ビ ッ ト オペコード です。

図 15- 1 条件付き後方分岐が行われなかった場合

POP {PC} 16 ビ ッ ト 実行 -

POP {PC} 32 ビ ッ ト 実行 -

TBB/TBH 32 ビ ッ ト 実行 -

テーブル 15- 3 分岐と プロセ ッサによ って評価されるステージ (続 く )

分岐命令 命令サイズ 分岐ターゲッ ト が出力されるステージ

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000 0x1002

0001

NONSEQ

0x1004+の先をフェッチ0x0FF0

0000 0000

15- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 349: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデッ ド ト レース マク ロセルの イ ン タ フ ェース

図 15- 2 条件付き後方分岐が行われた場合

条件付き前方分岐が行われなかった場合と行われた場合について、 図 15- 3 および図 15- 4 に示し ます。 分岐は、 オペコード のデコード フ ェーズにおいて投機的に行われます。 分岐ターゲ ッ ト は、 ハーフ ワード ア ラ イ ン ド の 16 ビ ッ トオペコー ド です。

図 15- 3 条件付き前方分岐が行われなかった場合

図 15- 4 条件付き前方分岐が行われた場合

0x1002

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000

0001 0000

NONSEQ

0x0FF2

NONSEQ NONSEQ IDLE IDLE NONSEQ

0x0FF4 0x0FF8 0x0FFC0x0FF0

1000

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000 0x1002

0010 0000

NONSEQ 0x1004+の先をフェッチ

0x1020

0000

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000

0010 0000

NONSEQ

0x1002 0x1022

NONSEQ NONSEQ IDLE IDLE IDLE

0x1024 0x10280x1020

1000

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 15- 9

アクセス制限な し 公開

Page 350: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデ ッ ド ト レース マク ロセルの イ ン タ フ ェース

図 15- 5 および図 15- 6 は、 前のオペコード の実行フ ェーズにおける こ のサイクルの無条件分岐を、 パイプラ イ ンがス ト ールし ない場合と し た場合について示し ています。 分岐は、 オペコード のデコード フ ェーズに行われます。 分岐ターゲ ッ ト は、 ア ラ イ ン ド の 32 ビ ッ ト オペコード です。

図 15- 5 パイプ ラ イ ンがス ト ールし ない場合の無条件分岐

図 15- 6 パイプ ラ イ ンがス ト ールし た場合の無条件分岐

次のオペコード での無条件分岐を、 図 15- 7 p. 15- 11 および図 15- 8 p. 15- 11に示し ます。 分岐は、 オペコー ド の実行フ ェーズに行われます。 分岐ターゲ ッ ト は、 ア ラ イ ン ドおよびアンア ラ イ ン ド の 32 ビ ッ ト ALU オペコード です。

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000 0x1020

0100 0000

NONSEQ

0x1020

0x1002

NONSEQ NONSEQ NONSEQ

0x1024 0x1028 0x102C

0x1002

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000

0100 0000

NONSEQ

0x1020

0x1020

NONSEQ NONSEQ IDLE NONSEQ

0x1024 0x1028 0x102C

15- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 351: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデッ ド ト レース マク ロセルの イ ン タ フ ェース

図 15- 7 実行段での無条件分岐、 飛び先がアラ イ ン ド な命令

図 15- 8 実行段での無条件分岐、 飛び先がアンアラ イ ン ド な命令

オペコー ド シーケン スの例を、 テーブル 15- 4 に示し ます。

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000

0101 0000

NONSEQ

0x1008

0x1002 0x4000

NONSEQ NONSEQ NONSEQ

0x4000 0x4004 0x400C

NONSEQ

0x4008

ETMIVALID

ETMCCFAIL

ETMIA

BRCHSTAT

HTRANSI

HADDRI

HCLK

0x1000

0101 0000

NONSEQ

0x1002 0x4002

NONSEQ NONSEQ NONSEQ

0x4000 0x4004 0x40100x1008

NONSEQ NONSEQ

0x4008 0x400C

テーブル 15- 4 オペコー ド シーケンスの例

実行サイ クル フ ェ ッ チア ド レス オペコー ド

1 0x1020 ADD r1,#1

2 0x1022 LDR r3,[r4]

3 0x1024 ADD r2,#3

4 0x1026 CMP r3,r2

5 0x1028 BEQ = Target1

6 0x1040 CMP r1,r2

7 0x1042 ITE EQ // folded

8 0x1044 LDR EQ r3,[r4,r1] // skipped

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 15- 11

アクセス制限な し 公開

Page 352: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデ ッ ド ト レース マク ロセルの イ ン タ フ ェース

テーブル 15- 4 p. 15- 11 のオペコード シーケン ス例について、 タ イ ミ ングシーケン ス を図 15- 9 p. 15- 13 に示し ます。

9 0x1046 LDR NE r3,[r4,r2]

10 0x1048 ADD r6,r3

11 0x104A NOP

12 0x104C BX r14

13 0x0FC4 CMP

14 0x0FC6 BEQ = Target2 // not taken

15 0x0FC8 BX r5

テーブル 15- 4 オペコー ド シーケンスの例 (続 く )

実行サイ クル フ ェ ッ チア ド レス オペコー ド

15- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 353: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデッ ド ト レース マク ロセルの イ ン タ フ ェース

図 15- 9 オペコー ド シーケンスの例

FCLK

ETMLSU

ETMIVALID

ETMIBRANCH

ETMIINDBR

ETMIA

ETMFOLD

BRCHSTAT

ETMICCFAIL

HADDRI

HTRANSI

DEn

オペコードの

デコード

オペコードの

実行

0x811 0x814 0x823 0x826

アイドル NONSEQ

0010 1000 0000 0000 0100 0000 0000 0010 0101

NONSEQ NONSEQ NONSEQアイドル

NONSEQ

0000

0x102c0x1030

0x1040

0x1044

0x1048

0x104C

0x1050

0x1054

ADD CMP BEQ CMPLDR LDR ADD NOP BXITE/LDR

BEQ BXCMP

LDR ADD CMP BEQADD LDRLDR ADD NOP BXCMP BEQ BXCMP

0000

0x810 0x812

0x813

0x820

0x822

0x824

0x825

0x7E2

0x7E3

0x7E4

0xFC4

0xFC8

0xFCC

0xFC8

0xFD0

NONSEQ

NONSEQ

NONSEQ

NONSEQ

NONSEQ

NONSEQ

0x12AC

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 15- 13

アクセス制限な し 公開

Page 354: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

エンベデ ッ ド ト レース マク ロセルの イ ン タ フ ェース

15- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 355: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

本章では、 AHB ト レースマ ク ロセル イ ン タ フ ェースについて説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• AHB ト レースマ ク ロセル イ ン タ フ ェースについて p. 16- 2

• CPU AHB ト レースマ ク ロセル イ ン タ フ ェースのポー ト の説明 p. 16- 3

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 16- 1

アクセス制限な し 公開

Page 356: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

16.1 AHB ト レースマク ロセル イ ン タ フ ェースについて

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

HTM イ ン タ フ ェース を使用するには、 実装前に ト レース レベルを レベル 3 に設定する必要があ り ます。 また、 HTM が HTM ポー ト を許可し て ト レースデータ を供給でき る よ う にする ため、 TRCENA は 1 にセ ッ ト する必要があ ります。

16- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 357: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

16.2 CPU AHB ト レースマク ロセル イ ン タ フ ェースのポー ト の説明

AHB イ ン タ フ ェースのポー ト の一覧を、 テーブル 16- 1 に示し ます。

テーブル 16- 1 AHB イ ン タ フ ェースのポー ト

ポー ト 名 方向 説明

HTMDHADDR[31:0] 出力 32 ビ ッ ト のア ド レ ス

HTMDHTRANS[1:0] 出力 現在のデータ転送のタ イプを示す出力。 この出力の値は IDLE、NONSEQUENTIAL、 SEQUENTIAL のいずれかです。

HTMDHSIZE[1:0] 出力 ア ク セスのサイ ズを示し ます。 値は 8、 16、 32 ビ ッ ト のいずれかです。

HTMDHBURST[2:0] 出力 転送がバース ト の一部かど う かを示す出力

HTMDHPROT[3:0] 出力 ア ク セスに関する情報を提供し ます。

HTMDHWDATA[31:0] 出力 32 ビ ッ ト の書き込みデータバス

HTMDHWRITE 出力 書き込み、 読み出しではあ り ません。

HTMDHRDATA[31:0] 出力 読み出しデータバス

HTMDHREADY 出力 HIGH の場合は、 バス上で転送が完了し た こ と を示し ます。 この信号を LOW に駆動する と、 転送が延長されます。

HTMDHRESP[1:0] 出力 転送応答ステータ ス。 OKAY または ERROR です。

HTMDHADDR[31:0] 出力 32 ビ ッ ト のア ド レ ス

HTMDHTRANS[1:0] 出力 現在のデータ転送のタ イプを示す出力。 この出力の値は IDLE、NONSEQUENTIAL、 SEQUENTIAL のいずれかです。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 16- 3

アクセス制限な し 公開

Page 358: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

16- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 359: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

本章では、 ト レースポー ト イ ン タ フ ェースユニ ッ ト (TPIU) について説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• TPIU について p. 17- 2

• TPIU レジス タ p. 17- 8

• シ リ アルワ イ ヤ出力接続 p. 17- 23

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 1

Page 360: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

17.1 TPIU について

TPIU は、 エンベデッ ド ト レース マ ク ロセル (ETM) および計装 ト レース マ クロセル (ITM) からのオンチ ッ プ ト レースデータ間のブ リ ッ ジ と し て動作するオプシ ョ ン コ ンポーネン ト です。 これらの ト レースデータは異な る ID を持ってお り 、 TPIU はこれらの ト レースデータ を 1 つのデータ ス ト リ ームにし、 必要に応じ て ID をカプセル化し ます。 その後で、 データは ト レースポー ト アナラ イザ (TPA) によ ってキ ャプチャ されます。

TPIU は低コ ス ト のデバッ グ用に特に設計されています。 また、 CoreSight TPIU の特別バージ ョ ンであ り 、 システム要件によ り CoreSight TPIU の追加機能が必要と される場合は、 CoreSight コ ンポーネン ト で置き換え る こ と ができます。

TPIU には、 次の 2 つの構成があ り ます。

• ITM デバッ グ ト レース をサポー ト する構成

• ITM および ETM デバッ グ ト レースの両方をサポー ト する構成

実装で ト レースのサポー ト が必要ない場合、 TPIU を搭載する必要はあ り ません。

Note

Cortex-M3 システムでオプシ ョ ンの ETM コ ンポーネン ト を使用する場合は、ITM および ETM デバッ グ ト レースの両方をサポー ト する TPIU の構成を使用する必要があ り ます。 ETM の詳細については、 14 章 Embedded Trace Macrocell を参照し て下さい。

17.1.1 TPIU のブロ ッ ク図

TPIU の 2 つの構成に対応する コ ンポーネン ト の構成を、 図 17- 1 p. 17- 3 と図 17- 2 p. 17- 4 に示し ます。

17- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 361: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 17- 1 TPUI のブロ ッ ク図 (ETM をサポー ト し ない構成)

ATB インタフェース

非同期FIFO

APBインタフェース

トレース出力

(シリアライザ)

ITM ATB

スレーブ

ポート

APBスレーブ

ポート

TRACECLKIN

TRACECLK

TRACEDATA[3:0]

TRACESWO

CLKドメイン TRACECLKINドメイン

フォーマッタ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 3

Page 362: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 17- 2 TPUI のブロ ッ ク図 (ETM をサポー ト する構成)

17.1.2 TPIU のコ ンポーネン ト

以下のセ ク シ ョ ンでは、 TPIU の主要な コ ンポーネン ト について説明し ます。

• 非同期 FIFO

• フ ォーマ ッ タ

• ト レース出力 p. 17- 5

• ア ド バン ス ト ト レースバス イ ン タ フ ェース p. 17- 5

• ア ド バン ス ト ペ リ フ ェ ラルバス イ ン タ フ ェース p. 17- 5

非同期 FIFO

非同期 FIFO を使用する と、 ト レースデータ を コ ア ク ロ ッ クの速度に依存しない速度で取 り 出すこ と ができ ます。

フ ォーマ ッ タ

フ ォーマ ッ タは、 ト レースデータ を ト レース ソース と再び対応付けでき る よう に、 ソース ID 信号をデータパケ ッ ト に挿入し ます。 TRACEPORT モード がア ク テ ィ ブな場合、 フ ォーマ ッ タは常時ア ク テ ィ ブです。

ATB インタフェース

APBインタフェース

トレース出力

(シリアライザ)

ETM ATB

スレーブ

ポート

APBスレーブ

ポート

TRACECLKIN

TRACECLK

TRACEDATA[3:0]

TRACESWO

ATCLKドメイン TRACECLKINドメイン

ATBインタフェース

ITM ATB

スレーブ

ポート

フォーマッタ

非同期FIFO

非同期FIFO

17- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 363: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ト レース出力

ト レース出力ブロ ッ クは、 データがチ ッ プの外に送られる前に、 フ ォーマ ット されたデータの直列化を行います。

ア ド バンス ト ト レースバス イ ン タ フ ェース

TPIU は、 ト レース ソースからの ト レースデータ を、 ト レース ソース (ETMまたは ITM) から直接受け取るか、 または ト レース フ ァ ンネルを使用し て受け取 り ます。 詳細については、 ア ド バン ス ト ト レースバス イ ン タ フ ェース を参照し て下さい。

ア ド バンス ト ペ リ フ ェ ラルバス イ ン タ フ ェース

APB イ ンタ フェースは、 TPIU 用のプログラ ミ ングイン タ フェースです。 詳細については、 ア ド バン ス ト ペ リ フ ェ ラルバス イ ン タ フ ェース を参照して下さい。

17.1.3 TPIU 入力および出力

このセ ク シ ョ ンでは、 TPIU 入力および出力について説明し ます。 このセ クシ ョ ンは次の項目から構成されています。

• ト レース出力ポー ト

• ア ド バン ス ト ト レースバス イ ン タ フ ェース p. 17- 6.

• その他の構成入力 p. 17- 7

• APB イ ン タ フ ェース p. 17- 7

ト レース出力ポー ト

ト レース出力ポー ト の信号の説明を、 テーブル 17- 1 に示し ます。

テーブル 17- 1 ト レース出力ポー ト の信号

名前 タ イプ 説明

TRACECLKIN 入力 ト レースポー ト 速度の簡単な制御を可能にする ための ATB からの分離クロ ッ ク。 一般的に、 このク ロ ッ クはチッ プ上の制御可能な ク ロ ッ ク ソースから作成されますが、 高速度ピンを使用する場合は外部ク ロ ッ ク ジェネレータでも駆動でき ます。 データは立ち上が り エ ッ ジでのみ変更されます。

TRESETn 入力 これは TRACECLKIN ド メ イ ンの リ セ ッ ト 信号です。 こ の信号は通常はパワーオン リ セ ッ ト で駆動され、 TRACECLKIN に同期し ている必要があ り ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 5

Page 364: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ア ドバンス ト ト レースバス イ ン タ フ ェース

TPIU の構成に応じ て、 1 つまたは 2 つの ATB イ ン タ フ ェースが存在し ます。ATB ポー ト の信号の説明を、 テーブル 17- 2 に示し ます。 TPIU が単一の ATBイ ン タ フ ェースで構成されている場合は、 ポー ト 2 の信号は使用されません。

TRACECLK 出力 TRACEDATA は、 TRACECLK の両方のエ ッ ジで変更されます。

TRACEDATA[3:0] 出力 ク ロ ッ ク モード の出力データ

TRACESWO 出力 非同期モード の出力データ

テーブル 17- 1 ト レース出力ポー ト の信号 (続 く )

名前 タ イプ 説明

テーブル 17- 2 ATB ポー ト の信号

名前 タ イプ 説明

CLK 入力 ト レースバスおよび APB イ ン タ フ ェース ク ロ ッ ク

nRESET 入力 CLK ド メ イ ン (ATB/APB イ ン タ フ ェース) の リ セ ッ ト

CLKEN 入力 CLK ド メ イ ンのク ロ ッ ク イネーブル

ATVALID1S 入力 ト レース ソース 1 からのデータが、 こ のサイ クルで有効な こ と を示し ます。

ATREADY1S 出力 こ の信号がアサー ト されている (ATVALID が HIGH) 場合、 データはこ のサイ クルに ト レース ソース 1 から受け付け られま し た。

ATDATA1S[7:0] 入力 ソース 1 からの ト レースデータ入力

ATID1S[6:0] 入力 ソース 1 の ト レース ソース ID。 これは動的には変更でき ません。

ATVALID2S 入力 ト レース ソース 2 からのデータが、 こ のサイ クルで有効な こ と を示し ます。

ATREADY2 出力 こ の信号がアサー ト されている (ATVALID が HIGH) 場合、 データはこ のサイ クルに ト レース ソース 2 から受け付け られま し た。

ATDATA2S[7:0] 入力 ソース 2 からの ト レースデータ入力

ATID2S[6:0] 入力 ソース 2 の ト レース ソース ID。 これは動的には変更でき ません。

17- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 365: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

その他の構成入力

その他の構成入力の説明を、 テーブル 17- 3 に示し ます。

APB イ ン タ フ ェース

APB イ ン タ フ ェース入力の説明を、 テーブル 17- 4 に示し ます。

テーブル 17- 3 その他の構成入力

名前 タ イプ 説明

MAXPORTSIZE[1:0] 入力 同期 ト レース出力で使用可能なピンの 大数を定義し ます。

SyncReq 入力 グ ローバル ト レース同期化 ト リ ガ。 同期化パケ ッ ト を、 フ ォーマ ッ ト されたデータ ス ト リ ームに挿入し ます。 フ ォーマ ッ タがア ク テ ィ ブな場合にのみ使用されます。 この信号は、 Cortex-M3 の DSYNC 出力に接続する必要があ り ます。

TRIGGER 入力 フ ォーマ ッ タがア ク テ ィ ブな場合に、 ト リ ガパケ ッ ト を ト レース ス トリ ームに挿入し ます。

SWOACTIVE 出力 SWO モード が選択されます (ピン多重化に使用)。

TPIUACTIV 出力 TPIU に出力処理中のデータがあ る こ と を示し ます。

TPIUBAUD 出力 ボー周波数で切 り 換わ り ます (TRACECLKIN ド メ イ ン)。

テーブル 17- 4 APB イ ン タ フ ェース

名前 タ イプ 説明

PSEL 入力 ペ リ フ ェ ラル選択

PWRITE 入力 ペ リ フ ェ ラルの書き込み制御

PENABLE 入力 ペ リ フ ェ ラルの転送イネーブル

PADDR[11:2] 入力 ペ リ フ ェ ラルア ド レ ス

PWDATA[31:0] - 書き込みデータ

PRDATA[31:0] - 読み出しデータ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 7

Page 366: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

17.2 TPIU レジス タ

こ のセ ク シ ョ ンでは、 TPIU レジス タについて説明し ます。 こ のセ ク シ ョ ンは次の項目から構成されています。

• TPIU レジス タの概要

• TPIU レジス タの説明 p. 17- 10

17.2.1 TPIU レジス タの概要

TPIU レジス タの概要を、 テーブル 17- 5 に示し ます。

Note

どの TPIU レジス タ も、 存在する、 または存在し ないもの と し て構成でき ます。 存在し ないもの と し て構成されているすべてのレジス タは、 0 と し て読み出されます。

テーブル 17- 5 TPIU レジス タ

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

サポー ト される同期化ポー ト サイ ズ レジス タ

読み出し専用

0xE0040000 0bxx0x 17- 10

カレ ン ト 同期化ポー ト サイ ズ レジス タ 読み出し / 書き込み

0xE0040004 0x01 17- 11

非同期ク ロ ッ ク プ リ スケーラ レジス タ 読み出し / 書き込み

0xE0040010 0x0000 17- 11

選択ピンプロ ト コル レジス タ 読み出し / 書き込み

0xE00400F0 0x01 17- 12

フ ォーマ ッ タおよびフ ラ ッ シュ ステータ ス レジス タ

読み出し専用

0xE0040300 0x08 17- 12

フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タ

読み出し / 書き込み

0xE0040304 0x102 17- 13

フ ォーマ ッ タ同期化カ ウ ン タ レジス タ 読み出し専用

0xE0040308 0x00 17- 16

統合レジス タ : TRIGGER 読み出し専用

0xE0040EE8 0x0 17- 18

統合レジス タ : ITATBCTR2 読み出し専用

0xE0040EF0 0x0 17- 16

17- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 367: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

統合レジス タ : ITATBCTR0 読み出し専用

0xE0040EF8 0x0 17- 16

統合モード制御レジス タ 読み出し / 書き込み

0xE0040F00 0x0 17- 17

統合レジス タ : FIFO データ 0 読み出し専用

0xE0040EEC 0x--000000 17- 19

統合レジス タ : FIFO データ 1 読み出し専用

0xE0040EFC 0x--000000 17- 20

ク レーム タ グ セ ッ ト レジス タ 読み出し / 書き込み

0xE0040FA0 0xF 17- 22

ク レーム タ グ ク リ アレジス タ 読み出し / 書き込み

0xE0040FA4 0x0 17- 21

デバイ ス ID レジス タ 読み出し専用

0xE0040FC8 0xCA0 (ETM

が存在し ている場合)

0xCA1 (ETM

が存在し ていない場合)

17- 22

PID4 読み出し専用

0xE0040FD0 0x04 -

PID5 読み出し専用

0xE0040FD4 0x00 -

PID6 読み出し専用

0xE0040FD8 0x00 -

PID7 読み出し専用

0xE0040FDC 0x00 -

PID0 読み出し専用

0xE0040FE0 0x23 -

PID1 読み出し専用

0xE0040FE4 0xB9 -

PID2 読み出し専用

0xE0040FE8 0x2B -

テーブル 17- 5 TPIU レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 9

Page 368: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

17.2.2 TPIU レジス タの説明

こ のセ ク シ ョ ンでは、 TPIU レジス タについて説明し ます。

サポー ト される同期化ポー ト サイズ レジス タ

こ のレジス タは読み出し / 書き込み可能です。 各ビ ッ ト 位置が、 そのデバイスでサポー ト されているポー ト サイ ズを表し ていて、 ビ ッ ト 位置 [3:0] では4、 2、 または 1 を表し ます。 ビ ッ ト がセ ッ ト される と、 そのポー ト サイ ズが許可されます。 デフ ォル ト では、 RTL はすべてのポー ト サイ ズをサポー ト する よ う に設計されてお り 、 0x0000000B に設定されます。 このレジス タは、 入力

タ イオフ MAXPORTSIZE によ って制約を受けます。 外部のタ イオフMAXPORTSIZE は、 物理ピンに結線された TRACEDATA 信号の実際の数を示すよ う に、 ASIC の 終段階で設定される必要があ り ます。 これによ り 、 接続された TPA がキ ャプチャでき ないポー ト 幅の選択をツールが試みない こ と が保証されます。 MAXPORTSIZE の値によ り 、 よ り 広い幅、 つま り サポー ト されていない幅を表す、 サポー ト される同期化ポー ト サイ ズ レジス タ内のビ ット が ク リ ア されます。

ビ ッ ト 割 り 当てを図 17- 3 に示し ます。

図 17- 3 サポー ト される同期化ポー ト サイズ レジス タのビ ッ ト 割り当て

PID3 読み出し専用

0xE0040FEC 0x00 -

CID0 読み出し専用

0xE0040FF0 0x0D -

CID1 読み出し専用

0xE0040FF4 0x90 -

CID2 読み出し専用

0xE0040FF8 0x05 -

CID3 読み出し専用

0xE0040FFC 0xB1 -

テーブル 17- 5 TPIU レジス タ (続 く )

レジス タ名 タ イプ ア ド レス リセッ ト時の値 ページ

02 01

31 3 2 1 0

04 03予約

17- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 369: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

カ レン ト 同期化ポー ト サイズ レジス タ

このレジス タは読み出し / 書き込み可能です。 カレ ン ト 同期化ポー ト サイ ズ レジス タは、 サポー ト される同期化ポー ト サイ ズ レジス タ と同じ フ ォーマ ット を持ちますが、 1 ビ ッ ト のみがセ ッ ト され、 他のすべてのビ ッ ト は 0 の必要があ り ます。 複数のビ ッ ト がセ ッ ト されている値の書き込み、 およびサポー ト されている こ と が示されていないビ ッ ト のセ ッ ト はサポー ト されておらず、 予測不能な動作を引き起こ し ます。

このレジス タは、 サポー ト される同期化ポー ト サイ ズ レジス タ と同じ フ ォーマ ッ ト を使用するのが便利です。 これは、 デバイ ス内で後にサイ ズをデコードする必要性を省き、 有効な割 り 当てをチェ ッ クする他のレジス タバン ク のフ ォーマ ッ ト も維持するからです。

リ セ ッ ト 時、 このレジス タのデフ ォル ト 値は可能な 小ポー ト サイ ズ、 つまり 1 ビ ッ ト であ る ため、 読み出し値は 0x00000001 です。

非同期ク ロ ッ ク プ リ スケーラ レジス タ

非同期ク ロ ッ ク プ リ ス ケーラ レジス タは、 非同期出力のボーレー ト を調整する ために使用し ます。

非同期ク ロ ッ ク プ リ ス ケーラ レジス タのビ ッ ト 割 り 当てを、 図 17- 4 に示します。

図 17- 4 非同期ク ロ ッ ク プ リ スケーラ レジス タのビ ッ ト 割り当て

非同期ク ロ ッ ク プ リ ス ケーラ レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 17- 6 に示し ます。

31 13 0

予約

12

PRESCALER

テーブル 17- 6 非同期ク ロ ッ ク プ リ スケーラ レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:13] - 予約。 RAZ/SBZP

[12:0] PRESCALER TRACECLKIN の除数は、PRESCALER + 1 で指定されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 11

Page 370: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

選択ピンプロ ト コル レジス タ

選択ピンプロ ト コル レジス タ を使用し て、 ト レース出力に使用するプロ ト コルを選択し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE00400F0

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x01

選択ピンプロ ト コル レジス タのビ ッ ト 割 り 当てを、 図 17- 5 に示し ます。

図 17- 5 選択ピンプロ ト コル レジス タのビ ッ ト 割り当て

選択ピンプロ ト コル レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 17- 7 に示し ます。

Note

ト レースデータが出力中にこのレジス タが変更される と、 データが破損し ます。

フ ォーマ ッ タおよびフ ラ ッ シュステータ ス レジス タ

フ ォーマ ッ タおよびフ ラ ッ シ ュ ステータ ス レジス タは、 TPIU フ ォーマ ッ タのステータ ス を読み出すために使用し ます。

31 2 0

予約

1

PROTOCOL

テーブル 17- 7 選択ピンプロ ト コル レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:2] - 予約

[1:0] PROTOCOL 00 - TracePort モード

01 - SerialWire 出力 (マンチェ ス タ)。 これは リ セ ッ ト 時の値です。

10 - SerialWire 出力 (NRZ)

11 - 予約

17- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 371: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040300

ア ク セス 読み出し専用

リ セ ッ ト 時 0x08

フ ォーマ ッ タおよびフ ラ ッ シュ ステータ ス レジス タのビ ッ ト 割 り 当てを、図 17- 6 に示し ます。

図 17- 6 フ ォーマ ッ タおよびフ ラ ッ シュステータ ス レジス タのビ ッ ト 割り当て

フ ォーマ ッ タおよびフ ラ ッ シュ ステータ ス レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 17- 8 に示し ます。

フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タ

フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タ。

31 2 0

予約

1

FlInProg

3

FtStoppedTCPresentFtNonStop

4

テーブル 17- 8 フ ォーマ ッ タおよびフ ラ ッ シュステータ ス レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:4] - 予約

[3] FtNonStop フ ォーマ ッ タは中止できません。

[2] TCPresent こ のビ ッ ト は、 常に 0 とし て読み出されます。

[1] FtStopped こ のビ ッ ト は、 常に 0 とし て読み出されます。

[0] FlInProg こ のビ ッ ト は、 常に 0 とし て読み出されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 13

Page 372: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040304

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x102

フ ォーマ ッ タおよびフ ラ ッ シ ュ制御レジス タのビ ッ ト 割 り 当てを、 図 17- 7 p. 17- 14 に示し ます。

図 17- 7 フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タのビ ッ ト 割り当て

フ ォーマ ッ タおよびフ ラ ッ シ ュ制御レジス タのビ ッ ト 割 り 当ての説明を、テーブル 17- 9 に示し ます。

予約

31 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

StopTrigStopFI

予約

TrigFITrigEVT

TrigIn予約

FOnManFOnTrigFOnFlln

予約

EnFContEnFTC

テーブル 17- 9 フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:14] - 予約

[13] StopTrig ト リ ガ イベン ト を観測後に、 フ ォーマ ッ タ を停止し ます。

[12] StopFI フ ラ ッ シュの完了後に、 フ ォーマ ッ タ を停止し ます。

[11] - 予約

[10] TrigFI フ ラ ッ シュ完了時の ト リ ガを示し ます。

17- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 373: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

このレジス タのビ ッ ト [8] は常時セ ッ ト されてお り 、 TRIGGER がアサー ト された と きの ト リ ガを示し ています。

2 つのシングルワ イヤ出力モー ド の う ち 1 つが選択される と、 このレジス タのビ ッ ト [1] によ り フ ォーマ ッ タのバイパスが許可されます。 フ ォーマ ッ タがバイパス される と、 ITM/DWT ト レース ソース (ATDATA2) のみが通過し ます。 TPIU は、 ETM ポー ト (ATDATA1) 上に存在するデータ を受け付けて廃棄し ます。 この機能は、 ETM を含むデバイ ス を、 シ リ アルワ イヤ出力データのみをキ ャプチャでき る ト レースキ ャプチャ デバイ スに接続する必要があ る場合に使用する こ と を想定し ています。 フ ォーマ ッ タ を許可または禁止する と、データが一時的に破損し ます。

Note

選択ピンプロ ト コル レジス タが 0x00 (TracePort モー ド) に設定される と、

フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タの読み出し値は常時 0x102 にな り

ます。 これはフ ォーマ ッ タが自動的に許可される ためです。 その後で、 シ リアルワ イヤ モード のいずれかが選択される と、 このレジス タは以前にプロ グラ ム された値に戻 り ます。

[9] TrigEVT ト リ ガイベン ト 時の ト リ ガを示し ます。

[8] TrigIN TRIGIN アサー ト 時の ト リ ガを示し ます。

[7] - 予約

[6] FOnMan システムのフ ラ ッ シュ を手動で生成し ます。

[5] FOnTrig ト リ ガイベン ト を使用し てフ ラ ッ シュ を生成し ます。

[4] FOnFlln FLUSHIN イ ン タ フ ェース を使用し てフ ラ ッ シュ を生成し ます。

[3:2] - 予約

[1] EnFCont 連続フ ォーマ ッ テ ィ ング、 TRACECTL な し。 このビ ッ ト は リ セ ッ ト 時にセ ッ ト されます。

[0] EnFTC フ ォーマ ッ テ ィ ングを許可し ます。 TRACECTL が存在し ないため、 このビ ッ ト は 0 と し て読み出されます。

テーブル 17- 9 フ ォーマ ッ タおよびフ ラ ッ シュ制御レジス タのビ ッ ト 割り当て (続 く )

ビ ッ ト フ ィ ールド 機能

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 15

Page 374: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

フ ォーマ ッ タ同期化カウン タ レジス タ

グローバル同期化 ト リ ガは、 プログラ ムカウンタ (PC) サンプラブロ ッ クによ って生成されます。 これは、 TPIU に同期化カウ ン タがないこ と を意味し ます。

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040308

ア ク セス 読み出し専用

リ セ ッ ト 時 0x00

統合テス ト レジス タ

統合テス ト レジス タは、 Cortex-M3 システム内で他のデバイ ス を使用し、TPIU の ト ポロ ジ検出を行 う ために使用し ます。 これらのレジス タによ り 、 出力の直接制御および入力値の読み出し機能が許可されます。 プロセ ッ サには、次の 2 つの統合テス ト レジス タがあ り ます。

• 統合テス ト レジス タ - ITATBCTR2

• 統合テス ト レジス タ - ITATBCTR0

統合テス ト レジス タ - ITATBCTR2

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040EF0

ア ク セス 読み出し専用

リ セ ッ ト 時 0x0

統合テス ト レジス タのビ ッ ト 割 り 当てを、 図 17- 8 に示し ます。

図 17- 8 統合テス ト レジス タ - ITATBCTR2 のビ ッ ト 割り当て

31 0

予約

1

ATREADY1ATREADY2

17- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 375: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

統合テス ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 17- 10 に示し ます。

統合テス ト レジス タ - ITATBCTR0

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040EF8

ア ク セス 読み出し専用

リ セ ッ ト 時 0x0

統合テス ト レジス タのビ ッ ト 割 り 当てを、 図 17- 9 に示し ます。

図 17- 9 統合テス ト レジス タ - ITATBCTR0 のビ ッ ト 割り当て

統合テス ト レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 17- 11 に示し ます。

統合モー ド制御レジス タ

統合モー ド制御レジス タは、 ト ポロ ジ検出を可能にし ます。

テーブル 17- 10 統合テス ト レジス タ - ITATBCTR2 のビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:1] - 予約

[0] ATREADY1、ATREADY2

このビ ッ ト によ り 、 ATREADYS1 および ATREADYS2 の値が読み出し、 または設定されます。

31 0

予約

1

ATVALID1ATVALID2

テーブル 17- 11 統合テス ト レジス タ - ITATBCTR0 のビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:1] - 予約

[0] ATVALID1、ATVALID2

このビ ッ ト には、 ATVALIDS1 と ATVALIDS2 の値に対し て OR 演算を行った結果が、 読み出し または設定されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 17

Page 376: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040F00

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x0

統合モード制御レジス タのビ ッ ト 割 り 当てを、 図 17- 10 に示し ます。

図 17- 10 統合モー ド制御レジス タのビ ッ ト 割り当て

統合モード制御レジス タのビ ッ ト 割 り 当ての説明を、 テーブル 17- 12 に示します。

統合レジス タ : TRIGGER

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040EE8

ア ク セス 読み出し専用

リ セ ッ ト 時 0x0

統合レジス タ : TRIGGER のビ ッ ト 割 り 当てを、 図 17- 11 に示し ます。

SBZ

31 0

FIFOテストモード

12

統合テストモード

テーブル 17- 12 統合モー ド制御レジス タのビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:2] - 予約、 SBZ

[1] FIFO テス ト モード FIFO テス ト モード を許可し ます。

[0] 統合テス ト モード 統合テス ト モード を許可し ます。

17- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 377: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 17- 11 統合レジス タ : TRIGGER のビ ッ ト 割り当て

統合レジス タ : TRIGGER のビ ッ ト 割 り 当ての説明を、 テーブル 17- 13 に示します。

統合レジス タ : FIFO データ 0

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040EEC

ア ク セス 読み出し専用

リ セ ッ ト 時 0x0

統合レジス タ : FIFO データ 0 のビ ッ ト 割 り 当てを、 図 17- 12 に示し ます。

図 17- 12 統合レジス タ : FIFO データ 0 のビ ッ ト 割り当て

予約

31 01

TRIGGERの入力値

テーブル 17- 13 統合レジス タ : TRIGGER のビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:1] - 予約

[0] TRIGGER の入力値 TRIGGER 入力を許可し ます。

FIFO1データ2 FIFO1データ1 FIFO1データ0

31 029 2728 26 2425 23 16 15 8 7

書き込みポイント1ATVALID1S書き込みポイント2ATVALID2S

30

予約

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 19

Page 378: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

統合レジス タ : FIFO データ 0 のビ ッ ト 割 り 当ての説明を、 テーブル 17- 14 に示し ます。

統合レジス タ : FIFO データ 1

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040EFC

ア ク セス 読み出し専用

リ セ ッ ト 時 0x0

統合レジス タ : FIFO データ 1 のビ ッ ト 割 り 当てを、 図 17- 13 p. 17- 20 に示します。

図 17- 13 統合レジス タ : FIFO データ 1 のビ ッ ト 割り当て

テーブル 17- 14 統合レジス タ : FIFO データ 0 のビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:30] - 予約

[29] ATVALID2S

[28:27] 書き込みポイ ン ト 2

[26] ATVALID1S

[25:24] 書き込みポイ ン ト 1

[23:16] FIFO1 データ 2

[15:8] FIFO1 データ 1

[7:0] FIFO1 データ 0

FIFO2データ2 FIFO2データ1 FIFO2データ0

31 029 2728 26 2425 23 16 15 8 7

書き込みポイント1ATVALID1S書き込みポイント2ATVALID2S

30

予約

17- 20 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 379: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

統合レジス タ : FIFO データ 0 のビ ッ ト 割 り 当てを、 テーブル 17- 15 に示し ます。

CoreSight 固有のレジス タ

このセ ク シ ョ ンでは、 CoreSight 固有のレジス タについて説明し ます。

ク レームタグ ク リ アレジス タ

このレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040FA4

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x0

このレジス タは、 ク レーム タ グの値の半分を構成し ます。 こ の位置によ り 、個別のビ ッ ト の ク リ ア、 書き込み、 および現在の ク レーム タ グの値の読み取り が許可されます。

このレジス タの幅 (n) は、 ク レーム タ グ セ ッ ト レジス タ を読み出すこ と で判定でき ます。

読み出し 現在の ク レーム タ グの値

書き込み 各ビ ッ ト は個別に扱われます。

0 = 無効

1 = ク レーム タ グの このビ ッ ト を ク リ ア し ます。

テーブル 17- 15 統合レジス タ : FIFO データ 1 のビ ッ ト 割り当て

ビ ッ ト フ ィ ールド 機能

[31:30] - 予約

[29] ATVALID2S

[28:27] 書き込みポイ ン ト 2

[26] ATVALID1S

[25:24] 書き込みポイ ン ト 1

[23:16] FIFO2 データ 2

[15:8] FIFO2 データ 1

[7:0] FIFO2 データ 0

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 21

Page 380: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

ク レームタグ セ ッ ト レジス タ

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040FA0

ア ク セス 読み出し / 書き込み

リ セ ッ ト 時 0x0

こ のレジス タは、 ク レーム タ グの値の半分を構成し ます。 この位置によ り 、個別のビ ッ ト の値の設定 (書き込み) と、 セ ッ ト 可能なビ ッ ト の数を返す(読み出し) を行えます。

読み出し 各ビ ッ ト は個別に扱われます。

0 = こ の ク レーム タ グ ビ ッ ト は実装されていません。

1 = こ の ク レーム タ グ ビ ッ ト は実装されています。

書き込み 各ビ ッ ト は個別に扱われます。

0 = 無効

1 = ク レーム タ グの このビ ッ ト をセ ッ ト し ます。

デバイス ID レジス タ

こ のレジス タのア ド レ ス、 ア ク セス タ イプ、 リ セ ッ ト 時の状態は次の とお りです。

ア ド レ ス 0xE0040FC8

ア ク セス 読み出し専用

リ セ ッ ト 時 0xCA0/0xCA1

こ のレジス タは次の内容を示し ています。

• ETM が存在し ない場合、 0xCA0

• ETM が存在する場合、

0xCA1

17- 22 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 381: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

17.3 シ リ アルワイヤ出力接続

Cortex-M3 の TPIU にはシ リ アルワ イヤ出力モード が提供されてお り 、 1 本の外部ピンが必要にな り ます。 このピンを接続する方法は 3 つあ り ます。

• TRACESWO 専用ピンの使用

• TRACEPORT と SWO の共用

• JTAG-TDO と SWO の共用 p. 17- 24

17.3.1 TRACESWO 専用ピンの使用

これは も単純なオプシ ョ ンですが、 パッ ケージに追加のピンが必要にな ります。 専用ピンオプシ ョ ンを、 図 17- 14 に示し ます。

図 17- 14 TRACESWO 専用ピン

17.3.2 TRACEPORT と SWO の共用

TRACEDATA[0] と TRACESWO でピンを共用でき ます。 これら 2 つのピンのう ち、 同時に使用でき るのは 1 つだけなので、 このオプシ ョ ンの使用によ って機能が失われる こ と はあ り ません。 パッ ケージに専用 ト レースポー ト が存在する場合は、 このオプシ ョ ンを使用するのが適切です。

このオプシ ョ ンを実装するには、 Cortex-M3 の TPIU の SWOACTIVE 出力を使用し て、 マルチプレ ク サを制御し ます。 TRACEPORT と SWO を共用するオプシ ョ ンを、 図 17- 15 p. 17- 24 に示し ます。

CM3TPIU

CortexM3Integration

TRACESWO SWV

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 17- 23

Page 382: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

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

図 17- 15 TRACEPORT と SWO の共用

17.3.3 JTAG-TDO と SWO の共用

ピンの数をでき るだけ減ら し たい場合は、 パッ ケージの同一ピンに JTAG デバッ グ と SWO をオーバーレ イする こ と が可能です。 こ の手法は、 従来の トレースポー ト 用の機構、 またはよ り 複雑なシステム レベルのデバッ グ構成制御で使用する ための機構が存在し ない場合にのみ推奨されます。

こ のオプシ ョ ンを選択し た場合、 JTAG 構成でデバッ グポー ト が使用されている間は、 計装 ト レースにア ク セスでき ません。 シ リ アルワ イ ヤ デバッ グ とSWO は同時に使用でき ます。

こ のオプシ ョ ンを実装するには、 SWJ-DP の JTAGNSW 出力を使用し てマルチプレ クサを制御し ます。 JTAG-TDO と SWO を共用するオプシ ョ ンを、図 17- 16 に示し ます。

図 17- 16 JTAG-TDO と SWO の共用

CM3TPIU

CortexM3Integration

TRACESWO

TRACEDATA[0]

TRACEDATA[3:1]

0

1

TRACEDATA[3:1]

SWV/TRACEDATA[0]

SWOACTIVE

SWJ-DP

CortexM3Integration

CM3TPIU

TRACEDATA[3:0]

TRACESWO 0

1TDO/SWV

JTAGNSW

JTAGTDO

TRACEDATA[3:0]

17- 24 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

Page 383: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

18 章 命令のタ イ ミ ング

本章では、 プロセ ッ サの命令のタ イ ミ ングについて説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• 命令のタ イ ミ ングについて p. 18- 2

• プロセ ッ サ命令のタ イ ミ ング p. 18- 3

• ロード / ス ト アのタ イ ミ ング p. 18- 7

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 18- 1

アクセス制限な し 公開

Page 384: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

命令のタ イ ミ ング

18.1 命令のタ イ ミ ングについて

本章に記載されている タ イ ミ ング情報は、 命令間の相互動作に加え、 各命令をカバーし ています。 また、 タ イ ミ ングに影響を与え る要因についての情報も含まれています。

タ イ ミ ングについて考え る際は、 システムアーキテ クチャが果たす役割を理解する こ と が重要にな り ます。 すべての命令はフ ェ ッ チされる必要があ り 、すべてのロード / ス ト アはシステムに送出される必要があ り ます。 これらの要因については、 意図されている システム設計およびタ イ ミ ングへの影響 とと もに、 本章で説明されています。

18- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 385: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

命令のタ イ ミ ング

18.2 プロセ ッサ命令のタ イ ミ ング

ARMv7-M アーキテ クチャでサポー ト されている Thumb サブセ ッ ト を、 テーブル 18- 1 に示し ます。 こ こ では、 命令ス ト リ ームの相互動作がどのよ う にタイ ミ ングに影響するのかを説明する ための注釈を含む、 サイ クル情報が示されています。 遅い メ モ リ から コード を実行する場合のよ う な、 システムの影響について も考慮されています。

テーブル 18- 1 命令のタ イ ミ ング

命令の種類 サイズ サイ クル数 説明

データ処理 16 1 (PC がデステ ィ ネーシ ョ ンの場合は +Pa)

ADC、 ADD、 AND、 ASR、 BIC、 CMN、 CMP、 CPY、EOR、 LSL、 LSR、 MOV、 MUL、 MVN、 NEG、 ORR、ROR、 SBC、 SUB、 TST、 REV、 REV16、 REVSH、SXTB、 SXTH、 UXTB、 UXTH。 MUL は 1 サイ クルです。

分岐 16 1+Pa B<cond>、 B、 BL、 BX、 BLX。 イ ミ デ ィ エー ト を使用する BLX は含まれません。 分岐が発生し た場合、パイプラ イ ンが リ ロード されます (2 サイ クル追加されます)。

単一ロード / ス ト ア

16 2b (PC がデステ ィ ネーシ ョ ンの場合は +Pa)

LDR、 LDRB、 LDRH、 LDRSB、 LDRSH、 STR、STRB、 STRH、 T バ リ アン ト

複数ロード / ス ト ア

16 1+Nb (PC がロード され

る場合は +Pa)

LDMIA、 POP、 PUSH、 STMIA

例外生成 16 - BKPT は、 デバッ グ可の場合はデバッ グ内で停止し、デバッ グ不可の場合はフ ォール ト が発生し ます。

SVC は SVCall ハン ド ラにフ ォール ト を発生させます (詳細については、 『ARMv7-M アーキテ クチャ仕様書』 を参照し て下さい)。

即値を使用するデータ処理

32 1 (PC がデステ ィ ネー

シ ョ ンの場合は +Pa)

ADC{S}。 ADD{S}、 CMN、 RSB{S}、 SBC{S}、 SUB{S}、CMP、 AND{S}、 TST、 BIC{S}、 EOR{S}、 TEQ、ORR{S}、 MOV{S}、 ORN{S}、 MVN{S}

大き な即値を使用するデータ処理

32 1 MOVW、 MOVT、 ADDW と SUBW。 MOVW およびMOVT は、 16 ビ ッ ト イ ミ デ ィ エー ト を持ちます(このため、 メ モ リ からの リ テ ラルロード の代わ りに使用でき ます)。 ADDW および SUBW は、 12 ビ ット イ ミ デ ィ エー ト を持ちます (このため、 メ モ リ からの リ テ ラルロード の う ち、 多 く の操作の代わ り に使用でき ます)。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 18- 3

アクセス制限な し 公開

Page 386: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

命令のタ イ ミ ング

ビ ッ ト フ ィ ール ド操作

32 1 BFI、 BFC、 UBFX、 SBFX。 これらはビ ッ ト 単位の操作で、 ビ ッ ト 内での位置およびサイ ズの制御を許可し ます。 C/C++ の (構造体の) ビ ッ ト フ ィ ール ド操作や、 その他多 く の比較および一部の AND/OR代入式をサポー ト し ます。

3 つのレジスタ を使用するデータ操作

32 1 (PC がデステ ィ ネー

シ ョ ンの場合は +Pa)

ADC{S}。 ADD{S}、 CMN、 RSB{S}、 SBC{S}、 SUB{S}、CMP、 AND{S}、 TST、 BIC{S}、 EOR{S}、 TEQ、ORR{S}、 MOV{S}、 ORN{S}、 MVN{S}。 PKxxx 命令は含まれません。

シフ ト 操作 32 1 ASR{S}、 LSL{S}、 LSR{S}、 ROR{S}、 RRX{S}

その他の命令 32 1 REV、 REV16、 REVSH、 RBIT、 CLZ、 SXTB、 SXTH、UXTB、 UXTH。 対応する ARMv6 16 ビ ッ ト 命令 と同じ拡張機能命令です。

テーブル分岐 16 4+Pa switch/case を使用する場合のテーブル分岐。 これらはシフ ト し てレジス タにロード (LDR) し た後に分岐です。

乗算 32 1 または 2 MUL、 MLA、 MLS。 MUL は 1 サイ クルで、 MLA とMLS は 2 サイ クルです。

結果が 64 ビ ット の乗算

32 3-7c UMULL、 SMULL、 UMLAL、 SMLAL。 サイ クル数は入力のサイ ズによ って異な り ます。 つま り 、 ABS(入力) < 64K の場合は早 く 終了し ます。

ロード / ス トアのア ド レ ス方式

32 - ア ド レ ス方式のフ ォーマ ッ ト は、 PC +/- imm12、Rbase + imm12、 Rbase +/- imm8、 およびシフ ト などのレジス タの調整をサポー ト し ています。 命令に Tが付 く バ リ エーシ ョ ンは特権モード で使用されます。

単一ロード / ス ト ア

32 2b (PC がデステ ィ ネー

シ ョ ンの場合は +Pa)

LDR、 LDRB、 LDRSB、 LDRH、 LDRSH、 STR、STRB、 STRH、 T バ リ アン ト 。 PLD および PLI は両方と も ヒ ン ト 命令なので、 NOP と し て動作し ます。

複数ロード / ス ト ア

32 1+Nb (PC がロード され

る場合は +Pa)

STM、 LDM、 LDRD、 STRD

特殊な ロード/ ス ト ア

32 1+Nb LDREX、 STREX、 LDREXB、 LDREXH、 STREXB、STREXH、 CLREX。 ローカルモニ タ (IMP DEF) がない場合、 これらはフ ォール ト を発生し ます。LDREXD および STREXD は、 このプロ フ ァ イルに含まれていません。

テーブル 18- 1 命令のタ イ ミ ング (続 く )

命令の種類 サイズ サイ クル数 説明

18- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 387: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

命令のタ イ ミ ング

分岐 32 1+Pa B、 BL、 B<cond>。 状態が常に変化するため、 BLX (1) は含まれません。 BXJ はあ り ません。

システム 32 1-2 MSR(2) および MRS(2) は MSR/MRS を置き換えて、よ り 高度な動作を し ます。 これらは、 他のス タ ッ クおよびステータ ス レジス タにも ア ク セス し ます。

CPSIE/CPSID の 32 ビ ッ ト 形式はサポー ト されていません。

RFE および SRS はあ り ません。

システム 16 1-2 CPSIE および CPSID は MSR(2) 命令の短縮バージ ョンで、 標準 Thumb エン コーデ ィ ングを使用し ます。しかし a はな く 、 i (PRIMASK) および f (FAULTMASK) の使用のみを許可し ます。

32 ビ ッ ト 拡張 32 1 NOP および YIELD ( ヒ ン ト NOP)。 MRS(1)、MSR(1)、 SUBS (PC 復帰 リ ン ク) は含まれません。

結合分岐 16 1+Pa CBZ

拡張 16 0-1d IT および NOP (YIELD を含む)

除算 32 2-12e SDIV および UDIV。 32/32 は、 符号付きおよび符号な しの値を除算し て、 32 ビ ッ ト 商の結果を生成します (余 り は減算によ り 導出でき るため、 生成されません)。 被除数 と除数のサイ ズが近い場合、 これによ り 時間が短縮されます。

ス リ ープ 32 1+Wf WFI、 WFE、 SEV は、 ヒ ン ト のあ る NOP 命令のクラ スにはい り 、 ス リ ープ動作を制御し ます。

バ リ ア 16 1+Bg ISB、 DSB、 DMB はバ リ ア命令で、 次の命令が実行される前に、 確実にあ る動作が完了し ている こ と を保証し ます。

飽和 32 1 SSAT および USAT は、 レジス タで飽和を実行し ます。 これらは 3 つのタ ス ク を実行し ます。 シフ ト を使用し て値を正規化し、 選択されたビ ッ ト 位置からのオーバフ ロー (Q 値) をテス ト し、 xPSR の Qビ ッ ト をセ ッ ト し ます。 飽和 と は、 選択されたサイズに対し て、 大の符号な しの値、 または 大 / 小の符号付きの値を指し ます。

テーブル 18- 1 命令のタ イ ミ ング (続 く )

命令の種類 サイズ サイ クル数 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 18- 5

アクセス制限な し 公開

Page 388: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

命令のタ イ ミ ング

サイ クル数の記号は、 次の意味を表し ます。

• P = パイプラ イ ンの リ ロード

• N = エレ メ ン ト の数

• W = ス リ ープウ ェ イ ト

• B = バ リ ア ク リ ア ラ ン ス

一般に、 テーブル 18- 1 p. 18- 3 に示されている よ う に、 各命令は実行を開始する ために 1 サイ クル (1 コ ア ク ロ ッ ク) を使用し ます。 フ ェ ッチのス ト ールのために、 追加のサイ クルが使用される こ と があ り ます。

a. 分岐は、 命令のために 1 サイ クル、 続いて ターゲ ッ ト 命令のパイプラ イ ン リ ロード のために 1 サイ クルを使用

し ます。 分岐が行われなかった場合は、 合計で 1 サイ クルです。 イ ミ デ ィ エー ト 値を使用し た分岐が行われた

場合、 通常は 1 サイ クルのパイプラ イ ン リ ロード (合計 2 サイ クル) です。 レジス タオペラ ン ド を使用し た分

岐が行われた場合、 通常は 2 サイ クルのパイプラ イ ン リ ロード (合計 3 サイ クル) です。 アンア ラ イ ン ド な 32

ビ ッ ト 命令へ分岐する場合と 、 低速の メ モ リ へア ク セスする場合、 パイプラ イ ンの リ ロード時間は長 く な り ま

す。 低速なシステムでは、 プ リ ロード を許可する ための分岐 ヒ ン ト を コード バスへ発行でき ます。 これによ り 、

遅い メ モ リ に対する分岐ターゲ ッ ト ペナルテ ィ を低減する こ と ができ ますが、 こ こに示された ものよ り 少な く

する こ と はでき ません。

b. 一般的には、 ロード / ス ト ア命令は 初のア ク セスは 2 サイ クル、 それ以降の各ア ク セスは 1 サイ クルで実行

されます。 イ ミ デ ィ エー ト オフセ ッ ト を使用する ス ト アの場合は、 1 サイ クルで実行されます。

c. UMULL/SMULL/UMLAL/SMLAL は、 ソースの値のサイ ズに応じ て早期終了を行います。 これらは、 割 り 込み可

能 (破棄 / 再始動) で、 レ イ テンシは 長で も 1 サイ クルです。 MLAL バージ ョ ンは 4 ~ 7 サイ クルで、 MULL

バージ ョ ンは 3 ~ 5 サイ クルでそれぞれ実行されます。 MLAL の場合、 符号付きバージ ョ ンは符号な しバージ ョ

ン よ り 1 サイ クル長 く な り ます。

d. IT 命令はフ ォール ド可能です。

e. DIV タ イ ミ ングは、 被除数と 除数に依存し ます。 DIV は、 割 り 込み可能 (破棄 / 再始動) で、 レ イ テンシは 長

で も 1 サイ クルです。 被除数 と除数がほぼ同じサイ ズの場合、 除算は少ないサイ クル数で終了し ます。 除数が

被序数よ り 長い場合や除数が 0 の場合、 時間は 短にな り ます。 除数が 0 の場合は (フ ォール ト ではな く ) 0 が

返されますが、 こ のケース をキ ャ ッ チする ためにデバッ グ ト ラ ッ プを利用する こ と ができ ます。

f. ス リ ープは命令自体に 1 サイ クルを使用し、 それにス リ ープのサイ クルが必要な分だけ加わ り ます。 イベン ト

がパス し た場合、 WFE は 1 サイ クルのみを使用し ます。 WFI の開始と 同時に割 り 込みが発生し て保留された場

合を除き、 WFI は通常 1 サイ クルよ り 多 く を使用し ます。

g. ISB は 1 サイ クルで実行されます (分岐と し て動作)。 データがラ イ ト バッ フ ァ または LSU で保留されない限 り 、

DMB と DSB も 1 サイ クルで実行されます。 バ リ ア中に割 り 込みが発生し た場合は、 破棄 / 再始動されます。

18- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 389: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

命令のタ イ ミ ング

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

このセ ク シ ョ ンでは、 どのよ う に命令をペアにするのが 適かについて説明し ます。 これによ り 、 よ り 時間が短縮されます。

• STR Rx,[Ry,#imm] は、 常に 1 サイ クルです。 これは、 ア ド レ ス生成は初のサイ クルで実行され、 データ ス ト アは次の命令の実行 と同時に行われる ためです。 ス ト アバッ フ ァ がフルの と きに、 そのス ト アバッ フ ァ に対し てス ト アが行われた場合、 次の命令はス ト アが完了する まで遅延します。 ス ト アがコード セグ メ ン ト など、 ス ト アバッ フ ァ以外に対し て実行され、 その ト ラ ンザク シ ョ ンがス ト ールし た場合は、 完了前に別のロード / ス ト ア操作が実行された場合のみ、 タ イ ミ ングへの影響が発生し ます。

• LDR Rx!,[any] は、 通常はパイプラ イ ン処理されません。 つま り 、 ベース更新ロー ド には通常、 低で も 2 サイ クルが使用されます (ス ト ールした場合はよ り 長 く な り ます)。 しかし、 次の命令がレジス タからの読み出し を必要 と し ない場合、 ロード は 1 サイ クルに短縮されます。 レジスタ を読み出さ ない命令には、 CMP、 TST、 NOP、 および IT 制御の命令が実行されない場合が含まれます。

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

• フ ェ ッチユニ ッ ト と の競合が原因で、 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 サイ クル

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 18- 7

アクセス制限な し 公開

Page 390: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

命令のタ イ ミ ング

— 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 のよ う に扱われる ためで、 STREX はLDR の説明と同じ よ う にパイプラ イ ン処理する こ と ができ ます。LDREX も同様に、 LDR と全 く 同じ よ う に扱われるので、 パイプラ イ ン処理する こ と ができ ます。

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

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

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

18- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 391: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

19 章 AC 特性

本章では、 プロセ ッ サのタ イ ミ ングパラ メ ータについて説明し ます。 本章は以下のセ ク シ ョ ンから構成されています。

• プロセ ッ サのタ イ ミ ングパラ メ ータ p. 19- 2

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 19- 1

アクセス制限な し 公開

Page 392: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC 特性

19.1 プロセ ッサのタ イ ミ ングパラ メ ータ

こ のセ ク シ ョ ンでは、 プロセ ッ サの入出力ポー ト のタ イ ミ ングパラ メ ータについて説明し ます。 テーブル 19- 1 ~テーブル 19- 16 p. 19- 10 は、 SoC に適用される各プロセ ッ サ信号のタ イ ミ ングパラ メ ータ、 または各種制約条件による遅延の 大値を、 パーセンテージで示し ています。 入力遅延と出力遅延の列は、 各信号に関し て SoC に入力されるプロセ ッ サの ク ロ ッ クサイ クルに対する 大時間 と 小時間の割合を示し ています。

19.1.1 入出力ポー ト のタ イ ミ ングパラ メ ータ

その他の入力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 1 に示し ます。

低電力入力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 2 に示し ます。

テーブル 19- 1 その他の入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 10% PORESETn

ク ロ ッ ク の不確定分 10% SYSRESETn

ク ロ ッ ク の不確定分 50% BIGEND

ク ロ ッ ク の不確定分 50% EDBGRQ

ク ロ ッ ク の不確定分 50% STCLK

ク ロ ッ ク の不確定分 50% STCALIB[25:0]

ク ロ ッ ク の不確定分 50% RXEV

ク ロ ッ ク の不確定分 50% AUXFAULT[31:0]

ク ロ ッ ク の不確定分 10% IFLUSH

ク ロ ッ ク の不確定分 50% PPBLOCK[5:0]

テーブル 19- 2 低電力入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 50% SLEEPHOLDREQn

ク ロ ッ ク の不確定分 50% WICDSREQn

19- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 393: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC特性

割 り 込み入力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 3 に示し ます。

ア ド バン ス ト ハイパフ ォーマン ス バス (AHB) ポー ト のタ イ ミ ングパラ メ ータを、 テーブル 19- 4 に示し ます。

テーブル 19- 3 割り込み入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 50% INTISR[239:0]

ク ロ ッ ク の不確定分 50% INTNMI

ク ロ ッ ク の不確定分 20% VECTADDR[9:0]

ク ロ ッ ク の不確定分 20% VECTADDREN

テーブル 19- 4 AHB 入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 10% DNOTITRANS

ク ロ ッ ク の不確定分 50% HRDATAI[31:0]

ク ロ ッ ク の不確定分 50% HREADYI

ク ロ ッ ク の不確定分 50% HRESPI[1:0]

ク ロ ッ ク の不確定分 50% HRDATAD[31:0]

ク ロ ッ ク の不確定分 50% HREADYD

ク ロ ッ ク の不確定分 50% HRESPD[1:0]

ク ロ ッ ク の不確定分 50% EXRESPD

ク ロ ッ ク の不確定分 50% HRDATAS[31:0]

ク ロ ッ ク の不確定分 50% HREADYS

ク ロ ッ ク の不確定分 50% HRESPS[1:0]

ク ロ ッ ク の不確定分 50% EXRESPS

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 19- 3

アクセス制限な し 公開

Page 394: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC 特性

専用ペ リ フ ェ ラルバス (PPB) ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 5 に示し ます。

デバッ グ入力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 6 に示し ます。

テーブル 19- 5 PPB 入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 50% PRDATA[31:0]

ク ロ ッ ク の不確定分 50% PREADY

ク ロ ッ ク の不確定分 50% PSLVERR

テーブル 19- 6 デバッ グ入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 10% nTRST

ク ロ ッ ク の不確定分 50% SWDITMS

ク ロ ッ ク の不確定分 50% TDI

ク ロ ッ ク の不確定分 50% DAPRESETn

ク ロ ッ ク の不確定分 50% DAPSEL

ク ロ ッ ク の不確定分 50% DAPEN

ク ロ ッ ク の不確定分 50% DAPENABLE

ク ロ ッ ク の不確定分 50% DAPCLKEN

ク ロ ッ ク の不確定分 50% DAPWRITE

ク ロ ッ ク の不確定分 50% DAPABORT

ク ロ ッ ク の不確定分 50% DAPADDR[31:0]

ク ロ ッ ク の不確定分 50% DAPWDATA[31:0]

ク ロ ッ ク の不確定分 50% ATREADY

ク ロ ッ ク の不確定分 50% DBGRESTART

ク ロ ッ ク の不確定分 50% FIXHMASTERTYPE

19- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 395: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC特性

テス ト 入力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 7 に示し ます。

エンベデッ ド ト レース マ ク ロセル (ETM) のタ イ ミ ングパラ メ ータ を、 テーブル 19- 8 に示し ます。

その他の出力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 9 に示し ます。

テーブル 19- 7 テス ト 入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 10% SE

ク ロ ッ ク の不確定分 10% SI

ク ロ ッ ク の不確定分 10% RSTBYPASS

ク ロ ッ ク の不確定分 10% CGBYPASS

ク ロ ッ ク の不確定分 10% WSII

ク ロ ッ ク の不確定分 10% WSOI

テーブル 19- 8 ETM 入力ポー ト のタ イ ミ ングパラ メ ータ

最小入力遅延 最大入力遅延 信号名

ク ロ ッ ク の不確定分 30% ETMPWRUP

ク ロ ッ ク の不確定分 50% ETMFIFOFILL

テーブル 19- 9 その他の出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ ク の不確定分 50% LOCKUP

ク ロ ッ ク の不確定分 50% SYSRESETREQ

ク ロ ッ ク の不確定分 50% BRCHSTAT[3:0]

ク ロ ッ ク の不確定分 50% HALTED

ク ロ ッ ク の不確定分 50% TXEV

ク ロ ッ ク の不確定分 50% ATIDITM[6:0]

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 19- 5

アクセス制限な し 公開

Page 396: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC 特性

低電力出力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 10 に示し ます。

AHB 出力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 11 に示し ます。

ク ロ ッ クの不確定分 50% CURRPRI[7:0]

ク ロ ッ クの不確定分 70% TRCENA

ク ロ ッ クの不確定分 50% INTERNALSTATE

テーブル 19- 10 低電力出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ ク の不確定分 50% SLEEPING

ク ロ ッ ク の不確定分 50% SLEEPDEEP

ク ロ ッ ク の不確定分 50% SLEEPHOLDACKn

ク ロ ッ ク の不確定分 50% WICLOAD

ク ロ ッ ク の不確定分 50% WICCLEAR

ク ロ ッ ク の不確定分 50% WICDSACKn

ク ロ ッ ク の不確定分 50% WICMASKNMI

ク ロ ッ ク の不確定分 50% WICMASKMON

ク ロ ッ ク の不確定分 50% WICMASKISR

ク ロ ッ ク の不確定分 50% WICMASKRXEV

テーブル 19- 11 AHB 出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ ク の不確定分 50% HTRANSI[1:0]

ク ロ ッ ク の不確定分 50% HSIZEI[2:0]

ク ロ ッ ク の不確定分 50% HPROTI[3:0]

ク ロ ッ ク の不確定分 50% MEMATTRI[1:0]

テーブル 19- 9 その他の出力ポー ト のタ イ ミ ングパラ メ ータ (続 く )

最小出力遅延 最大出力遅延 信号名

19- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 397: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC特性

ク ロ ッ ク の不確定分 50% HBURSTI[2:0]

ク ロ ッ ク の不確定分 50% HADDRI[31:0]

ク ロ ッ ク の不確定分 50% HMASTERD[1:0]

ク ロ ッ ク の不確定分 50% HTRANSD[1:0]

ク ロ ッ ク の不確定分 50% HSIZED[2:0]

ク ロ ッ ク の不確定分 50% HPROTD[3:0]

ク ロ ッ ク の不確定分 50% MEMATTRD[1:0]

ク ロ ッ ク の不確定分 50% EXREQD

ク ロ ッ ク の不確定分 50% HBURSTD[2:0]

ク ロ ッ ク の不確定分 50% HADDRD[31:0]

ク ロ ッ ク の不確定分 50% HWDATAD[31:0]

ク ロ ッ ク の不確定分 50% HWRITED

ク ロ ッ ク の不確定分 50% HMASTERS[1:0]

ク ロ ッ ク の不確定分 50% HTRANSS[1:0]

ク ロ ッ ク の不確定分 50% HSIZES[2:0]

ク ロ ッ ク の不確定分 50% HPROTS[3:0]

ク ロ ッ ク の不確定分 50% MEMATTRS[1:0]

ク ロ ッ ク の不確定分 50% EXREQS

ク ロ ッ ク の不確定分 50% HBURSTS[2:0]

ク ロ ッ ク の不確定分 50% HMASTLOCKS

ク ロ ッ ク の不確定分 50% HADDRS[31:0]

ク ロ ッ ク の不確定分 50% HWDATAS[31:0]

ク ロ ッ ク の不確定分 50% HWRITES

テーブル 19- 11 AHB 出力ポー ト のタ イ ミ ングパラ メ ータ (続 く )

最小出力遅延 最大出力遅延 信号名

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 19- 7

アクセス制限な し 公開

Page 398: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC 特性

PPB 出力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 12 に示し ます。

デバッ グ イ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 13 に示し ます。

テーブル 19- 12 PPB 出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ クの不確定分 50% PADDR31

ク ロ ッ クの不確定分 50% PADDR[19:2]

ク ロ ッ クの不確定分 50% PSEL

ク ロ ッ クの不確定分 50% PENABLE

ク ロ ッ クの不確定分 50% PWRITE

ク ロ ッ クの不確定分 50% PWDATA[31:0]

テーブル 19- 13 デバッ グイ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ ク の不確定分 50% SWV

ク ロ ッ ク の不確定分 50% TRACECLK

ク ロ ッ ク の不確定分 50% TRACEDATA[3:0]

ク ロ ッ ク の不確定分 50% TDO

ク ロ ッ ク の不確定分 50% SWDO

ク ロ ッ ク の不確定分 50% nTDOEN

ク ロ ッ ク の不確定分 50% SWDOEN

ク ロ ッ ク の不確定分 50% DAPREADY

ク ロ ッ ク の不確定分 50% DAPSLVERR

ク ロ ッ ク の不確定分 50% DAPRDATA[31:0]

ク ロ ッ ク の不確定分 50% ATVALID

19- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 399: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC特性

ETM イ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 14に示し ます。

ク ロ ッ クの不確定分 50% AFREADY

ク ロ ッ クの不確定分 50% ATDATA[7:0]

ク ロ ッ クの不確定分 50% DBGRESTARTED

テーブル 19- 14 ETM イ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ ク の不確定分 30% ETMTRIGGER[3:0]

ク ロ ッ ク の不確定分 30% ETMTRIGINOTD[3:0]

ク ロ ッ ク の不確定分 30% ETMIVALID

ク ロ ッ ク の不確定分 30% ETMDVALID

ク ロ ッ ク の不確定分 30% ETMFOLD

ク ロ ッ ク の不確定分 30% ETMCANCEL

ク ロ ッ ク の不確定分 30% ETMIA[31:1]

ク ロ ッ ク の不確定分 30% ETMICCFAIL

ク ロ ッ ク の不確定分 30% ETMIBRANCH

ク ロ ッ ク の不確定分 30% ETMIINDBR

ク ロ ッ ク の不確定分 30% ETMFLUSH

ク ロ ッ ク の不確定分 30% ETMFINDBR

ク ロ ッ ク の不確定分 30% ETMINTSTAT[2:0]

ク ロ ッ ク の不確定分 30% ETMINTNUM[8:0]

ク ロ ッ ク の不確定分 30% ETMISTALL

ク ロ ッ ク の不確定分 30% DSYNC

テーブル 19- 13 デバッ グイ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ (続 く )

最小出力遅延 最大出力遅延 信号名

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. 19- 9

アクセス制限な し 公開

Page 400: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

AC 特性

AHB ト レースマ ク ロセル (HTM) イ ン タ フ ェース出力ポー ト のタ イ ミ ングパラメ ータ を、 テーブル 19- 15 に示し ます。

テス ト 出力ポー ト のタ イ ミ ングパラ メ ータ を、 テーブル 19- 16 に示し ます。

テーブル 19- 15 HTM イ ン タ フ ェース出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ ク の不確定分 50% HTMDHADDR[31:0]

ク ロ ッ ク の不確定分 50% HTMDHTRANS[1:0]

ク ロ ッ ク の不確定分 50% HTMDHSIZE[2:0]

ク ロ ッ ク の不確定分 50% HTMDHBURST[2:0]

ク ロ ッ ク の不確定分 50% HTMDHPROT[3:0]

ク ロ ッ ク の不確定分 50% HTMDHWDATA[31:0]

ク ロ ッ ク の不確定分 50% HTMDHWRITE

ク ロ ッ ク の不確定分 50% HTMDHRDATA[31:0]

ク ロ ッ ク の不確定分 50% HTMDHREADY

ク ロ ッ ク の不確定分 50% HTMDHRESP[1:0]

テーブル 19- 16 テス ト 出力ポー ト のタ イ ミ ングパラ メ ータ

最小出力遅延 最大出力遅延 信号名

ク ロ ッ ク の不確定分 10% SO

ク ロ ッ ク の不確定分 10% WSOO

ク ロ ッ ク の不確定分 10% WSIO

19- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 401: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

付録 A 信号の説明

この付録では、 プロセ ッ サイ ン タ フ ェースの信号を一覧表記し、 説明を加えます。 本章は以下のセ ク シ ョ ンから構成されています。

• ク ロ ッ ク p. A- 2

• リ セ ッ ト p. A- 3

• その他の命令 p. A- 4

• 割 り 込みイ ン タ フ ェースの信号 p. A- 6

• 低電力イ ン タ フ ェース p. A- 7

• ICode イ ン タ フ ェース p. A- 8

• DCode イ ン タ フ ェース p. A- 9

• システムバス イ ン タ フ ェース p. A- 10

• 専用ペ リ フ ェ ラルバス イ ン タ フ ェース p. A- 11

• ITM イ ン タ フ ェース p. A- 12

• AHB-AP イ ン タ フ ェース p. A- 13

• ETM イ ン タ フ ェース p. A- 14

• AHB ト レースマ ク ロセル イ ン タ フ ェース p. A- 16

• テス ト イ ン タ フ ェース p. A- 17

• WIC イ ン タ フ ェース p. A- 18

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 1

アクセス制限な し 公開

Page 402: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.1 ク ロ ッ ク

ク ロ ッ ク信号の一覧を、 テーブル A- 1 に示し ます。

テーブル A- 1 ク ロ ッ ク信号

名前 方向 説明

HCLK 入力 メ イ ン Cortex-M3 ク ロ ッ ク

FCLK 入力 フ リ ーラ ン Cortex-M3 ク ロ ッ ク

DAPCLK 入力 AHB-AP ク ロ ッ ク

A- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 403: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.2 リ セ ッ ト

リ セ ッ ト 信号の一覧を、 テーブル A- 2 に示し ます。

テーブル A- 2 リ セ ッ ト 信号

名前 方向 説明

PORESETn 入力 パワーオン リ セ ッ ト 。 全 Cortex-M3 システムを リ セ ッ ト し ます。

SYSRESETn 入力 システム リ セ ッ ト 。 プロセ ッ サ、 NVIC の非デバッ グ部分、 バスマ ト リ ッ クス、 MPU を リ セ ッ ト し ます。 デバッ グ コ ンポーネン ト は リ セ ッ ト されません。

SYSRESETREQ 出力 システム リ セ ッ ト 要求

DAPRESETn 入力 AHB-AP リ セ ッ ト

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 3

アクセス制限な し 公開

Page 404: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.3 その他の命令

その他の信号の一覧を、 テーブル A- 3 に示し ます。

テーブル A- 3 その他の信号

名前 方向 説明

LOCKUP 出力 LOCKUP によ り 、 カーネルソ フ ト ウ ェアに重大な誤 り のあ る こ とが直ちに示されます。 これは、 プロセ ッ サに組み込まれている システム状態保護ハード ウ ェ アの起動に続 く 、 回復不能な例外によ って発生する コ アのロ ッ ク ア ッ プの結果です。 ARMv7-M のアーキテ クチャにおける ロ ッ ク ア ッ プ条件の詳細については、『ARMv7-M アーキテ クチャ リ フ ァ レ ン スマニュ アル』 を参照し て下さい。

CURRPRI[7:0] 出力 現在使用されている割 り 込みの優先度 (またはベースブース ト )を示し ます。 CURRPRI は横取 り 優先度を表し てお り 、 2 次的な優先度は示し ていません。

HALTED 出力 ホール ト デバッ グ モード。 HALTED は、 コ アがデバッ グ中はアサー ト 状態に維持されます。

DBGRESTARTED 出力 DBGRESTART のハン ド シェーク

TXEV 出力 SEV 命令の結果と し て送信される イベン ト 。 これは単一サイ クルパルスです。

TRCENA 出力 ト レース イネーブル。 この信号は、 デバッ グ例外およびモニ タ制御レジス タのビ ッ ト [24] の設定を反映し ます。 こ の信号は TPIU および ETM ブロ ッ クへのク ロ ッ ク をゲー ト し て、 ト レースが禁止されている と きに電力消費を低減させます。

INTERNALSTATE[148:0] 出力 内部状態

BIGEND 入力 静的なエンデ ィ アン形式の選択は以下の とお り です。

1 = ビ ッ グエンデ ィ アン

0 = リ ト ルエンデ ィ アン

この信号は リ セ ッ ト 時にサンプ リ ング され、 リ セ ッ ト が非ア クテ ィ ブの と きは変更でき ません。

EDBGRQ 入力 外部デバッ グ要求

PPBLOCK[5:0] 入力 予約。 6'b000000 に固定する必要があ り ます。

STCLK 入力 システム テ ィ ッ ク ク ロ ッ ク

STCALIB[25:0] 入力 システムテ ィ ッ ク較正

RXEV 入力 WFE 命令からのウ ェーク ア ッ プを引き起こ し ます。

A- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 405: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

VECTADDR[9:0] 入力 予約。 10'b0000000000 に固定する必要があ り ます。

VECTADDREN 入力 予約。 1'b0 に固定する必要があ り ます。

DNOTITRANS 入力 ICode および DCode の AHB ト ラ ンザク シ ョ ンが同時に発生し ないよ う にプロセ ッ サを強制設定する、 静的なタ イオフ。 これによ り 、単純なバスマルチプレ ク サをプロセ ッ サの外部に接続する こ と ができ ます。

AUXFAULT[31:0] 入力 システムからの補助フ ォール ト ステータ ス情報

IFLUSH 入力 予約。 命令フ ラ ッ シュ、 0 に固定する必要があ り ます。

DBGRESTART 入力 外部からの再始動要求

テーブル A- 3 その他の信号 (続 く )

名前 方向 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 5

アクセス制限な し 公開

Page 406: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.4 割り込みイ ン タ フ ェース

外部割 り 込みイ ン タ フ ェースの信号の一覧を、 テーブル A- 4 に示し ます。

テーブル A- 4 割り込みイ ン タ フ ェースの信号

名前 方向 説明

INTISR[239:0] 入力 外部割 り 込み信号

INTNMI 入力 マス ク不能割 り 込み

A- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 407: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.5 低電力イ ン タ フ ェ ース

低電力イ ン タ フ ェースの信号の一覧を、 テーブル A- 5 に示し ます。

テーブル A- 5 低電力イ ン タ フ ェースの信号

名前 方向 説明

SLEEPDEEP 出力 Cortex-M3 ク ロ ッ ク を停止でき る こ と を示し ます。

SLEEPING 出力 Cortex-M3 ク ロ ッ ク を停止でき る こ と を示し ます。

SLEEPHOLDACKn 出力 SLEEPHOLDREQn の応答信号

WICMASKISR 出力 どの割 り 込みがウ ェーク ア ッ プを引き起こすかを示す WIC ア ク テ ィ ブHIGH セ ッ ト の信号セ ッ ト

WICMASKMON 出力 デバッ グモニ タがウ ェーク ア ッ プを引き起こすこ と を示す WIC ア クテ ィ ブ HIGH 信号

WICMASKNMI 出力 NMI がウ ェーク ア ッ プを引き起こすこ と を示す WIC ア ク テ ィ ブ HIGH信号

WICMASKRXEV 出力 RXEV がウ ェーク ア ッ プを引き起こすこ と を示す WIC ア ク テ ィ ブ HIGH信号

WICLOAD 出力 WIC に、 WICMASK によ って与え られた感知度データ を ロード し ます*。

WICCLEAR 出力 レジス ト されている感知度データ を WIC から ク リ ア し ます。

WICDSACKn 出力 WICDSREQn を受け付け、 SLEEPDEEP が WIC モード のス リ ープであ るこ と を示す信号 (ア ク テ ィ ブ LOW)

SLEEPHOLDREQn 入力 ス リ ープを延長する要求。 SLEEPING が HIGH の と きのみアサー ト できます。

WICDSREQn 入力 SLEEPDEEP を WIC モード ス リ ープにする こ と を WIC から要求するWIC 信号 (ア ク テ ィ ブ LOW)

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 7

アクセス制限な し 公開

Page 408: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.6 ICode イ ン タ フ ェース

ICode イ ン タ フ ェースの信号の一覧を、 テーブル A- 6 に示し ます。

テーブル A- 6 ICode イ ン タ フ ェース

名前 方向 説明

HADDRI[31:0] 出力 32 ビ ッ ト 命令ア ド レ スバス

HTRANSI[1:0] 出力 現在の転送が IDLE または NONSEQUENTIAL であ るかど う かを示し ます。

HSIZEI[2:0] 出力 命令フ ェ ッチのサイ ズを示し ます。 Cortex-M3 では、 命令フ ェ ッチはすべて 32 ビ ッ ト です。

HBURSTI[2:0] 出力 転送がバース ト の一部かど う かを示し ます。 Cortex-M3 では、 命令フ ェ ッチおよびベク タ テーブル ロード はすべて SINGLE と し て実行されます。

HPROTI[3:0] 出力 ア ク セスに関する情報を提供し ます。 このバス上では、 キ ャ ッ シュ可かつバッ フ ァ不可であ る こ と が常に示されています。

HPROTI[0] = 0 は命令フ ェ ッチを示し ます。

HPROTI[0] = 1 はベク タ フ ェ ッチを示し ます。

MEMATTRI[1:0] 出力 メ モ リ 属性。 このバス (共有不可、 割 り 当て) では常時 01 です。

BRCHSTAT[3:0] 出力 現在および次の AHB フ ェ ッチ要求に関する ヒ ン ト 情報を提供し ます。 条件付きオペコード は推測であ り 、 後で破棄される可能性があ り ます。

0000 ヒ ン ト な し

0001 デコード時の条件付き後方分岐

0010 デコード時の条件付き分岐

0011 実行時の条件付き分岐

0100 デコード時の無条件分岐

0101 実行時の無条件分岐

0110 予約

0111 予約

1000 デコード時の条件付き分岐が実行された場合 (IHTRANS 後のサイ クル)

1001 ... 1111 予約

HRDATAI[31:0] 入力 命令読み出しバス

HREADYI 入力 HIGH の場合は、 バス上で転送が完了し た こ と を示し ます。 この信号をLOW に駆動する と、 転送が延長されます。

HRESPI[1:0] 入力 転送応答ステータ ス。 OKAY または ERROR です。

A- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 409: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.7 DCode イ ン タ フ ェース

DCode イ ン タ フ ェースの信号の一覧を、 テーブル A- 7 に示し ます。

テーブル A- 7 DCode イ ン タ フ ェース

名前 方向 説明

HADDRD[31:0] 出力 32 ビ ッ ト データ ア ド レ スバス

HTRANSD[1:0] 出力 現在の転送が IDLE、 NONSEQUENTIAL、 SEQUENTIAL のどれであ るかを示し ます。

HWRITED 出力 書き込み、 読み出しではあ り ません。

HSIZED[2:0] 出力 ア ク セスのサイ ズを示し ます。 値は 8、 16、 32 ビ ッ ト のいずれかです。

HBURSTD[2:0] 出力 転送がバース ト の一部かど う かを示し ます。 Cortex-M3 では、 データ ア クセスは INCR と し て実行されます。

HPROTD[3:0] 出力 ア ク セスに関する情報を提供し ます。 このバス上では、 キ ャ ッ シュ可かつバッ フ ァ不可であ る こ と が常に示されています。

EXREQD 出力 排他要求

MEMATTRD[1:0] 出力 メ モ リ 属性

このバス (共有不可、 割 り 当て) では常時 01 です。

HMASTERD[1:0] 出力 現在の DCode バスマス タ を示し ます。

• 0 = コ アデータ側ア ク セス

• 1 = DAP ア ク セス

• 2 = コ アの命令側ア ク セス。 これには、 HPROTD[0] によ ってデータと し てマーク されるベク タ フ ェ ッチが含まれます。 この値はHMASTERD では出現し ません。

• 3 = 予約。 この値は HMASTERD では出現し ません。

HWDATAD[31:0] 出力 32 ビ ッ ト の書き込みデータバス

HREADYD 入力 HIGH の場合は、 バス上で転送が完了し た こ と を示し ます。 この信号をLOW に駆動する と、 転送が延長されます。

HRESPD[1:0] 入力 転送応答ステータ ス。 OKAY または ERROR です。

HRDATAD[31:0] 入力 読み出しデータ

EXRESPD 入力 排他応答

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 9

アクセス制限な し 公開

Page 410: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.8 システムバス イ ン タ フ ェース

システムバス イ ン タ フ ェースの信号の一覧を、 テーブル A- 8 に示し ます。

テーブル A- 8 システムバス イ ン タ フ ェース

名前 方向 説明

HADDRS[31:0] 出力 32 ビ ッ ト のア ド レ ス

HTRANSS[1:0] 出力 現在の転送のタ イプを示し ます。 こ の出力の値は IDLE、NONSEQUENTIAL、 SEQUENTIAL のいずれかです。

HSIZES[2:0] 出力 ア ク セスのサイ ズを示し ます。 値は 8、 16、 32 ビ ッ ト のいずれかです。

HBURSTS[2:0] 出力 転送がバース ト の一部かど う かを示し ます。

HPROTS[3:0] 出力 ア ク セスに関する情報を提供し ます。

HWDATAS[31:0] 出力 32 ビ ッ ト の書き込みデータバス

HWRITES 出力 書き込み、 読み出しではあ り ません。

HMASTLOCKS 出力 バス上で不可分であ る必要があ る ト ラ ンザク シ ョ ンを示し ます。 これはビ ッ ト バン ド書き込みに対し てのみ使用されます (読み出し - 変更 - 書き込みと し て実行)。

EXREQS 出力 排他要求

MEMATTRS[1:0] 出力 メ モ リ 属性。 ビ ッ ト 0 = 割 り 当て、 ビ ッ ト 1 = 共有可

HMASTERS[1:0] 出力 現在のシステムバス マス タ を示し ます。

• 0 = コ アのデータ側ア ク セス、 または MasterType が 0 に設定されたDAP ア ク セス。

• 1 = MasterType が 1 に設定された DAP のア ク セス。

• 2 = コ アの命令側ア ク セス。 これには、 HPROTS[0] によ ってデータ とし てマーク されるベク タ フ ェ ッチが含まれます。

• 3 = 予約。 こ の値は HMASTERS では出現し ません。

HRDATAS[31:0] 入力 読み出しデータバス

HREADYS 入力 HIGH の場合は、 バス上で転送が完了し た こ と を示し ます。 こ の信号をLOW に駆動する と、 転送が延長されます。

HRESPS[1:0] 入力 転送応答ステータ ス。 OKAY または ERROR です。

EXRESPS 入力 排他応答

A- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 411: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.9 専用ペ リ フ ェ ラルバス イ ン タ フ ェース

専用ペ リ フ ェ ラルバス イ ン タ フ ェースの信号の一覧を、 テーブル A- 9 に示します。

テーブル A- 9 専用ペ リ フ ェ ラルバス イ ン タ フ ェース

名前 方向 説明

PADDR[19:2] 出力 17 ビ ッ ト のア ド レ ス。 外部専用ペ リ フ ェ ラルバスに関連する ビ ッ ト のみが駆動されます。

PADDR31 出力 この信号は、 AHB-AP が要求側マス タの場合に HIGH に駆動されます。DCore が要求側マス タの場合は LOW に駆動されます。

PSEL 出力 データ転送が要求されている こ と を示し ます。

PENABLE 出力 すべてのア ク セスのタ イ ミ ング用のス ト ローブ。 APB 転送の 2 番目のサイ クルを示し ます。

PWDATA[31:0] 出力 32 ビ ッ ト の書き込みデータバス

PWRITE 出力 書き込み、 読み出しではあ り ません。

PRDATA[31:0] 入力 読み出しデータバス

PREADY 入力 APB ス レーブ準備完了

PSLVERR 入力 APB ス レーブエラー

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 11

アクセス制限な し 公開

Page 412: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.10 ITM イ ン タ フ ェース

ITM イ ン タ フ ェースの信号の一覧を、 テーブル A- 10 に示し ます。

テーブル A- 10 ITM イ ン タ フ ェース

名前 方向 説明

ATVALID 出力 ATB は有効

AFREADY 出力 ATB フ ラ ッ シ ュ

ATDATA[7:0] 出力 ATB データ

ATIDITM[6:0] 出力 TPIU 用の ITM ID

ATREADY 入力 ATB 準備完了

TPIUACTV 入力 TPIU がア ク テ ィ ブであ る こ と を示す信号

TPIUBAUD 入力 タ イ ム ス タ ンプを外部プロ ト コルの観測可能なボーレー ト にする ための、 タイ ム ス タ ンプカ ウ ン タの基準

A- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 413: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.11 AHB-AP イ ン タ フ ェ ース

AHB-AP イ ン タ フ ェースの信号の一覧を、 テーブル A- 11 に示し ます。

テーブル A- 11 AHB-AP イ ン タ フ ェース

名前 方向 説明

DAPRDATA[31:0] 出力 読み出しバスは、 DAPWRITE が LOW の と き、 選択された AHB-AP によ って読み出しサイ クルの間駆動されます。

DAPREADY 出力 AHB-AP はこ の信号を使用し て、 DAP 転送を延長し ます。

DAPSLVERR 出力 エラー応答で、 次の理由で発生し ます。

• マス タポー ト がエラー応答を生成し たか、 または転送を妨げるDAPEN のために転送が起動されなかった。

• DAPABORT 操作の後で、 AP レジス タへのア ク セスが受け付け られなかった。

DAPCLKEN 入力 DAP ク ロ ッ ク許可 (省電力化)

DAPEN 入力 AHB-AP 許可

DAPADDR[31:0] 入力 DAP ア ド レ スバス

DAPSEL 入力 DAP デコーダから各 AP に対し て生成される信号を選択し ます。 こ の信号は、 ス レーブデバイ スが選択され、 データ転送が要求されている こ とを示し ます。 各ス レーブに対し て DAPSEL 信号が存在し ます。 この信号は、 駆動中の DP によ っては生成されません。 デコーダはア ド レ スバスをモニタ し て、 関連する DAPSEL をアサー ト し ます。

DAPENABLE 入力 こ の信号は、 DP から AHB-AP への DAP 転送の 2 番目および以後のサイクルを示し ます。

DAPWRITE 入力 HIGH の場合、 DP から AHB-AP への DAP 書き込みア ク セス を示し ます。LOW の場合は読み出し ア ク セス を示し ます。

DAPWDATA[31:0] 入力 書き込みバスは、 DAPWRITE が HIGH の と き、 書き込みサイ クル中に DPブロ ッ ク によ って駆動されます。

DAPABORT 入力 現在の転送をアボー ト し ます。 AHB-AP は、 AHB マス タポー ト で進行中の転送の状態に影響を与えずに DAPREADY HIGH を返し ます。

FIXMASTERTYPE 入力 こ の信号を 1 にセ ッ ト する と、 AHB-AP の制御およびステータ ス ワード(CSW) の MasterType ビ ッ ト よ り 優先されます。 これによ って、 デバッ ガからのア ク セスが、 CSW の MasterType 設定にかかわらず、 HMASTERDおよび HMASTERS 上で常に 0x1 と し て発行される こ と が保証されます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 13

アクセス制限な し 公開

Page 414: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.12 ETM イ ン タ フ ェース

ETM イ ン タ フ ェースの信号の一覧を、 テーブル A- 12 に示し ます。

テーブル A- 12 ETM イ ン タ フ ェース

名前 方向 説明

ETMTRIGGER[3:0] 出力 DWT からの ト リ ガ。 4 つの DWT コ ンパレータそれぞれについて 1ビ ッ ト が使用されています。

ETMTRIGINOTD[3:0] 出力 ETM が命令またはデータ一致で ト リ ガ されるかど う かを示し ます。

ETMIVALID 出力 命令は有効です。

ETMIA[31:1] 出力 実行中の命令の PC

ETMICCFAIL 出力 条件コード の失敗。 現在の命令で条件付き実行のチェ ッ クが失敗し たかパス し たかを示し ます。

ETMIBRANCH 出力 オペコード は分岐ターゲ ッ ト です。

ETMIINDBR 出力 オペコード は間接分岐ターゲ ッ ト です。

ETMINTSTAT[2:0] 出力 割 り 込みステータ ス。 現在のサイ クルの割 り 込みステータ ス をマークし ます。

000 - ステータ スな し

001 - 割 り 込み開始

010 - 割 り 込み終了

011 - 割 り 込み復帰

100 - ベク タ フ ェ ッチおよびス タ ッ ク プ ッ シュ

ETMINTSTAT の開始 / 復帰は、 新規割 り 込みコ ンテキス ト の 初のサイ クルでアサー ト されます。 ETMIVALID な しで終了し ます。

ETMINTNUM[8:0] 出力 現在の実行コ ンテキス ト の割 り 込み番号を示し ます。

ETMISTALL 出力 コ アによ って信号を出された 後の命令がまだ実行を開始されていないこ と を示し ます。

ETMFLUSH 出力 PC を変更するオペコード が実行されたか、 または割 り 込みプ ッ シュ/ ポ ッ プが開始されま し た。

ETMPWRUP 入力 ETM が許可されています。

ETMDVALID 出力 データは有効です。

ETMCANCEL 出力 命令がキ ャ ンセルされま し た。

ETMFINDBR 出力 フ ラ ッ シュは間接的です。 フ ラ ッ シュ ヒ ン ト デステ ィ ネーシ ョ ンがPC から推測できないこ と を示し ます。

A- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 415: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

ETMFOLD 出力 オペコード はフ ォール ド されます。 このサイ クルで IT オペコード がフ ォール ド されま し た。 現在の (16 ビ ッ ト ) オペコード と IT 命令(16 ビ ッ ト ) を超えて PC が進みます。 これは ETMIA に反映されます。

ETMFIFOFULL 入力 ETM によ って駆動されます (接続されている場合)。 ETMFIFOFULLは ETM FIFO がフルの場合にアサー ト され、 FIFO が ド レ イ ン されるまでプロセ ッ サはス ト ールし ます。 これによ って、 ト レースが欠落しないこ と が保証されます。

DSYNC 出力 DWT からの同期化パルス

テーブル A- 12 ETM イ ン タ フ ェース (続 く )

名前 方向 説明

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 15

アクセス制限な し 公開

Page 416: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.13 AHB ト レースマク ロセル イ ン タ フ ェース

AHB ト レースマ ク ロセル (HTM) イ ン タ フ ェースの信号の一覧を、 テーブル A- 13 に示し ます。

テーブル A- 13 HTM イ ン タ フ ェース

名前 方向 説明

HTMDHADDR[31:0] 出力 32 ビ ッ ト のア ド レ ス

HTMDHTRANS[1:0] 出力 現在のデータ転送のタ イプを示す出力。 この出力の値は IDLE、NONSEQUENTIAL、 SEQUENTIAL のいずれかです。

HTMDHSIZE[1:0] 出力 ア ク セスのサイ ズを示し ます。 値は 8、 16、 32 ビ ッ ト のいずれかです。

HTMDHBURST[2:0] 出力 転送がバース ト の一部かど う かを示す出力。

HTMDHPROT[3:0] 出力 ア ク セスに関する情報を提供し ます。

HTMDHWDATA[31:0] 出力 32 ビ ッ ト の書き込みデータバス。

HTMDHWRITE 出力 書き込み、 読み出しではあ り ません。

HTMDHRDATA[31:0] 出力 読み出しデータバス

HTMDHREADY 出力 準備完了信号

HTMDHRESP[1:0] 出力 転送応答ステータ ス。 OKAY または ERROR です。

A- 16 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 417: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.14 テス ト イ ン タ フ ェ ース

テス ト イ ン タ フ ェースの信号の一覧を、 テーブル A- 14 に示し ます。

テーブル A- 14 テス ト イ ン タ フ ェース

名前 方向 説明

SE 入力 スキ ャ ンは許可されています。

RSTBYPASS 入力 スキ ャ ンテス ト の リ セ ッ ト バイパス。 PORESETn は、 スキ ャ ンテス ト 中に使用される唯一の リ セ ッ ト です。

CGBYPASS 入力 スキ ャ ンテス ト 用のアーキテ クチャ上のク ロ ッ ク ゲー ト バイパス

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. A- 17

アクセス制限な し 公開

Page 418: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

信号の説明

A.15 WIC イ ン タ フ ェース

WIC イ ン タ フ ェースの信号の一覧を、 テーブル A- 15 に示し ます。

テーブル A- 15 WIC イ ン タ フ ェースの信号

名前 方向 説明

WAKEUP 出力 コ アをア ク テ ィ ブにし な く てはな ら ないこ と を示すPMU からの信号 (ア ク テ ィ ブ HIGH)

WICSENSE 出力 WIC がどの入力ラ イ ンに対し ての応答 と し てWAKEUP 信号を生成するかを示す信号のセ ッ ト (アク テ ィ ブ HIGH)

WICPEND 出力 NVIC のキ ャプチャ された割 り 込み情報

WICENACK 出力 ア ク テ ィ ブ HIGH で、 SLEEPDEEP が PMU へのWICSLEEP 応答であ る こ と を示し ます。

WICDSREQn 出力 NVIC に対し て、 SLEEPDEEP モード を WIC ス リ ープにする要求 (ア ク テ ィ ブ LOW)

FCLK 入力 NVIC の FCLK 入力に同期し た ク ロ ッ ク

nRESET 入力 非同期なア ク テ ィ ブ LOW の リ セ ッ ト

WICDISABLE 入力 デバッ ガのア ク テ ィ ブ信号。 この信号によ り 、 デバッ ガが接続されている と きは WIC モード が禁止されます。

WICINT 入力 ペ リ フ ェ ラルのア ク テ ィ ブ HIGH 割 り 込み、 デバッグモニタ、 NMI、 RXEV 信号のいずれか、 またはこれらの組み合わせ

WICMASK 入力 WIC がどの入力ラ イ ンに対し ての応答 と し てWAKEUP 信号を生成するかを示す信号のセ ッ ト (アク テ ィ ブ HIGH)

WICLOAD 入力 割 り 込み感知度 リ ス ト を NVIC から WIC にロード します。

WICCLEAR 入力 WIC の感知度 リ ス ト を ク リ ア し ます。

WICENREQ 入力 SLEEPDEEP モード を、 PMU からの WIC モード スリ ープ要求にし ます。

WICDSACKn 入力 ア ク テ ィ ブ LOW で、 SLEEPDEEP が NVIC からのWICSLEEP 応答であ る こ と を示し ます。

A- 18 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 419: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

付録 B リ ビジ ョ ン

この付録では、 本書の発行版間の技術的な相違点について説明し ます。

E 版と F 版の相違点をテーブル B- 1 に示し、 F 版 と G 版の相違点をテーブル B- 2 p. B- 5 に示し ます。

テーブル B- 1 E 版と F 版の相違点

改訂内容 場所

序文のプロセ ッサ情報を更新 プロセ ッ サについて p. 1- 2

プロセ ッサのブロ ッ ク図を更新 図 1- 1 p. 1- 5

序文に以下の情報を追加

• TPIU のサブセ ク シ ョ ン

• SW/SWJ-DP に関する注意サブセ ク シ ョ ン

• ROM テーブルのサブセ ク シ ョ ン

序文のプロセ ッサコ ア情報を更新 プロセ ッ サコ ア p. 1- 5

APB バスのバージ ョ ンを 3.0 に更新 バスマ ト リ ッ ク ス p. 1- 7

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. B- 1

アクセス制限な し 公開

Page 420: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

リ ビジ ョ ン

構成可能なオプシ ョ ンに関する情報を以下を含むよ うに拡張

• DWT の構成可能性に関する情報

• ITM、 AHB-AP、 FPB、 および監視に関するサブセ ク シ ョ ン

r1p1 と r2p0 の機能的な相違点を示すために新し く サブセ ク シ ョ ンを追加

r1p1 と r2p0 の機能面の相違点 p. 1- 21

プロ グ ラマモデルに関する情報を追加 プロ グ ラ マモデルについて p. 2- 2

実行プロ グ ラ ム ステータ ス レジス タの ICI フ ィ ール ドの定義を更新

テーブル 2- 3 p. 2- 8

サポー ト されていない Thumb 命令の表を削除

表 5-1 に関する 2 つ目の脚注を削除 テーブル 5- 1 p. 5- 4

ベク タ テーブルに関する注意と リ セ ッ ト の説明の追加 ベク タ テーブル と リ セ ッ ト p. 5- 22

SLEEPING 信号と SLEEPDEEP 信号の説明を更新 システム電力管理 p. 7- 3

ス リ ープ機能の拡張に関する説明を追加 ス リ ープの延長 p. 7- 5

補助制御レジス タの追加 テーブル 8- 1 p. 8- 3 および NVIC レジス タの説明 p. 8- 7

割 り 込み要求 (IRQ)0 ~ 31 優先度レジス タ を 0 ~ 3 に変更

テーブル 8- 1 p. 8- 3

割 り 込み要求 (IRQ)236 ~ 239 優先度レジス タ を 224~ 239 に変更

テーブル 8- 1 p. 8- 3

HCLK を FCLK に変更 レベル割 り 込み と パルス割 り 込みの比較 p. 8- 48

昇順 MPU 領域優先度情報の追加 MPU について p. 9- 2

新しい段落を追加 コ アデバッ グについて p. 10- 2

デバッ グ コ アレジス タ セレ ク タ レジス タの REGSELビ ッ ト フ ィ ール ド の機能を更新

テーブル 10- 3 p. 10- 8

新しい段落を追加 システムデバッ グについて p. 11- 2

FPB の削除に関する段落を追加 FPB p. 11- 6

テーブル B- 1 E 版と F 版の相違点 (続 く )

改訂内容 場所

B- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 421: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

リ ビジ ョ ン

フ ラ ッ シュパッチ レジス タ を実装するかし ないかの構成に関する注意の追加

FPB のプロ グ ラ マモデル p. 11- 7

初の箇条書き を更新 DWT p. 11- 13

DWT レジス タ を実装するかし ないかの構成に関する注意の追加

DWT レジス タの概要と説明 p. 11- 13

DWT 制御レジス タの リ セ ッ ト 状態を更新 DWT 制御レジス タ p. 11- 16

DWT 制御レジス タのビ ッ ト 割 り 当てを更新 図 11- 5 p. 11- 17 および テーブル 11- 7 p. 11- 17

ITM レジス タ を実装するかし ないかの構成に関する注意の追加

ITM レジス タの概要 と説明 p. 11- 33

ITM ト レース制御レジス タの TSENA フ ィ ール ド ビ ット の機能を更新

テーブル 11- 22 p. 11- 39

AHB-AP レジス タ を実装するかし ないかの構成に関する注意の追加

AHB-AP レジス タの概要と説明 p. 11- 44

AHB-AP バン クデータ レジス タの DATA フ ィ ール ドの リ セ ッ ト 値を更新

テーブル 11- 32 p. 11- 49

デバッ グ機能がない場合の情報の追加 DP について p. 13- 2

排他 メ モ リ ア ク セスに関する情報を更新 排他ア ク セス p. 12- 6 および 排他ア ク セス p. 12- 8

ビ ッ ト バン ド ア ク セスに関する注意を更新 ビ ッ ト バン ド ア ク セス p. 12- 14

ETM のブロ ッ ク図を更新 図 14- 1 p. 14- 3

HCLK と CLK を FCLK に変更 テーブル 14- 2 p. 14- 5、 テーブル 14- 3 p. 14- 5、テーブル 14- 4 p. 14- 6、 テーブル 14- 5 p. 14- 6、 およびテーブル 14- 6 p. 14- 6

テーブル B- 1 E 版と F 版の相違点 (続 く )

改訂内容 場所

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. B- 3

アクセス制限な し 公開

Page 422: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

リ ビジ ョ ン

ETM ト リ ガイベン ト レジス タの説明を更新 テーブル 14- 9 p. 14- 16

ETM ステータ ス レジス タの説明を更新

TraceEnable レジス タ を ト レース開始 / 停止 リ ソース制御に変更

TraceEnable 制御 2 レジス タ を追加

ロ ッ ク ステータ ス レジス タ を追加

FIFOFULL 領域レジス タの説明を追加

FIFOFULL レベルレジス タの説明を追加

CoreSight ト レース ID レジス タの説明を更新

ETM 制御レジス タの実装ビ ッ ト の説明を拡張 ETM 制御レジス タ p. 14- 20

TraceEnable 制御 1 レジス タの説明を更新 TraceEnable 制御 1 レジス タ p. 14- 22

ETM ID レジス タの説明を リ ビジ ョ ン 2 を反映する よう に更新

ETM ID レジス タ p. 14- 22

ETM イベン ト リ ソースに関するサブセ ク シ ョ ンを追加

ETM イベン ト リ ソース p. 14- 23

ク ロ ス ト リ ガ イ ン タ フ ェースに関するサブセ ク シ ョンを追加

ク ロ ス ト リ ガ イ ン タ フ ェース p. 14- 24

分岐ステータ ス イ ン タ フ ェースのセ ク シ ョ ンを更新 分岐ステータ ス イ ン タ フ ェース p. 15- 6

HADDRICore と HTRANSICore に関する注意を削除 分岐ステータ ス イ ン タ フ ェース p. 15- 6

オペコード シーケン スのタ イ ミ ング図の例を更新 図 15- 9 p. 15- 13

APB イ ン タ フ ェース入力の説明を追加 APB イ ン タ フ ェース p. 17- 7

テーブル B- 1 E 版と F 版の相違点 (続 く )

改訂内容 場所

B- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 423: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

リ ビジ ョ ン

TPIU レジス タ を実装するかし ないかの構成に関する注意の追加

TPIU レジス タの概要 p. 17- 8

概要表と説明から以下の TPIU レジス タ を削除

• ト リ ガ制御レジス タ

• EXTCTL ポー ト レジス タ

• テス ト パターン レジス タ

テーブル 17- 5 p. 17- 8 および TPIU レジス タの説明 p. 17- 10

概要表と説明に以下の TPIU レジス タ を追加

• 統合レジス タ : TRIGGER

• 統合モード制御レジス タ

• 統合レジス タ : FIFO データ 0

• 統合レジス タ : FIFO データ 1

• ク レーム タ グ セ ッ ト レジス タ

• ク レーム タ グ ク リ アレジス タ

• デバイ ス ID レジス タ

• PID レジス タ

• CID レジス タ

テーブル B- 2 F 版と G 版の相違点

改訂内容 場所

ウ ェーク ア ッ プ割 り 込みコ ン ト ローラ (WIC) を Cortex-M3ブロ ッ ク図に追加

図 1- 1 p. 1- 5

セ ク シ ョ ン 1-2 と セ ク シ ョ ン 1-3 を統合 コ ンポーネン ト 、 階層、 実装 p. 1- 4

r1p1 と r2p0 の機能的な相違点を示すために新し く サブセク シ ョ ンを追加

r1p1 と r2p0 の機能面の相違点 p. 1- 21

WIC に関し て新し く サブセ ク シ ョ ンを追加 WIC p. 1- 10

FIXHMASTERTYPE ピンに関する新しい箇条書き を追加 r1p1 と r2p0 の機能面の相違点 p. 1- 21

サポー ト されている命令の表を削除 2 章 Programmer’s Model

ス タ ッ ク された xPSR に関し て よ り 詳しい情報を追加 xPSR ビ ッ ト の保存 p. 2- 9

構成制御レジス タの リ セ ッ ト 値を 0x00000200 に変更 テーブル 3- 1 p. 3- 2

テーブル B- 1 E 版と F 版の相違点 (続 く )

改訂内容 場所

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. B- 5

アクセス制限な し 公開

Page 424: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

リ ビジ ョ ン

システム メ モ リ 領域と Vendor_SYS メ モ リ 領域を メ モ リ 領域のア ク セス許可の表に追加

テーブル 4- 2 p. 4- 4

専用ペ リ フ ェ ラルバスの メ モ リ 領域を +0000000 に変更

SLEEPHOLDREQ を SLEEPHOLDREQn に変更 本書全体

SLEEPHOLDACK を SLEEPHOLDACKn に変更 本書全体

DEEPSLEPP 信号を SLEEPDEEP に変更 本書全体

DBGRESTARTACK を DBGRESTARTED に変更 本書全体

DBGRESTARTREQ を DBGRESTART に変更 本書全体

WIC に関し て新し く サブセ ク シ ョ ンを追加 ウ ェーク ア ッ プ割 り 込みコ ン ト ローラの使用 p. 7- 6

割 り 込み要求 (IRQ)224 ~ 239 の優先度レジス タのア ド レス を 0xE000E4EC に変更

テーブル 8- 1 p. 8- 3

C_MASKINTS フ ィ ール ド の機能の説明を拡張 テーブル 10- 2 p. 10- 5

DWT 機能レジス タの設定を更新 テーブル 11- 18 p. 11- 30

ETMIA のタ イ ミ ング情報に対する細かな変更 図 15- 4 p. 15- 9

ETMIVALID のタ イ ミ ング情報に関する変更 図 15- 7 p. 15- 11

SLEEPHOLDREQn をその他の入力ポー ト のタ イ ミ ングパラ メ ータの表から削除

テーブル 19- 1 p. 19- 2

低電力入力ポー ト のタ イ ミ ングパラ メ ータの表を追加 テーブル 19- 2 p. 19- 2

FIXHMASTERTYPE をデバッ グ入力ポー ト のタ イ ミ ングパラ メ ータの表に追加

テーブル 19- 6 p. 19- 4

表見出しで入力を出力に変更 テーブル 19- 9 p. 19- 5、 テーブル 19- 11 p. 19- 6、 およびテーブル 19- 12 p. 19- 8 ~テーブル 19- 16 p. 19- 10 のすべて

SLEEPING、 SLEEPDEEP、 および SLEEPHOLDACKn をその他の出力ポー ト のタ イ ミ ングパラ メ ータの表から削除

その他の出力ポー ト のタ イ ミ ングパラ メ ータ p. 19- 5

SLEEPDEEP、 SLEEPING、 SLEEPHOLDREQ、 およびSLEEPHOLDACK を削除

テーブル A- 3 p. A- 4

テーブル B- 2 F 版と G 版の相違点 (続 く )

改訂内容 場所

B- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 425: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

リ ビジ ョ ン

低電力イ ン タ フ ェース信号に関し て新し く セ ク シ ョ ンを追加

低電力イ ン タ フ ェースの信号 p. A- 7

WIC イ ン タ フ ェース信号に関し て新し く セ ク シ ョ ンを追加

WIC イ ン タ フ ェースの信号 p. A- 18

SLEEPHOLDACKn をその他の信号の表から削除 テーブル A- 3 p. A- 4

低電力イ ン タ フ ェース信号の表の SLEEPHOLDREQn の説明でアサー ト をデアサー ト に変更

テーブル A- 5 p. A- 7

FIXMASTERTPYE を AHB-AP イ ン タ フ ェース信号の リ スト に追加

テーブル A- 11 p. A- 13

テーブル B- 2 F 版と G 版の相違点 (続 く )

改訂内容 場所

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. B- 7

アクセス制限な し 公開

Page 426: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

リ ビジ ョ ン

B- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 427: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

この用語集では、 ARM Limited の発行する技術文書で使用されている用語のい く つかについて説明し ます。

アボー ト Abort。 試みられた メ モ リ ア ク セスが無効であ るか許可されていない、 も し くは メ モ リ ア ク セスによ って返されたデータが無効であ る こ と を コ アに通知する機構。 アボー ト は、 無効なまたは保護された命令やデータ メ モ リ へのア クセス を実行し た結果と し て、 外部 メ モ リ システム または内部 メ モ リ システムによ って引き起こ される可能性があ り ます。

アボー ト (Data Abort)、 外部アボー ト (External Abort)、 プ リ フ ェ ッチアボー ト(Prefetch Abort) も参照し て下さい。

ア ド レシングモー ド Addressing modes。 命令で使用する値を生成する ために、 複数の さ まざ まな命令で共有される、 各種の機構。

ア ドバンス ト ハイパフ ォーマンスバス (AHB)

Advanced High-performance Bus。 ア ド レ ス / 制御フ ェーズ とデータ フ ェーズ との間であ る決ま ったパイプラ イ ンを使用するバスプロ ト コル。 AMBA AXI プロ ト コルで提供されている機能のサブセ ッ ト のみをサポー ト し ます。 完全なAMBA AHB プロ ト コル仕様には、 一般的なマス タ / ス レーブの設計資産 (IP)

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. Glossary- 1

アクセス制限な し 公開

Page 428: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

を使った開発では必要と されない機能が多 く 含まれている ため、 通常はプロト コルのサブセ ッ ト だけを使用する こ と をお勧めし ます。 このサブセ ッ ト は、AMBA AHB-Lite プロ ト コル と し て定義されています。

ア ド バン ス ト マ イ ク ロ コ ン ト ローラバス アーキテ クチャ (Advanced Microcontroller Bus Architecture) と AHB-Lite も参照し て下さい。

ア ドバンス ト マイ ク ロ コ ン ト ローラバス アーキテ クチャ (AMBA)

Advanced Microcontroller Bus Architecture。 相互接続のための方針が記載された、 プロ ト コル仕様のフ ァ ミ リ 。 AMBA は、 オンチ ッ プバスに関する ARM のオープンな規格です。 システムオンチ ッ プ (SoC)(System-on-Chip) を構築する機能ブロ ッ ク の相互接続 と管理のための方針が詳し く 記載された、 オンチ ップバスの仕様です。 1 つまたは複数の CPU または信号プロセ ッ サ、 および複数のペ リ フ ェ ラルを含む組み込みプロセ ッ サの開発に役立ちます。 AMBA は、SoC モジ ュール用の共通バッ ク ボーンを定義する こ と によ って、 再利用可能な設計手法を よ り 完全な ものにし ます。

ア ドバンス ト ペ リ フ ェ ラルバス (APB)

Advanced Peripheral Bus。 AXI や AHB よ り も単純なバスプロ ト コル。 タ イマ、割 り 込みコ ン ト ローラ、 UART、 I/O ポー ト などの補助的な、 または汎用のペリ フ ェ ラルで使用する ために設計されています。 メ イ ンのシステムバスへの接続は、 システム とペ リ フ ェ ラル と の間のバスブ リ ッ ジを経由し て行なわれていて、 システムの消費電力を抑え られます。

AHB ア ド バン ス ト ハイパフ ォーマン スバス (Advanced High-performance Bus) 参照。

AHB アクセスポー ト (AHB-AP)

AHB Access Port。 DAP のオプシ ョ ン コ ンポーネン ト で、 SoC への AHB イ ンタ フ ェース を提供し ます。

AHB-AP AHB ア ク セスポー ト (AHB Access Port) 参照。

AHB-Lite 完全な AMBA AHB プロ ト コル仕様のサブセ ッ ト 。 大部分の AMBA AHB マスタ / ス レーブ設計に必要なすべての基本機能を提供し てお り 、 特に複数レ イヤの AMBA 相互接続で使用されます。 ほ と んどの場合、 完全な AMBA AHBイ ン タ フ ェースで提供されている追加の機能は、 AMBA AXI プロ ト コルイ ンタ フ ェースで実装する と よ り 効率的にな り ます。

AHB ト レースマク ロセル

AHB Trace Macrocell。 プロセ ッ サコ アに接続された と きに、 ト レースポー トにデータの ト レース情報を出力するハード ウ ェ アマ ク ロセル。

アラ イ ン ド Aligned。 データサイ ズで決ま るバイ ト 数で割 り 切れる ア ド レ スに保存されたデータ項目を、 ア ラ イ ン ド、 またはア ラ イ ン し ている と呼びます。 ア ラ イ ンし ている ワード と ハーフ ワード のア ド レ スは、 それぞれ 4 と 2 で割 り 切れます。 し たがって、 ワード ア ラ イ ン ド と ハーフ ワード ア ラ イ ン ド と い う 用語は、それぞれ 4 と 2 で割 り 切れる ア ド レ ス を規定し ています。

Glossary- 2 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 429: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

AMBA ア ド バン ス ト マ イ ク ロ コ ン ト ローラバス アーキテ クチャ (Advanced Microcontroller Bus Architecture) 参照。

ア ドバンス ト ト レースバス (ATB)

Advanced Trace Bus。 CoreSight の ト レースキ ャプチャ資源を共有する ため、ト レースデバイ スによ って使用されるバス。

APB ア ド バン ス ト ペ リ フ ェ ラルバス (Advanced Peripheral Bus) 参照。

特定用途向け集積回路 (ASIC)

Application Specific Integrated Circuit。特定用途の機能を発揮する ために設計された集積回路。 特注または量産が可能です。

特定用途用標準部品 / 製品 (ASSP)

Application Specific Standard Part/Product。 特定用途の機能を発揮する ために設計された集積回路。 通常は、 2 つ以上の個別の回路機能から成 り 、 い く つかの特定用途市場の製品群への使用に適する よ う にビルデ ィ ングブロ ッ ク とし て統合されています。

アーキテ クチャ Architecture。 プロセ ッ サ と プロセ ッ サに接続されている構成要素を特徴付けるハード ウ ェ アおよびソ フ ト ウ ェ アの構成。 装置の動作を記述する と きに、装置を似た よ う な特徴でま と めて扱え る よ う にし ます。 例えば、 ハーバードアーキテ クチャ、 命令セ ッ ト アーキテ クチャ、 ARMv7-M アーキテ クチャ など。

ARM 命令 ARM instruction。 ARM 命令セ ッ ト アーキテ クチャ (ISA)(Instruction Set Architecture) の命令。 これらの命令は Cortex-M3 では実行でき ません。

ARM 状態 ARM state。 プロセ ッ サ状態の う ち、 プロセ ッ サが ARM ISA の命令を実行する状態。 Cortex-M3 プロセ ッ サは Thumb 状態でのみ動作し、 ARM 状態では動作し ません。

ASIC 特定用途向け集積回路 (Application Specific Integrated Circuit) 参照。

ASSP 特定用途用標準部品 / 製品 (Application Specific Standard Part/Product) 参照。

ATB ア ド バン ス ト ト レースバス (Advanced Trace Bus) 参照。

ATB ブ リ ッ ジ ATB bridge。 同期 ATB ブ リ ッ ジは、 パイプラ イ ン ステージの追加によ って、タ イ ミ ング収束を容易にする レジス タ ス ラ イ ス を提供し ます。 また、 2 つの同期 ATB ド メ イ ン間の単方向 リ ン ク を提供し ます。

非同期 ATB ブ リ ッ ジは、 非同期ク ロ ッ ク を使用し た 2 つの ATB ド メ イ ン間の単方向 リ ン ク を提供し ます。 これは、 異な る ク ロ ッ ク ド メ イ ンにあ る コ ンポーネン ト を ATB ポー ト で接続するのをサポー ト する こ と が目的です。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. Glossary- 3

アクセス制限な し 公開

Page 430: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

ベースレジス タ Base register。 命令のア ド レ ス計算の基準値を保持する ため、 ロード / ス ト ア命令で指定される レジス タ。 命令 と そのア ド レシングモード によ っては、ベース レジス タ値にオフセ ッ ト が加算または減算されて、 メ モ リ に送信するア ド レ スが形成される場合があ り ます。

ベースレジス タ ラ イ ト バッ ク

Base register write-back。 ア ド レ スが連続し た メ モ リ 内の次の上位ア ド レ ス または次の下位ア ド レ ス を指し示すよ う に、 命令のターゲ ッ ト ア ド レ スの計算に使用するベース レジス タの内容を更新する こ と。 これによ って、 連続的な命令によ る転送のためのターゲ ッ ト ア ド レ ス を フ ェ ッ チする必要がな く 、 連続する メ モ リ に対し て よ り 高速なバース ト ア ク セスが可能にな り ます。

ビー ト Beat。 1 つのバース ト 転送中の個々のデータ転送に対する も う 1 つの言い方。例えば、 INCR4 バース ト は 4 ビー ト で構成されます。

BE-8 バイ ト 不変システムでの、 ビ ッ グエンデ ィ アン形式の メ モ リ ビ ュー。

BE-32、 LE、 バイ ト 不変 (Byte-invariant)、 ワード 不変 (Word-invariant) も参照し て下さい。

BE-32 ワード 不変システムでの、 ビ ッ グエンデ ィ アン形式の メ モ リ ビ ュー。

BE-8、 LE、 バイ ト 不変 (Byte-invariant)、 ワード不変 (Word-invariant) も参照し て下さい。

ビ ッ グエンデ ィ アン Big-endian。 データ ワード 内の 上位バイ ト から 下位バイ ト までが、 メ モ リ内のア ド レ スの昇順に保存されるバイ ト 配列方式。

リ ト ルエンデ ィ アン (Little-endian) と エンデ ィ アン形式 (Endianness) も参照して下さい。

ビ ッ グエンデ ィ アンメ モ リ

Big-endian memory。 次のよ う な メ モ リ です。

• ワー ド ア ラ イ ン されたア ド レ スのバイ ト またはハーフ ワード が、 そのアド レ スのワード内で 上位のバイ ト またはハーフ ワード であ る。

• ハーフ ワー ド ア ラ イ ン されたア ド レ スのバイ ト が、 そのア ド レ スのハーフ ワード内で 上位バイ ト であ る。

リ ト ルエンデ ィ アン メ モ リ (Little-endian memory) も参照し て下さい。

バウンダ リ スキャ ン チ ェ イ ン

Boundary scan chain。 バウ ンダ リ スキ ャ ン チェ イ ンは、 標準の JTAG TAP イ ンタ フ ェース を使用し てバウ ンダ リ スキ ャ ン技術を実装し ているデバイ スのシリ アル接続で構成されます。 各デバイ スには少な く と も 1 つの TAP コ ン トローラがあ り 、 TDI と TDO と の間の接続チェ イ ンを形成する シフ ト レジス タ

Glossary- 4 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 431: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

を搭載し ています。 このチェ イ ンを通し て、 テス ト データがシフ ト されます。プロセ ッ サには数個のシフ ト レジス タ を搭載でき る ため、 デバイ スの指定した部分にア ク セスする こ と ができ ます。

分岐フ ォールデ ィ ング Branch folding。 実行パイプラ イ ンに送られる命令ス ト リ ームから、 分岐命令を完全に取 り 除 く 手法。

ブレークポイ ン ト Breakpoint。 プロ グ ラ ムの実行を停止させよ う とする位置にあ る命令を識別する ために、 デバ ッ ガによ って提供される機構。 プロ グ ラ マはブレーク ポ イ ント を挿入する こ と によ って、 プロ グ ラ ムの実行中の決ま った位置で、 レジスタの内容、 メ モ リ の位置、 変数の値を確認し て、 プロ グ ラ ムが正常に動作しているかど う かをテス ト する こ と ができ ます。 プロ グ ラ ムのテス ト が完了した後で、 ブレーク ポ イ ン ト は削除されます。

ウ ォ ッチポイ ン ト も参照

バース ト Burst。 連続ア ド レ スに対する一連の転送。 ア ド レ スが連続し ている ため、 2回目以降の転送ではア ド レ ス を指定する必要があ り ません。 こ の方法によ って、 一連の転送の実行速度が向上し ます。 AMBA 経由のバース ト は、 バースト の長さ と ア ド レ スのイ ン ク リ メ ン ト 方法を示す信号によ って制御されます。

ビー ト も参照

バイ ト Byte。 8 ビ ッ ト のデータ項目。

バイ ト 不変 Byte-invariant。 バイ ト 不変のシステムでは、 リ ト ルエンデ ィ アン と ビ ッ グエンデ ィ アンの動作が切 り 替え られて も、 メ モ リ の各バイ ト のア ド レ スは変更されません。 1 バイ ト を超え るデータ項目を メ モ リ から ロード 、 または メ モリ にス ト アする と き、 そのデータ項目を構成するバイ ト が、 メ モ リ ア ク セスのエンデ ィ アン形式に応じ て正しい順序に配列されます。 ARM アーキテ クチャでは、 ARMv6 およびそれ以降のバージ ョ ンでバイ ト 不変システムがサポー ト されています。 バイ ト 不変のサポー ト が選択されている場合は、 アンア ラ イ ン ド のハーフ ワード と ワード によ る メ モ リ ア ク セス もサポー ト されます。 複数ワード ア ク セスは、 ワード ア ラ イ ン し ている必要があ り ます。

ワード不変 (Word-invariant) も参照し て下さい。

ク ロ ッ クゲー ト Clock gating。 制御信号でマ ク ロセルの ク ロ ッ ク信号をゲー ト し、 その ク ロ ック を使用する こ と によ って、 マ ク ロセルの動作状態が制御されます。

命令当た りのク ロ ッ ク数 (CPI)

Clocks Per Instruction。命令当た り のサイ クル数 (CPI)(Cycles Per Instruction) 参照。

コールド リ セ ッ ト Cold reset。 パワーオン リ セ ッ ト (power-on reset) と呼ばれる こ と も あ り ます。

ウ ォーム リ セ ッ ト (Warm reset) 参照。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. Glossary- 5

アクセス制限な し 公開

Page 432: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

コ ンテキス ト Context。 マルチタ ス ク のオペレーテ ィ ングシステム上で各プロセスが動作する環境。

高速コ ンテキス ト ス イ ッチ (Fast context switch) も参照し て下さい。

コア Core。 ALU、 データパス、 汎用レジス タ、 プロ グ ラ ムカ ウ ン タ、 命令デコードおよび制御回路を含む、 プロセ ッ サの一部。

コア リ セ ッ ト Core reset。 ウ ォーム リ セ ッ ト (Warm reset) 参照。

CoreSight 完全なシステム オンチッ プ (SoC) のモニ タ、 ト レース、 デバッ グを行 う ためのイ ン フ ラ ス ト ラ クチャ。

CPI 命令当た り のサイ クル数 (Cycles per instruction) 参照。

Cycles Per Instruction。 命令当た りのサイ クル数 (CPI)

命令当た り のサイ クル数 (または命令当た り の ク ロ ッ ク数) は、 1 ク ロ ッ ク サイ クルで実行可能な コ ンピ ュータ命令の数の指標です。 この性能指標は、同じ命令セ ッ ト を実装し た異なる CPU の性能を比較する ために使用でき ます。 値が低いほど、 パフ ォーマン スが高いこ と を意味し ます。

データ アボー ト Data Abort。 データ メ モ リ の不正な位置にア ク セスが試みられた こ と を、 メ モリ システムから コ アへ通知する方法。 プロセ ッ サがアボー ト を引き起こ し たデータ を使用し よ う と し た場合、 例外を引き起こす必要があ り ます。

アボー ト も参照

DCode メ モ リ DCode Memory。 0x00000000 ~ 0x1FFFFFFFF の メ モ リ 空間。

デバッ グアクセス ポー ト (DAP)

Debug Access Port。 一種の TAP ブロ ッ ク であ り 、 システムバスへのア ク セスでは AMBA の AHB または AHB-Lite マス タ と し て動作し ます。 DAP は、 システム規模のデバッ グをサポー ト する回路ブロ ッ ク群を総称する ために使用される用語です。 DAP はモジ ュ ラーコ ンポーネン ト で、 単一のデバッ グ イ ン タフ ェース を通し て、 メ モ リ マ ッ プされた AHB や CoreSight APB など複数のシステムに対し て、 任意のア ク セス をサポー ト する よ う 拡張可能な よ う に意図されています。

デバッ ガ Debugger。 ソ フ ト ウ ェ アの障害を検出し、 場所を特定し、 修正するのに使用されるプロ グ ラ ム と、 ソ フ ト ウ ェ アのデバッ グをサポー ト する カス タ ムハード ウ ェ アを組み合わせたデバッ グシステム。

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

Embedded Trace Macrocell。 ハード ウ ェ アマ ク ロセルで、 プロセ ッ サコ アに接続された と きに、 ト レースポー ト に命令 ト レース情報を出力し ます。

Glossary- 6 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 433: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

エンデ ィ アン形式 Endianness。 バイ ト の順序。 データ ワード の連続するバイ ト が メ モ リ に保存される順序を決定する方式。 システムの メ モ リ マ ッ ピングの見え方。

リ ト ルエンデ ィ アン (Little-endian) と ビ ッ グエンデ ィ アン (Big-endian) も参照し て下さい。

ETM エンベデッ ド ト レース マ ク ロセル (Embedded Trace Macrocell) 参照。

例外 Exception。 エラーまたはイベン ト で、 これが発生する と プロセ ッ サは現在実行中の命令ス ト リ ームを停止し、 特定の例外ハン ド ラ または割 り 込み処理ルーチンを実行し ます。 例外には外部割込みや NMI のほか、 プロ グ ラ ムの実行を中断する必要があ るほど深刻だ と見な される フ ォール ト やエラーイベント が含まれます。 例と し て、 無効な メ モ リ ア ク セス、 外部割 り 込み、 未定義命令を実行し よ う と し た場合が挙げられます。 例外が発生する と、 通常のプロ グ ラ ムフ ローが中断され、 対応する例外ベク タで実行が再開されます。 例外ベク タには、 例外を処理する割 り 込み処理ルーチンの 初の命令が含まれています。

例外ハン ド ラ

Exception handler。 割 り 込み処理ルーチン (Interrupt service routine) 参照。

例外ベク タ Exception vector。 割 り 込みベク タ (Interrupt vector) 参照。

外部 PPB External PPB。 0xE0040000 ~ 0xE00FFFFF の PPB メ モ リ 空間。

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

Flash Patch and Breakpoint unit。 ア ド レ ス一致タ グのセ ッ ト であ り 、 フ ラ ッシュ メ モ リ へのア ク セス を SRAM の特別な部分へのア ク セスに変更し ます。これによ って、 フ ラ ッ シ ュ メ モ リ の位置にパッチをあて る こ と で、 ブレークポ イ ン ト を設定し た り 、 すばやい修正または変更が可能にな り ます。

フ ォーマ ッ タ Formatter。 フ ォーマ ッ タは ETB と TPIU の内部入力ブロ ッ ク であ り 、 ト レース ソースの ID をデータに埋め込んで単一の ト レース ス ト リ ームを形成し ます。

ハーフワー ド Halfword。 16 ビ ッ ト のデータ項目。

ホール ト モー ド Halt mode。 互いに排他的なデバッ グモード の う ちの 1 つ。 ホール ト モード では、 ブレーク ポ イ ン ト またはウ ォ ッチポ イ ン ト に遭遇し た と きに、 すべてのプロセ ッ サの実行が停止し ます。 すべてのプロセ ッ サの状態、 コプロセ ッ サの状態、 メ モ リ と I/O の位置を、 JTAG イ ン タ フ ェースから検査および変更でき ます。

モニ タデバッ グモード (Monitor debug-mode) も参照し て下さい。

ホス ト Host。 データや他のサービ ス を別のコ ン ピ ュータに提供する コ ンピ ュータ。特に、 デバッ グ対象のターゲ ッ ト にデバッ グサービ ス を提供し ている コ ンピ ュータ。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. Glossary- 7

アクセス制限な し 公開

Page 434: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

HTM AHB ト レースマ ク ロセル (AHB Trace Macrocell) 参照。

ICode メ モ リ ICode Memory。 0x00000000 ~ 0x1FFFFFFF の メ モ リ 空間。

不正命令 Illegal instruction。 アーキテ クチャで未定義の命令。

実装定義

Implementation-defined。 動作がアーキテ クチャで定義されておらず、 個別の実装によ って定義や文書化が行われます。

実装固有

Implementation-specific。 動作がアーキテ クチャで定義されていないが、 実装ご と に文書化する必要がないこ と を意味し ます。 使用可能な実装オプシ ョ ンが多数あ り 、 選択し たオプシ ョ ンによ って ソ フ ト ウ ェ アの互換性に影響がない場合に使用されます。

命令サイ クル数

Instruction cycle count。 命令がパイプラ イ ンの実行ステージを占有するサイ クル数。

計装 ト レース

Instrumentation trace。 リ アルタ イ ムシステムをデバッ グする ためのコ ンポーネン ト であ り 、 メ モ リ マ ッ プの簡単な ト レース イ ン タ フ ェースで、 printf 形式

のデバッ グを提供し ます。

イ ンテ リ ジ ェ ン ト 電力管理 (IEM)

Intelligent Energy Management。 デバイ スの消費電力を低減する ために使用される技術で、 動的な電圧ス ケー リ ング と ク ロ ッ ク周波数の変更を可能にし ます。

内部 PPB Internal PPB。 0xE0000000 ~ 0xE003FFFF の PPB メ モ リ 空間。

割り込み処理ルーチン Interrupt service routine。 割 り 込みが発生し た と きに、 プロセ ッ サの制御が渡されるプロ グ ラ ム。

割り込みベク タ Interrupt vector。 下位 メ モ リ にあ る多 く の固定ア ド レ スの 1 つで、 対応する割り 込み処理ルーチンの 初の命令が含まれています。

ジ ョ イ ン ト テス ト アクシ ョ ングループ (JTAG)

Joint Test Action Group。 IEEE 1149.1 規格を策定し た団体の名前。 こ の規格では、 集積回路デバイ スのイ ンサーキ ッ ト テス ト に使用される、 バウ ンダ リ スキ ャ ン アーキテ クチャが定義されています。 頭文字の JTAG で広 く 知られています。

JTAG ジ ョ イ ン ト テス ト ア ク シ ョ ングループ (Joint Test Action Group) 参照。

Glossary- 8 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 435: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

JTAG デバッ グポー ト (JTAG-DP)

JTAG Debug Port。 デバッ グア ク セス用に標準の JTAG イ ン タ フ ェース を提供する DAP 用のオプシ ョ ンの外部イ ン タ フ ェース。

JTAG-DP JTAG デバッ グポー ト (JTAG Debug Port) 参照。

LE バイ ト 不変 と ワード 不変の両方のシステムにおける、 リ ト ルエンデ ィ アン形式の メ モ リ ビ ュー。 バイ ト 不変 (Byte-invariant) と ワード 不変 (Word-invariant)も参照し て下さい。

リ ト ルエンデ ィ アン Little-endian。 データ ワード内の 下位バイ ト から 上位バイ ト までが、 メ モリ 内のア ド レ スの昇順に保存されるバイ ト 配列方式。

ビ ッ グエンデ ィ アン (Big-endian) と エンデ ィ アン形式 (Endianness) も参照し て下さい。

リ ト ルエンデ ィ アン メ モ リ

Little-endian memory。 次のよ う な メ モ リ です。

• ワード ア ラ イ ン されたア ド レ スのバイ ト またはハーフ ワード が、 そのアド レ スにあ る ワード 内の 下位のバイ ト またはハーフ ワード であ る。

• ハーフ ワード ア ラ イ ン されたア ド レ スのバイ ト が、 そのア ド レ スにあ るハーフ ワード内の 下位バイ ト であ る。

ビ ッ グエンデ ィ アン メ モ リ (Big-endian memory) も参照し て下さい。

ロー ド / ス ト アアーキテ クチャ

Load/store architecture。 データ処理動作が、 直接 メ モ リ の内容に対し て行われるのではな く 、 レジス タの内容に対し てのみ行われるプロセ ッ サアーキテクチャ。

ロー ド ス ト ア ユニ ッ ト (LSU)

Load Store Unit。 ロード / ス ト ア転送を処理するプロセ ッ サの部分。

LSU ロード ス ト ア ユニ ッ ト (Load Store Unit) 参照。

マク ロセル Macrocell。 イ ン タ フ ェース と動作が定義された複合回路ブロ ッ ク。 一般的なVLSI システムは、 複数のマ ク ロセル (プロセ ッ サ、 ETM、 メ モ リ ブロ ッ ク など) と、 特定用途の論理回路で構成されます。

メ モ リ コ ヒーレンシ Memory coherency。 メ モ リ は、 データ読み出し または命令フ ェ ッチによ って読み出された値が、 後にその位置に書き込まれた値と一致し ていれば、 コヒ ーレ ン ト です。 メ モ リ コ ヒ ーレ ンシは、 メ イ ン メ モ リ 、 ラ イ ト バッ フ ァ、キ ャ ッ シュ を搭載し たシステムのよ う に、 使用可能な物理位置が複数存在する場合には、 実現が容易ではあ り ません。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. Glossary- 9

アクセス制限な し 公開

Page 436: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

メ モ リ保護ユニ ッ ト (MPU)

Memory Protection Unit。 メ モ リ ブロ ッ ク に対する ア ク セス許可を制御するハード ウ ェ ア。 MMU と は異な り 、 MPU はア ド レ ス を変更し ません。

マイ ク ロプロセ ッサ Microprocessor。 プロセ ッ サ (Processor) 参照。

モニ タデバッ グモー ド

Monitor debug-mode。 互いに排他的なデバッ グモード の う ちの 1 つ。 モニ タデバッ グモード では、 プロセ ッ サは、 デバッ グモニ タ またはオペレーテ ィ ングシステムのデバッ グ タ ス ク で提供される ソ フ ト ウ ェ ア アボー ト ハン ド ラ を許可し ます。 これによ って、 ブレーク ポイ ン ト またはウ ォ ッ チポ イ ン ト に遭遇し て、 通常のプロ グ ラ ム実行が中断し ている間であって も、 重要なシステム割 り 込み処理を継続する こ と ができ ます。

ホール ト モード

MPU メ モ リ 保護ユニ ッ ト (Memory Protection Unit) 参照。

マルチレ イヤ Multi-layer。 ク ロ スバース イ ッチに似た相互接続方式。 相互接続の各マス タにはそれぞれのス レーブへの直接 リ ン ク があ り 、 この リ ン クは他のマス タ とは共有されません。 これによ って、 各マス タは他のマス タ と並列に転送を処理でき ます。 マルチレ イヤ相互接続での競合は、 ペイ ロード の宛先、 通常はス レーブでのみ発生し ます。

ネス ト 型ベク タ割り込みコ ン ト ローラ (NVIC)

Nested Vectored Interrupt Controller。 プロセ ッ サに、 構成可能な割 り 込み処理機能を提供し ます。

NVIC ネス ト 型ベク タ割 り 込みコ ン ト ローラ (Nested Vectored Interrupt Controller)

ペナルテ ィ Penalty。 命令フ ローが仮定または予想 と異な る ため、 実行ステージの有効なパイプラ イ ン動作が発生し ないサイ クル数。

PFU プ リ フ ェ ッチユニ ッ ト (Prefetch Unit) 参照。

PMU 電力管理ユニ ッ ト (Power Management Unit)

電力管理ユニ ッ ト (PMU)

Power Management Unit。 プロセ ッ サに電力管理機能を提供し ます。

パワーオン リ セ ッ ト Power-on reset。 コール ド リ セ ッ ト (Cold reset) 参照。

PPB 専用ペ リ フ ェ ラルバス (Private Peripheral Bus) 参照。

プ リ フ ェ ッ チ Prefetching。 パイプラ イ ン処理のプロセ ッ サで、 先行する命令の実行が完了する前に、 その後の命令を メ モ リ から フ ェ ッチし てパイプラ イ ンに送 り 込む処理。 命令のプ リ フ ェ ッチは、 その命令が必ず実行される こ と を意味し ません。

Glossary- 10 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 437: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

プ リ フ ェ ッ チアボー ト Prefetch Abort。 メ モ リ の不正な位置から命令がフ ェ ッチされた こ と を、 メ モリ システムから コ アへ通知する こ と。 プロセ ッ サがその命令を実行し よ う とし た場合、 例外を引き起こす必要があ り ます。 プ リ フ ェ ッ チアボー ト は、 無効な命令 メ モ リ へのア ク セス を試みた結果と し て、 外部または内部の メ モ リシステムが引き起こす可能性があ り ます。

データ アボー ト (Data Abort)、 アボー ト (Abort) も参照し て下さい。

プ リ フ ェ ッ チユニッ ト(PFU)

Prefetch Unit。 PFU は、 サイ クル毎に 1 ワード を供給可能な メ モ リ システムから命令をフ ェ ッチし ます。 PFU は 3 ワード までのフ ェ ッチを FIFO にバッフ ァする こ と ができ ます。 つま り 、 大 3 つの 32 ビ ッ ト Thumb 命令、 または 6 つの 16 ビ ッ ト Thumb 命令をバッ フ ァする こ と ができ ます。

専用ペ リ フ ェ ラルバス

Private Peripheral Bus。 0xE0000000 ~ 0xE00FFFFF の メ モ リ 空間。

プロセ ッサ Processor。 コ ンピ ュータ命令を使用し てデータ を処理する ために必要なコ ンピ ュータ システムの回路。 プロセ ッ サは、 マイ ク ロプロセ ッ サの略称です。完全に機能する 小のコ ン ピ ュータ システムを作成するには、 ク ロ ッ ク ソース、 電源、 メ イ ン メ モ リ も必要です。

RealView ICE JTAG イ ン タ フ ェース を使用し て、 組み込みプロセ ッ サコ アをデバッ グするためのシステム。

予約 Reserved。 制御レジス タ または命令フ ォーマ ッ ト 内のフ ィ ール ド が実装で定義される場合、 そのフ ィ ール ド は予約されます。 このよ う なフ ィ ール ド の内容が 0 ではない場合、 予測不能な結果が引き起こ されます。 これらのフ ィ ール ド は、 アーキテ クチャの将来の拡張に備えて予約される場合と、 実装固有の場合があ り ます。 実装で使用されないすべての予約ビ ッ ト は、 0 と し て読み書きする必要があ り ます。

SBO 常に 1 (Should Be One) 参照。

SBZ 常に 0 (Should Be Zero) 参照。

SBZP 常に 0 または保持 (Should Be Zero or Preserved) 参照。

スキャ ンチ ェ イ ン Scan chain。 スキ ャ ンチェ イ ンはシ リ アル接続し たデバイ スで構成され、 標準の JTAG TAP イ ン タ フ ェース を使用し てバウ ンダ リ スキ ャ ン技術を実装し ています。 各デバイ スには少な く と も 1 つの TAP コ ン ト ローラがあ り 、 TDI とTDO と の間の接続チェ イ ンを形成する シフ ト レジス タ を搭載し ています。 このチェ イ ンを通し て、 テス ト データがシフ ト されます。 プロセ ッ サには数個のシフ ト レジス タ を搭載でき る ため、 デバイ スの指定し た部分にア ク セスする こ と ができ ます。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. Glossary- 11

アクセス制限な し 公開

Page 438: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

常に 1 (SBO)

Should Be One。 ソ フ ト ウ ェ アで 1 (ビ ッ ト フ ィ ール ド の場合はすべてのビ ット に 1) を書き込む必要があ り ます。 0 を書き込んだ場合、 結果は予測不能です。

常に 0 (SBZ)

Should Be Zero。 ソ フ ト ウ ェ アで 0 (ビ ッ ト フ ィ ール ド の場合はすべてのビ ット に 0) を書き込む必要があ り ます。 1 を書き込んだ場合、 結果は予測不能です。

常に 0 または保持 (SBZP)

Should Be Zero or Preserved。 ソ フ ト ウ ェ アで 0 (ビ ッ ト フ ィ ール ド の場合はすべてのビ ッ ト に 0) を書き込むか、 同じプロセ ッ サの同じ フ ィ ール ド から以前読み出し た値をそのま ま書き戻し て保持する必要があ り ます。

シ リ アルワイヤ デバッ グポー ト

Serial-Wire Debug Port。 DAP 用のオプシ ョ ンの外部イ ン タ フ ェースで、 シ リアルワ イ ヤの双方向デバッ グ イ ン タ フ ェース を提供し ます。

シ リアルワイヤ JTAGデバッグポー ト

Serial-Wire JTAG Debug Port。 JTAG-DP および SW-DP を組み合わせた、 標準のデバッ グポー ト 。

SW-DP シ リ アルワ イヤ デバッ グポー ト (Serial-Wire Debug Port) 参照。

SWJ-DP シ リ アルワ イヤ JTAG デバッ グポー ト (Serial-Wire JTAG Debug Port) 参照。

同期化基本命令

Synchronization primitive。 メ モ リ の同期化基本命令は、 メ モ リ の同期を保証する ために使用される命令です。 LDREX および STREX 命令が該当し ます。

システム メ モ リ System memory。 0x20000000 ~ 0xFFFFFFFF の メ モ リ 空間、 ただし 0xE0000000 ~

0xE00FFFFF の PPB 空間を除き ます。

TAP テス ト ア ク セスポー ト (Test Access Port) 参照。

テス ト アクセスポー ト (TAP)

Test Access Port。 JTAG バウ ンダ リ スキ ャ ン アーキテ クチャの入出力イ ン タフ ェース と制御イ ン タ フ ェース を形成する、 4 つの必須端子と 1 つのオプシ ョ ン端子の集合。 必須端子は、 TDI、 TDO、 TMS、 TCK です。 オプシ ョ ン端子は、 TRST です。 この信号は、 デバッ グ回路の リ セ ッ ト に使用される ため、 ARM コ アには不可欠です。

スレ ッ ド制御ブロ ッ ク Thread Control Block。 オペレーテ ィ ングシステムのカーネルが、 実行し ているひ とつのス レ ッ ド に固有の情報を保持する ために使用するデータ構造。

Thumb 命令 Thumb instruction。 ARM プロセ ッ サが Thumb 状態で実行する動作を指定するハーフ ワー ド。 Thumb 命令は、 ハーフ ワード ア ラ イ ン し ている必要があ り ます。

Glossary- 12 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し

Page 439: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

Thumb 状態 Thumb state。 Thumb (16 ビ ッ ト ) ハーフ ワード ア ラ イ ン ド 命令を実行し ているプロセ ッ サは、 Thumb 状態で動作し ています。

TPA ト レースポー ト アナラ イザ (Trace Port Analyzer) 参照。

TPIU ト レースポー ト イ ン タ フ ェースユニ ッ ト 。

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

Trace Port Interface Unit。 ト レースデータ を出力し、 オンチ ッ プの ト レースデータ と、 TPA によ り キ ャプチャ されるデータ ス ト リ ーム と のブ リ ッ ジ と して機能し ます。

アンアラ イ ン ド Unaligned。 データサイ ズで決ま るバイ ト 数で割 り 切れないア ド レ スに保存されたデータ項目は、 アンア ラ イ ン ド と呼びます。 例えば、 4 で割 り 切れないア ド レ スに保存されている ワード はアンア ラ イ ン ド です。

UNP 予測不能 (Unpredictable) 参照。

予測不能 Unpredictable。 読み出しの場合は、 この位置から読み出しによ って返されるデータが予測不能な こ と を意味し ます。 データはどのよ う な値にも な り 得ます。 書き込みの場合は、 こ の位置への書き込みによ って予測不能な動作が発生するか、 デバイ スの構成に予測不能な変化が発生する こ と を意味し ます。予測不能な命令によ って、 プロセ ッ サまたはシステムのいずれかの部分に停止やハングが発生し ないよ う にする必要があ り ます。

ウ ェークア ッ プ割り込みコ ン ト ローラ(WIC)

Wake-up Interrupt Controller。 ウ ェーク ア ッ プ割 り 込みコ ン ト ローラによ り 、割 り 込み検出および優先度付け回路のゲー ト 数を大幅に削減でき ます。

ウォームリ セ ッ ト Warm reset。 コ ア リ セ ッ ト (core reset) と呼ばれる こ と も あ り ます。 デバッ グコ ン ト ローラ とデバッ グ回路を除 く プロセ ッ サの大部分を初期化し ます。 このタ イプの リ セ ッ ト は、 プロセ ッ サのデバッ グ機能を使用し ている場合に便利です。

ウォ ッ チポイ ン ト Watchpoint。 ウ ォ ッ チポ イ ン ト は、 デバッ ガで提供されている機構で、 特定の メ モ リ ア ド レ スに保存されているデータが変更された と きにプロ グ ラ ムの実行を停止し ます。 プロ グ ラ マはウ ォ ッチポイ ン ト を挿入する こ と によ って、メ モ リ が書き込まれた と きの、 レジス タの内容、 メ モ リ の位置、 変数の値を検査し て、 プロ グ ラ ムが正常に動作し ているかど う かをテス ト する こ と ができ ます。 プロ グ ラ ムのテス ト が完了し た後で、 ウ ォ ッ チポ イ ン ト は削除されます。 ブレーク ポイ ン ト (Breakpoint) も参照し て下さい。

WIC ウ ェーク ア ッ プ割 り 込みコ ン ト ローラ (Wake-up Interrupt Controller) 参照。

ワー ド Word。 32 ビ ッ ト のデータ項目。

ARM DDI 0337G Copyright © 2005-2008 ARM Limited.All rights reserved. Glossary- 13

アクセス制限な し 公開

Page 440: Cortex-M3 Technical Reference Manual - ARM …infocenter.arm.com/.../DDI0337GJ_cortex_m3_r2p0_trm.pdfARM DDI 0337G Cortex -M3 r2p0 テクニカルリファレンス マニュアル

用語集

ワー ド 不変 Word-invariant。 ワード不変システムでは、 リ ト ルエンデ ィ アン動作と ビ ッ グエンデ ィ アン動作の切 り 替え時に、 各 メ モ リ バイ ト のア ド レ スが変更されます。 例えば、 一方のエンデ ィ アン形式でア ド レ ス A が割 り 当て られたバイ トは、 他方のエンデ ィ アン形式ではア ド レ ス A EOR 3 が割 り 当て られます。 このため、 メ モ リ のア ラ イ ン されたワード は、 エンデ ィ アン形式に関係な く 、必ず、 メ モ リ 上の同じ 4 バイ ト に同じ順序で構成されます。 エンデ ィ アン形式の切 り 替えは、 バイ ト 配列が変わる ためではな く 、 バイ ト ア ド レ スが変更される ために起こ り ます。

ARM アーキテ クチャでは、 ARMv3 およびそれ以降のバージ ョ ンでワード 不変システムがサポー ト されています。 ワード不変のサポー ト が選択されている場合、 アンア ラ イ ン ド ア ド レ スが指定された ロード命令またはス ト ア命令の動作は命令によ って異な り 、 通常は、 アンア ラ イ ン ド ア ク セスに対し て予測される動作にはな り ません。 ワード不変システムでは、 エンデ ィ アン形式が設定される前の リ セ ッ ト ハン ド ラの冒頭部分を除き、 常に期待通 り のバイト ア ド レ スが生成されるエンデ ィ アン形式を使用する こ と をお勧めし ます。リ セ ッ ト ハン ド ラの冒頭部分では、 ア ラ イ ン し たワード メ モ リ ア ク セスのみを使用する必要があ り ます。

バイ ト 不変 (Byte-invariant) も参照し て下さい。

ラ イ ト バッ フ ァ Write buffer。 書き込みデータ をバッ フ ァ し、 バスのス ト ール (stall) によ ってプロセ ッ サがス ト ールする こ と を防止する ためのパイプラ イ ン ステージ。

Glossary- 14 Copyright © 2005-2008 ARM Limited.All rights reserved. ARM DDI 0337G

公開 アクセス制限な し