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

Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

  • Upload
    others

  • View
    35

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

Cortex™

-M0+リビジ ョ ン : r0p1

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

Copyright © 2012 ARM. All rights reserved.ARM DDI 0484CJ (ID061713)

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

Page 2: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

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

Copyright © 2012 ARM. All rights reserved.

リ リース情報

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

著作権

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

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

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

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

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

機密保持ステータス

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

製品ステータス

本書の情報は最終版であ り、 開発済み製品に対応しています。

Web アドレス

http://www.arm.com

改訂履歴

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

2012 年 1 月 19 日 A 非公開 r0p0 用の最初のリ リース

2012 年 4 月 4 日 B 公開 r0p0 用の 2 番目のリ リース

2012 年 12 月 16 日 C 公開 r0p1 用の最初のリ リース

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. iiID061713 Non-Confidential

Page 3: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

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

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

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

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

第 3 章 プログラマモデル3.1 プログラマモデルについて ..................................................................................... 3-23.2 動作と実行のモード ................................................................................................ 3-33.3 命令セッ トの概要 .................................................................................................... 3-43.4 メモリモデル ........................................................................................................... 3-93.5 プロセッサコア レジスタの概要 ........................................................................... 3-103.6 例外 ........................................................................................................................ 3-11

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. iiiID061713 Non-Confidential

Page 4: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

目次

第 5 章 ネスト型ベクタ割り込みコン ト ローラ5.1 NVIC について ......................................................................................................... 5-25.2 NVIC レジスタの概要 .............................................................................................. 5-3

第 6 章 メモリ保護ユニッ ト6.1 MPU について ........................................................................................................ 6-26.2 MPU レジスタの概要 ............................................................................................... 6-3

第 7 章 デバッグ7.1 デバッグについて .................................................................................................... 7-27.2 デバッグレジスタの概要 ......................................................................................... 7-7

付録 A リビジ ョ ン

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. ivID061713 Non-Confidential

Page 5: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

序章

本章では、 Cortex-M0+ テクニカルリ ファレンス マニュアルの概要を紹介します。 本

章は次のセクシ ョ ンで構成されています。

• 本書について (ページ vi)

• ご意見 ・ ご質問 (ページ ix)

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. vID061713 Non-Confidential

Page 6: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

序章

本書について

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

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

rnpn識別子は、 本書に記載されている製品のリ ビジ ョ ンステータスを示しており、

それぞれの意味は次のとおりです。

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

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

対象読者

本書は次のよ うな読者を対象と しています。

• システム設計者、 システムインテグレータ、 検証技術者

• プロセッサを使用するソフ ト ウェア開発者

本書の使用法

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

第 1 章 はじめに

プロセッサとその機能を紹介します。

第 2 章 機能の説明

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

第 3 章 プログラマモデル

アプリ ケーシ ョ ンレベルのプログラマモデルの概要について説明します。

第 4 章 システム制御

システム制御レジスタ とその構造の概要について説明します。

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

ネス ト型ベクタ割り込みコン ト ローラ (NVIC) の概要について説明しま

す。

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

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

第 7 章 デバッグ

デバッグシステムの概要について説明します。

付録 A リ ビジ ョ ン

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

用語集

ARM 用語集には、 ARM の説明書で使用されている用語の一覧と、 それらの定義が記

載されています。 ARM 用語集には、 業界標準の用語は記載されていません。 ただし、

一般に認識されているものとは異なる意味で ARM によ り使用されている場合は例外

です。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. viID061713 Non-Confidential

Page 7: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

序章

「ARM 用語集 , http://infocenter.arm.com/help/topic/com.arm.doc.aeg0014-/index.html」 を参照して下

さい。

表記規則

本書では次に示す表記規則が使用されています。

• 書体の一般的な規則

書体の一般的な規則

本書で使用されている書体の一般的な規則を、 次の表に示します。

参照資料

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

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

ARM の刊行物

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

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

• ARMv6-M 命令セッ ト ク イ ッ ク リ ファレンス ガイ ド (ARM QRC 0011)

• ARM AMBA® 3 AHB-Lite プロ ト コル仕様 (ARM IHI 0033)

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

注 Cortex-M0+ 実装には、 デバッグアクセス ポート (DAP) を含めるこ とができま

す。 DAP の定義については、 『ARM デバッグインタフェース仕様』 の v5.1、 ま

たは 『ARM デバッグインタフェース v5、 アーキテクチャ仕様』 の A 版の正誤

表を参照して下さい。

書式 目的

斜体 特定の用語の初出時や、 本書内での相互参照と引用に使用されます。

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

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

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

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

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

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

小さい大文字 ARM 用語集に定義されている、 特定の技術的な意味を持ついくつかの用語を示すため、 本文で使

用されます。 例えば、 実装定義、 実装固有、 未知、 予測不能などです。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. viiID061713 Non-Confidential

Page 8: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

序章

• ARM アーキテクチャのアプリ ケーシ ョ ンバイナリ インタフェース (ベース標

準) (IHI 0036)

• CoreSight™ SoC テクニカルリ ファレンス マニュアル (ARM DDI 0480)

• Cortex-M0+ 統合および実装マニュアル (ARM DII 0278)

• CoreSight MTB-M0+ テクニカルリ ファレンス マニュアル (ARM DDI 0486)

その他の刊行物

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

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. viiiID061713 Non-Confidential

Page 9: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

序章

ご意見 ・ ご質問

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

製品に関するご意見

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

• 製品名

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

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

本書の内容に関するご意見

内容に関してのご意見は、 次の情報をご記載のうえ、 電子メールで [email protected]

お寄せ下さい。

• 題名

• 資料番号 (ARM DDI 0484CJ)

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

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

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

注 ARM は、 この PDF を Adobe Acrobat および Acrobat Reader でのみテス ト しており、

他の PDF リーダーを使用した場合にドキュ メン トの表示品質を保証できません。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. ixID061713 Non-Confidential

Page 10: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

第 1 章 はじめに

本章では、 Cortex-M0+ プロセッサとその機能について紹介します。 本章は次のセクシ ョ ンで構成されています。

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

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

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

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

• 「製品説明書、 設計フロー、 アーキテクチャ」 (ページ 1-6)

• 「製品リ ビジ ョ ン」 (ページ 1-9)

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-1ID061713 Non-Confidential

Page 11: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

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

Cortex-M0+ プロセッサは非常にゲート数の少ない、 電力効率の高いプロセッサで、プロセッサの実装面積と消費電力を最低限に抑える必要があるマイク ロコン ト ローラや、 密な組み込み用途での利用を目的と しています。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-2ID061713 Non-Confidential

Page 12: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

1.2 機能

このプロセッサには、 次のよ うな機能と利点があり ます。

• システムペリ フェラルの密接な統合によ り、 実装面積と開発コス ト を削減できます。

• Thumb 命令セッ トによ り、 高いコード密度と 32 ビッ トのパフォーマンスを両立できます。

• シングルサイクル I/O アクセスのサポート

• システムコンポーネン トの電力制御の最適化

• ス リープモードの統合による低消費電力

• 高速なコード実行によ り、 プロセッサのクロ ッ ク速度を低く したり、 ス リープモードの時間を長く したりするこ とができます。

• コードフェッチの最適化によ り、 フラ ッシュや ROM の消費電力が低減します。

• ハードウェア乗算器

• タイムク リ ティカルな用途に適した、 予測可能な高パフォーマンスの割り込み処理

• 命令のサイ クルタイ ミ ングが予測可能

• システムレベルでのデバッグ認証のサポート

• シ リ アルワイヤ デバッグによ り、 デバッグに必要なピン数を削減できます。

• (オプシ ョ ン) 命令ト レースのサポート

Cortex-M0+ のアーキテクチャに関する準拠については、 「アーキテクチャ とプロ ト コルの情報」 (ページ 1-7) を参照して下さい。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-3ID061713 Non-Confidential

Page 13: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

1.3 インタフェース

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

• 外部 AHB-Lite インタフェース

• デバッグアクセス ポート (DAP)

• (オプシ ョ ン) シングルサイ クル I/O ポート

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-4ID061713 Non-Confidential

Page 14: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

1.4 構成可能なオプショ ン

実装時にプロセッサで構成可能なオプシ ョ ンを、 表 1-1 に示します。

1.4.1 構成可能な乗算器

MULS 命令は、 32 ビッ ト× 32 ビッ トの乗算を実行し、 結果の下位 32 ビッ ト を返します。 プロセッサには、 次のいずれかの方法で MULS を実装できます。

• 高速な単一サイ クルのアレイ

• 32 サイ クルの反復乗算器

反復乗算器を使用しても、 割り込み応答時間には影響しません。 プロセッサは、 保留中の割り込みを取得するために乗算操作を途中で破棄します。

表 1-1 プロセッサで構成可能なオプシ ョ ン

機能 構成可能なオプシ ョ ン

割り込み 外部割り込み 0 ~ 32

データのエンディアン形式 リ トルエンディアンまたはビッグエンディアン

SysTick タイマ 存在する / しない

ウォッチポイン ト コンパレータの数 a

a. ホールトデバッグがサポート されている と きのみ

0、 1、 2

ブレークポイン ト コンパレータの数 a 0、 1、 2、 3、 4

ホールトデバッグのサポート 存在する / しない

乗算器 高速または小型

シングルサイクル I/O ポート 存在する / しない

ウェークアップ割り込みコン ト ローラ サポート あ り / なし

ベクタテーブル オフセッ ト レジスタ 存在する / しない

非特権 / 特権のサポート 存在する / しない

メモリ保護ユニッ ト 存在しない、 または 8 領域

全レジスタのリセッ ト 存在する / しない

命令フェッチ幅 16 ビッ トのみ、 または主に 32 ビッ ト

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-5ID061713 Non-Confidential

Page 15: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

1.5 製品説明書、 設計フロー、 アーキテクチャ

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

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

1.5.1 説明書

こ こでは、 プロセッサの説明書について説明します。

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

『テクニカルリ ファレンス マニュアル』 (TRM) には、 プロセッサの機能と、 動作に対する機能オプシ ョ ンの影響が記載されています。 設計フローのすべての段階で必要となり ます。 設計フローで行う選択によっては、 TRM に記載されている動作の一部が適用されなくなるこ とがあ ります。 プロセッサのプログラ ミ ングを行う場合、 以下に問い合わせて下さい。

• 次のこ とを確認するには、 実装者へ問い合わせて下さい。

— 実装のビルド構成

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

• 使用するデバイスの入力構成については、 インテグレータに問い合わせてください。

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

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

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

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

• プロセッサを SoC に統合する方法。 要求される統合形式にマクロセルを構成するため、 インテグレータが固定する必要のあるピンについても解説されています。

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

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

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

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

1.5.2 設計フロー

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

実装

実装者は、 RTL を構成して合成し、 ゲート レベルの配置を作成します。実装者は、 統合前に合成と配置を行ってハードマクロセルを作成すること も、 統合後に行ってチップの配置を作成するこ と もできます。

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-6ID061713 Non-Confidential

Page 16: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

プログラ ミ ング

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

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

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

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

ビルド構成

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

構成入力

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

ソフ ト ウェア構成

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

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

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

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

• 「ARM アーキテクチャ」

• 「アドバンス ト マイク ロコン ト ローラバス アーキテクチャ」

• 「デバッグアクセス ポートのアーキテクチャ」 (ページ 1-8)

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

ARM アーキテクチャ

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

アドバンスト マイクロコン ト ローラバス アーキテクチャ

プロセッサに実装されているシステムバスは、 AMBA-3 AHB-Lite です。 『ARM AMBA 3 AHB-Lite プロ ト コル仕様』 を参照して下さい。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-7ID061713 Non-Confidential

Page 17: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

デバッグアクセス ポートのアーキテクチャ

デバッグアクセス ポート (DAP) は、 ARM デバッグインタフェース仕様の v5.1 で定義されているオプシ ョ ンコンポーネン トです。 『ARM デバッグインタフェース v5、アーキテクチャ仕様』 を参照して下さい。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-8ID061713 Non-Confidential

Page 18: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

はじめに

1.6 製品リビジ ョ ン

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

r0p0 初版

r0p1 技術的変更なし

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 1-9ID061713 Non-Confidential

Page 19: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

第 2 章 機能の説明

本章では、 プロセッサの機能の概要について説明します。 本章は次のセクシ ョ ンで構成されています。

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

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 2-1ID061713 Non-Confidential

Page 20: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

機能の説明

2.1 機能について

Cortex-M0+ プロセッサは、 構成可能なマルチステージの 32 ビッ ト RISC プロセッサです。 このプロセッサは AMBA AHB-Lite インタフェースを搭載し、 NVIC コンポーネン トが含まれています。 オプシ ョ ンのハードウェアデバッグ、 シングルサイ クルI/O インタフェース、 メモ リ保護機能も含まれています。 このプロセッサは Thumbコードを実行でき、 他の Cortex-M プロファイルのプロセッサと互換性があ り ます。

プロセッサの機能ブロッ クを、 図 2-1 に示します。

図 2-1 機能ブロック図

実装されているデバイスによ り、 以下の機能が提供されます。

ゲート数の少ないプロセッサで、 次の機能を実現

• ARMv6-M Thumb® 命令セッ ト

• Thumb-2 テク ノ ロジ

• (オプシ ョ ン) ARMv6-M 準拠の 24 ビッ トの SysTick タイマ

• 32 ビッ トのハード ウェア乗算器。 標準の単一サイ クル乗算器、 または実装面積が小さ くパフォーマンスが低い 32 サイ クル乗算器を実装できます。

• リ トルエンディアン、 またはバイ ト不変ビッグエンディアンのデータアクセスのサポート

• 予測可能でレイテンシが固定の割り込み処理機能

• 複数ロード / ス ト アおよび複数サイクルの乗算命令。 これらは、 迅速な割り込み処理を行うために破棄と再開が可能です。

• (オプシ ョ ン) システム整合性を強化するための非特権 / 特権のサポート

• C アプリ ケーシ ョ ンバイナリ インタフェース準拠の例外モデル。

これは ARMv6-M の C アプリ ケーシ ョ ンバイナリ インタフェース(C-ABI) 準拠の例外モデルで、 純粋な C 関数を割り込みハンド ラと して使用できます。

‡‡

‡‡

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 2-2ID061713 Non-Confidential

Page 21: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

機能の説明

• 割り込み待ち (WFI) 命令、 イベン ト待ち (WFE) 命令、 または割り込みの退出時ス リープ機能によ り、 低電力のス リープモードを開始できます。

次の機能を持つ NVIC

• 32 本までの外部割り込み入力。 それぞれに 4 レベルの優先度を設定できます。

• マスク不能割り込み (NMI) 専用の入力

• レベル感知とパルス感知の両方の割り込みラインのサポート

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

• (オプシ ョ ン) ベクタテーブルの再配置

(オプシ ョ ン) デバッグサポート

• 0 ~ 4 つのハードウェアブレークポイン ト

• 0 ~ 2 つのウォッチポイン ト

• プログラムカウンタ サンプリ ングレジスタ (PCSR) によ り、 最低 1つのハードウェア データウォッチポイン トが実装されていれば、非侵襲性のコードプロファイ リ ングが可能

• シングルステップおよびベクタキャ ッチ機能

• BKPT 命令を使用して、 無制限のソフ ト ウェアブレークポイン ト をサポート可能

• コアペリ フェラルへの非侵襲性アクセス と、 コンパク ト バスマ トリ ッ クスによる 0 ウェイ ト ステートのシステムスレーブ。 デバッガは、 プロセッサが実行中でも、 メモ リ を含むこれらのデバイスへアクセスできます。

• プロセッサがホールト時に、 コアレジスタへの完全なアクセスが可能

• (オプシ ョ ン) シ リ アルワイヤまたは JTAG デバッグ接続をサポートするデバッグアクセス ポート (DAP) によ り、 ゲート数の少ないCoreSight 準拠のデバッグアクセスが可能

バスインタフェース

• 単一の 32 ビッ ト AMBA-3 AHB-Lite システムインタフェースによ り、すべてのシステムペリ フェラルと メモリを簡単に統合できます。

• (オプシ ョ ン) 単一の 32 ビッ トのシングルサイ クル I/O ポート

• (オプシ ョ ン) DAP をサポートする単一の 32 ビッ ト スレーブポート

(オプシ ョ ン) メモ リ保護ユニッ ト (MPU)。 次の機能があ り ます。

• ユーザ構成可能な 8 つのメモリ領域

• 領域単位で非稼働にできる、 8 つのサブ領域

• 実行不可 (XN) のサポート

• デフォルトのメモ リマップのサポート

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 2-3ID061713 Non-Confidential

Page 22: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

機能の説明

2.2 インタフェース

このセクシ ョ ンでは、 外部インタフェースの機能について説明します。

ピン出力や信号名はデバイスの実装ごとに異なるため、 本書では説明しません。

2.2.1 AHB-Lite インタフェース

AHB-Lite インタフェース上の ト ランザクシ ョ ンは、 常に非シーケンシャルと してマーク されます。

プロセッサアクセス とデバッグアクセスは、 外部 AHB ペリ フェラルへの外部インタフェースを共有します。 プロセッサアクセスは、 デバッグアクセスよ り も優先されます。

ベンダ固有のコンポーネン ト も、 このバスを使用できます。

注 命令は AHB-Lite インタフェースのみを使用してフェ ッチされます。 パフォーマンスを最適化するため、 Cortex-M0+ プロセッサは実行中のものよ り も先の命令をフェッチします。 消費電力を最小にするため、 この先行フェッチは最大 32 ビッ トに制限されます。

2.2.2 シングルサイクル I/O ポート

プロセッサには、 オプシ ョ ンと してシングルサイ クル I/O ポート を実装でき、 汎用I/O (GPIO) など密結合されたペリ フェラルへ、 非常に高速なアクセスが可能です。 このポートはプロセッサとデバッガから、 ロード と ス ト アの両方でアクセス可能です。I/O ポートからコードを実行するこ とはできません。

2.2.3 デバッグアクセス ポート

プロセッサには、 ゲート数の少ないデバッグアクセス ポート (DAP)、 または完全なCoreSight DAP が実装されています。

ゲート数の少ないデバッグアクセス ポート (DAP) では、 シ リ アルワイヤまたはJTAG デバッグポートが提供され、 プロセッサのスレーブポート との接続によ り完全なシステムレベルのデバッグアクセスが提供されます。

完全な CoreSight DAP システムでは、 プロセッサが完全なマルチプロセッサのデバッグを提供し、 同時ホールトおよびリ リースのクロス ト リガ機能を使用できます。

詳細については、 次に示すセクシ ョ ンを参照して下さい。

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

• CoreSight DAP については、 『CoreSight SoC テクニカルリ ファレンス マニュアル』 を参照して下さい。

2.2.4 実行ト レースインタフェース

プロセッサには、 マイ クロ ト レース バッファ実行ト レースコンポーネン ト用のインタフェースをオプシ ョ ンで実装できます。 詳細については、 『CoreSight MTB-M0+ テクニカルリ ファレンス マニュアル』 を参照して下さい。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 2-4ID061713 Non-Confidential

Page 23: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

第 3 章 プログラマモデル

本章では、 アプリ ケーシ ョ ンレベルのプログラマモデルの概要について説明します。本章は次のセクシ ョ ンで構成されています。

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

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

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

• 「メモ リモデル」 (ページ 3-9)

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

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-1ID061713 Non-Confidential

Page 24: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

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

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

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

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

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-2ID061713 Non-Confidential

Page 25: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

3.2 動作と実行のモード

動作と実行のモードの詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-3ID061713 Non-Confidential

Page 26: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

3.3 命令セッ トの概要

プロセッサには、 ARMv6-M Thumb 命令セッ トが実装され、 これには Thumb-2 テクノ ロジを使用する多くの 32 ビッ ト命令も含まれています。 ARMv6-M 命令セッ トは、次の命令で構成されます。

• CBZ、 CBNZ、 IT を除く、 すべての ARMv7-M の 16 ビッ ト Thumb 命令

• 32 ビッ ト Thumb 命令のうち、 BL、 DMB、 DSB、 ISB、 MRS、 MSR

Cortex-M0+ 命令と、 各命令のサイ クル数を、 表 3-1 に示します。 サイ クル数は、 0ウェイ ト ステートのシステムを基準と したものです。

表 3-1 Cortex-M0+ の命令の概要

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

移動 8 ビッ ト イ ミディエート MOVS Rd, #<imm> 1

下位から下位 MOVS Rd, Rm 1

任意から任意 MOV Rd, Rm 1

任意から PC MOV PC, Rm 2

加算 3 ビッ ト イ ミディエート ADDS Rd, Rn, #<imm> 1

すべてのレジスタの下位 ADDS Rd, Rn, Rm 1

任意から任意 ADD Rd, Rd, Rm 1

任意から PC ADD PC, PC, Rm 2

8 ビッ ト イ ミディエート ADDS Rd, Rd, #<imm> 1

キャ リー付き ADCS Rd, Rd, Rm 1

イ ミディエートから SP ADD SP, SP, #<imm> 1

SP からアドレス生成 ADD Rd, SP, #<imm> 1

PC からアドレス生成 ADR Rd, <label> 1

減算 下位および下位 SUBS Rd, Rn, Rm 1

3 ビッ ト イ ミディエート SUBS Rd, Rn, #<imm> 1

8 ビッ ト イ ミディエート SUBS Rd, Rd, #<imm> 1

キャ リー付き SBCS Rd, Rd, Rm 1

SP からイ ミディエート SUB SP, SP, #<imm> 1

補数 RSBS Rd, Rn, #0 1

乗算 乗算 MULS Rd, Rm, Rd 1 または 32a

比較 比較 CMP Rn, Rm 1

否定 CMN Rn, Rm 1

イ ミディエート CMP Rn, #<imm> 1

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-4ID061713 Non-Confidential

Page 27: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

論理 論理積 ANDS Rd, Rd, Rm 1

排他的論理和 EORS Rd, Rd, Rm 1

論理和 ORRS Rd, Rd, Rm 1

ビッ ト ク リ ア BICS Rd, Rd, Rm 1

補数移動 MVNS Rd, Rm 1

論理積テス ト TST Rn, Rm 1

シフ ト イ ミディエート値によ り論理左シフ ト

LSLS Rd, Rm, #<shift> 1

レジスタ値によ り論理左シフ ト LSLS Rd, Rd, Rs 1

イ ミディエート値によ り論理右シフ ト

LSRS Rd, Rm, #<shift> 1

レジスタ値によ り論理右シフ ト LSRS Rd, Rd, Rs 1

算術右シフ ト ASRS Rd, Rm, #<shift> 1

レジスタ値によ り算術右シフ ト ASRS Rd, Rd, Rs 1

ローテート レジスタ値によ り右ローテート RORS Rd, Rd, Rs 1

ロード ワード、 イ ミディエートオフセット

LDR Rd, [Rn, #<imm>] 2 または 1b

ハーフワード、 イ ミディエートオフセッ ト

LDRH Rd, [Rn, #<imm>] 2 または 1b

バイ ト、 イ ミディエートオフセット

LDRB Rd, [Rn, #<imm>] 2 または 1b

ワード、 レジスタオフセッ ト LDR Rd, [Rn, Rm] 2 または 1b

ハーフワード、 レジスタオフセット

LDR Rd, [Rn, Rm] 2 または 1b

符号付きハーフワード、 レジスタオフセッ ト

LDRSH Rd, [Rn, Rm] 2 または 1b

バイ ト、 レジスタオフセッ ト LDRB Rd, [Rn, Rm] 2 または 1b

符号付きバイ ト、 レジスタオフセッ ト

LDRSB Rd, [Rn, Rm] 2 または 1b

PC 相対 LDR Rd, <label> 2 または 1b

SP 相対 LDR Rd, [SP, #<imm>] 2 または 1b

複数、 ベースを除く LDM Rn!, {<loreglist>} 1 + Nc

複数、 ベースを含む LDM Rn, {<loreglist>} 1 + Nc

表 3-1 Cortex-M0+ の命令の概要 ( 続き )

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-5ID061713 Non-Confidential

Page 28: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

ス ト ア ワード、 イ ミディエートオフセット

STR Rd, [Rn, #<imm>] 2 または 1b

ハーフワード、 イ ミディエートオフセッ ト

STRH Rd, [Rn, #<imm>] 2 または 1b

バイ ト、 イ ミディエートオフセット

STRB Rd, [Rn, #<imm>] 2 または 1b

ワード、 レジスタオフセッ ト STR Rd, [Rn, Rm] 2 または 1b

ハーフワード、 レジスタオフセット

STRH Rd, [Rn, Rm] 2 または 1b

バイ ト、 レジスタオフセッ ト STRB Rd, [Rn, Rm] 2 または 1b

SP 相対 STR Rd, [SP, #<imm>] 2 または 1b

複数 STM Rn!, {<loreglist>} 1 + Nc

プッシュ プッシュ PUSH {<loreglist>} 1 + Nc

リ ンクレジスタ付きプッシュ PUSH {<loreglist>, LR} 1 + Nd

ポップ ポップ POP {<loreglist>} 1 + Nc

ポップおよび復帰 POP {<loreglist>, PC} 3 + Nd

分岐 条件付き B<cc> <label> 1 または 2e

無条件 B <label> 2

リ ンク付き BL <label> 3

交換付き BX Rm 2

リ ンク付き交換 BLX Rm 2

拡張 符号付きハーフワードからワード SXTH Rd, Rm 1

符号付きバイ トからワード SXTB Rd, Rm 1

符号なしハーフワード UXTH Rd, Rm 1

符号なしバイ ト UXTB Rd, Rm 1

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

両方のハーフワード内のバイ ト REV16 Rd, Rm 1

符号付きの下位ハーフワード REVSH Rd, Rm 1

表 3-1 Cortex-M0+ の命令の概要 ( 続き )

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-6ID061713 Non-Confidential

Page 29: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

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

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

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

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

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

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

• ARMv7-M プロセッサを使用する場合、 CCR の次のフ ィールドを構成する。

— STKALIGN ビッ ト を 1 にセッ ト

— UNALIGN_TRP ビッ ト を 1 にセッ ト

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

割り込みを不可能にする CPSID i 1

割り込みを可能にする CPSIE i 1

特殊レジスタ読み出し MRS Rd, <specreg> 3

特殊レジスタ書き込み MSR <specreg>, Rn 3

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

ヒ ン ト イベン ト送信 SEV 1

イベン ト待ち WFE 2g

割り込み待ち WFI 2g

イールド YIELD 1h

無操作 NOP 1

バリア 命令同期 ISB 3

データ メモ リ DMB 3

データ同期 DSB 3

a. 乗算器の実装によ り異な り ます。b. AHB インタフェースまたは SCS へのロードは 2、 シングルサイクル I/O ポートへは 1c. N はリ ス トに含まれる要素の数です。d. N はリ ス トに含まれる要素の数で、 PC と LR も含まれます。e. 分岐する場合 2、 分岐しない場合 1f. サイ クル数は、 プロセッサとデバッグの構成によって異な り ます。g. 割り込みまたはイベン ト待ちに消費された時間は除きます。h. NOP と して実行されます。

表 3-1 Cortex-M0+ の命令の概要 ( 続き )

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-7ID061713 Non-Confidential

Page 30: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-8ID061713 Non-Confidential

Page 31: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

3.4 メモリモデル

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

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

システム メモ リマップは ARMv6-M アーキテクチャ準拠で、 デバッガとプロセッサの両方のアクセスに共通です。 ト ランザクシ ョンは次のよ うにルーティングされます。

• 0xE0000000 よ り下、 または 0xEFFFFFFF よ り上のすべてのアクセスは、 プロセッサの AHB-Lite マスタポート上で、 AHB-Lite ト ランザクシ ョ ンと して示されます。

• 0xE0000000 ~ 0xEFFFFFFF の範囲のアクセスはプロセッサ内で処理され、 プロセッサの AHB-Lite マスタポートには出現しません。

• デバッガとプロセッサから AHB-Lite インタフェースへのデータアクセスは、シングルサイクル I/O ポート上に置き換えるよ うハードウェアで構成可能です。

プロセッサは、 0xE0000000 ~ 0xEFFFFFFF の範囲について、 ワードサイズのアクセスのみをサポート します。

デフォルト メモ リマップの各領域について、 コード、 データ、 デバイスの適合性を、表 3-2 に示します。 これは、 オプシ ョ ンのメモ リ保護ユニッ ト (MPU) が搭載されていない実装、 または MPU が搭載されていても稼働していない場合に使用される メモリマップです。 すべての領域の属性とアクセス許可は、 Cortex-M0+ の NVIC とデバッグコンポーネン ト をターゲッ ト とするものを除いて、 実装されている MPU を使用して変更可能です。

注 コードに適切とマーク されていない領域は実行不可 (XN) と して動作し、 この位置からコードの実行を試みる と HardFault 例外が生成されます。

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

表 3-2 デフォルトのメモリマップ使用法

アドレスの範囲 コード データ デバイス

0xF0000000~ 0xFFFFFFFF いいえ いいえ はい

0xE0000000 ~ 0xEFFFFFFF いいえ いいえ いいえa

a. この領域は、 Cortex-M0+ の NVIC およびデバッグコンポーネン ト用に予約されています。

0xA0000000 ~ 0xDFFFFFFF いいえ いいえ はい

0x60000000 ~ 0x9FFFFFFF はい はい いいえ

0x40000000 ~ 0x5FFFFFFF いいえ いいえ はい

0x20000000 ~ 0x3FFFFFFF はい はい いいえ

0x00000000 ~ 0x1FFFFFFF はい はい いいえ

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-9ID061713 Non-Confidential

Page 32: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

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

プロセッサコアのレジスタセッ トの概要を、 表 3-3 に示します。 各レジスタは 32ビッ ト幅です。

注 プロセッサコア レジスタ と、 それらのアドレス、 アクセスタイプ、 リセッ ト時の値の詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

表 3-3 プロセッサコア レジスタセッ トの概要

名前 説明

R0 ~ R12 R0 ~ R12 はデータ操作用の汎用レジスタです。

MSP (R13) スタ ッ クポインタ (SP) はレジスタ R13 です。 スレッ ドモードでは、 CONTROLレジスタによって、 メ イン スタ ッ クポインタ (MSP) とプロセス スタ ッ クポインタ (PSP) のどちらのスタ ッ クポインタを使用するかが指定されます。

PSP (R13)

LR (R14) リ ンクレジスタ (LR) はレジスタ R14 です。 サブルーチン、 関数呼び出し、 例外の復帰情報が格納されます。

PC (R15) プログラムカウンタ (PC) はレジスタ R15 です。 現在のプログラムアドレスが格納されます。

PSR プログラムステータス レジスタ (PSR) は、 次の 3 つのレジスタを組み合わせたものです。

• アプリケーシ ョ ンプログラム ステータスレジスタ (APSR)• 割り込みプログラムステータス レジスタ (IPSR)• 実行プログラムステータス レジスタ (EPSR)これらのレジスタは、 それぞれ PSR の異なるビューを提供します。

PRIMASK PRIMASK レジスタは、 構成可能な優先度によ り、 すべての例外の起動を抑止します。 プロセッサでサポート される例外モデルの詳細については、 「例外」 (ページ 3-11) を参照して下さい。

CONTROL CONTROL レジスタは、 プロセッサがスレッ ドモードのと きに使用されるスタッ ク と、 オプシ ョ ンと してコードの特権レベルを決定します。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-10ID061713 Non-Confidential

Page 33: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

プログラマモデル

3.6 例外

このセクシ ョ ンでは、 プロセッサの例外モデルについて説明します。

3.6.1 例外処理

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

割り込みレイテンシを最小限に抑えるため、 プロセッサは保留中の割り込みを取得するために、 複数ロードまたは複数ス ト ア命令を破棄します。 割り込みハンド ラから復帰する と、 プロセッサは複数ロードまたは複数ス ト ア命令を最初から再開します。

注 32 サイ クルの乗算器を実装しているプロセッサは、 乗算命令を同様に破棄します。

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

プロセッサ実装では、 NVIC が割り込み信号を検出するため、 およびプロセッサが関連する割り込みハンド ラの最初の命令をフェッチするために必要なサイ クル数を固定にするこ と も可能です。 この場合、 最も優先度の高い割り込みではジッ ターが発生しません。 詳細については、 プロセッサ実装者から提供されている説明書を参照して下さい。

割り込みのレイテンシとジッ ターを低減するため、 Cortex-M0+ プロセッサには、ARMv6-M アーキテクチャに定義されている後着割り込みおよび割り込みテールチェイン機構が実装されています。 ワース ト ケースの割り込みレイテンシは、 ジッ ター抑制を使用していない 0 ウェイ ト ステートのシステムで、 最も優先度の高いアクティブな割り込みについて、 15 サイクルです。

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

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

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 3-11ID061713 Non-Confidential

Page 34: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

第 4 章 システム制御

本章では、 システム制御レジスタ と、 それらの構造の概要について説明します。 本章は次のセクシ ョ ンで構成されています。

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

• 「システム制御レジスタの概要」 (ページ 4-3)

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 4-1ID061713 Non-Confidential

Page 35: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

システム制御

4.1 システム制御について

このセクシ ョ ンでは、 各種のシステム制御機能の制御と構成を行う、 システム制御レジスタについて説明します。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 4-2ID061713 Non-Confidential

Page 36: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

システム制御

4.2 システム制御レジスタの概要

システム制御レジスタを、 表 4-1 に示します。 各レジスタは 32 ビッ ト幅です。

注 • すべてのシステム制御レジスタは、 ワード転送でのみアクセス可能です。 ハー

フワードやバイ トの読み出し / 書き込みを試みた場合、 結果は予測不能です。

• プロセッサに SysTick タイマが実装されていない場合、 SYST_CSR、SYST_RVR、 SYST_CVR、 SYST_CALIB レジスタは、 RAZ/WI です。

• システム制御レジスタ と、 それらのアドレス、 アクセスタイプ、 リセッ ト時の値の詳細のうち、 表 4-1 に記載されていないものについては、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

4.2.1 CPUID レジスタ

CPUID には次の特徴があ り ます。

目的 プロセッサに固有の部品番号、 バージ ョ ン、 実装の情報が格納されています。

表 4-1 システム制御レジスタ

名前 説明

SYST_CSR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「SysTick 制御およびステータスレジスタ」

SYST_RVR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「SysTick リ ロード値レジスタ」

SYST_CVR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「SysTick 現在値レジスタ」

SYST_CALIBa 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「SysTick 較正値レジスタ」

CPUID 「CPUID レジスタ」 を参照

ICSR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「割り込み制御状態レジスタ」

AIRCRa 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「アプ リケーシ ョ ン割り込みおよびリセッ ト制御レジスタ」

CCR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「構成および制御レジスタ」

SHPR2 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「システムハンド ラ優先度レジスタ 2」

SHPR3 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「システムハンド ラ優先度レジスタ 3」

SHCSR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「システムハンド ラ制御および状態レジスタ」

VTORb 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「ベク タテーブル オフセッ トレジスタ」

ACTLRc 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「補助制御レジスタ」

a. この値は、 実装者によ り実装時に構成されます。 詳細については、 実装者から提供されている説明書を参照して下さい。

b. 実装されている場合、 VTOR によってベク タテーブル アドレスのビッ ト [31:8] を指定できます。c. RAZ/WI と して実装されます。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 4-3ID061713 Non-Confidential

Page 37: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

システム制御

使用制限 使用制限はあり ません。

属性 表 4-1 (ページ 4-3) を参照して下さい。

CPUID レジスタのビッ ト割り当てを、 図 4-1 に示します。

図 4-1 CPUID レジスタのビッ ト割り当て

CPUID レジスタのビッ ト割り当てを、 表 4-2 に示します。

31 16 15 4 3 0

IMPLEMENTER REVISIONPARTNO

24 23 20 19

VARIANT ARCHITECTURE

表 4-2 CPUID レジスタのビッ ト割り当て

ビッ ト フ ィールド 機能

[31:24] IMPLEMENTER 実装者コード0x41 ARM

[23:20] VARIANT rnpm 形式で示される リ ビジ ョ ンステータスのうち、 メジャーバージ ョ ン番号を示す n の部分。 「製品リ ビジ ョ ンステータス」 (ページ vi) を参照して下さい。

0x0

[19:16] ARCHITECTURE アーキテクチャを示し、 ARMv6-M では次のとおりです。

0xC

[15:4] PARTNO 部品番号を示し、 Cortex-M0+ では次のとおりです。

0xC60

[3:0] REVISION rnpm 形式で示される リ ビジ ョ ンステータスのうち、 マイナーリ ビジ ョ ン番号を示す m の部分。 「製品リ ビジ ョ ンステータス」 (ページ vi) を参照して下さい。 0x1

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 4-4ID061713 Non-Confidential

Page 38: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

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

本章では、 ネス ト型ベクタ割り込みコン ト ローラ (NVIC) の概要について説明します。 本章は次のセクシ ョ ンで構成されています。

• 「NVIC について」 (ページ 5-2)

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 5-1ID061713 Non-Confidential

Page 39: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

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

5.1 NVIC について

外部割り込み信号は NVIC に接続され、 NVIC によって割り込みの優先度付けが行われます。 ソフ ト ウェアで、 各割り込みに優先度を設定できます。 NVIC とCortex-M0+ プロセッサコアとは密接に結合されているため、 レイテンシの短い割り込み処理や、 後着割り込みの効率的な処理が可能です。

すべての NVIC レジスタは、 ワード転送でのみアクセス可能です。 個別のハーフワードやバイ トの読み出し / 書き込みを試みた場合、 結果は予測不能です。

NVIC レジスタは常にリ トルエンディアンです。 プロセッサからのアクセスは、 プロセッサのエンディアン構成にかかわらず、 正し く処理されます。

プロセッサの例外処理については、 「例外」 (ページ 3-11) を参照して下さい。

5.1.1 SysTick タイマのオプシ ョ ン

実装に 24 ビッ トの SysTick システムタイマを搭載し、 プロセッサと NVIC の両方の機能を拡張できます。

このタイマが存在する場合、 NVIC 部分で次の拡張機能が提供されます。

• 24 ビッ トのシステムタイマ (SysTick)

• SysTick 割り込みについて構成可能な追加の優先度

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

5.1.2 低電力モード

実装に WIC を含めるこ とができます。 これによって、 プロセッサと NVIC を超低電力のス リープモードに移行し、 割り込みの識別と優先度付けは WIC に任せるこ とができます。

プロセッサには、 割り込み待ち (WFI)、 イベン ト待ち (WFE)、 イベン ト送信 (SEV) 命令が完全に実装されています。 さ らに、 プロセッサは SLEEPONEXIT の使用もサポート しており、 これを使用した場合、 プロセッサコアが例外ハンド ラからスレッ ドモードに復帰したと きにス リープモードに移行します。 詳細については、 『ARMv6-Mアーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 5-2ID061713 Non-Confidential

Page 40: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

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

5.2 NVIC レジスタの概要

NVIC レジスタを、 表 5-1 に示します。 各レジスタは 32 ビッ ト幅です。

注 NVIC レジスタ と、 それらのアドレス、 アクセスタイプ、 リセッ ト時の値の詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

表 5-1 NVIC のレジスタ

名前 説明

NVIC_ISER 割り込みイネーブルセッ ト レジスタ

NVIC_ICER 割り込みイネーブルク リ ア レジスタ

NVIC_ISPR 割り込み保留セッ ト レジスタ

NVIC_ICPR 割り込み保留ク リ アレジスタ

NVIC_IPR0 ~ NVIC_IPR7 割り込み優先度レジスタ

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 5-3ID061713 Non-Confidential

Page 41: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

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

本章では、 プロセッサのメモ リ保護ユニッ ト (MPU) について説明します。 本章は次のセクシ ョ ンで構成されています。

• 「MPU について」 (ページ 6-2)

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

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 6-1ID061713 Non-Confidential

Page 42: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

メモリ保護ユニッ ト

6.1 MPU について

MPU は、 メモ リ を保護するためのオプシ ョ ンコンポーネン トです。 これが実装されている場合、 プロセッサは ARMv6 保護メモリ システムアーキテクチャ モデルをサポート します。 MPU は、 次の機能を完全にサポート しています。

• 8 つの統一保護領域

• 保護領域のオーバラ ップ。 優先度は次のとおりです。

— 7 = 最高優先度

— 0 = 最低優先度

• アクセス許可

• システムへのメモ リ属性のエクスポート

MPU で不一致やアクセス許可違反が発生する と、 HardFault ハンド ラが起動されます。 詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

MPU は、 次の目的に使用できます。

• 特権規則の強制

• プロセスの分離

• メモ リ属性の管理

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 6-2ID061713 Non-Confidential

Page 43: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

メモリ保護ユニッ ト

6.2 MPU レジスタの概要

MPU レジスタを、 表 6-1 に示します。 各レジスタは 32 ビッ ト幅です。 実装に MPUが存在しない場合、 これらのレジスタはすべて読み出し値 0 です。

注 • MPU レジスタ と、 それらのアドレス、 アクセスタイプ、 リセッ ト時の値の詳細

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

• MPU は 256 バイ トから 4GB までの領域サイズをサポート し、 領域ごとに 8 つのサブ領域をサポートできます。

表 6-1 MPU レジスタ

名前 説明

MPU_TYPE MPU タイプレジスタ

MPU_CTRL MPU 制御レジスタ

MPU_RNR MPU 領域番号レジスタ

MPU_RBAR MPU 領域ベースアドレス レジスタ

MPU_RASR MPU 領域属性およびサイズレジスタ

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 6-3ID061713 Non-Confidential

Page 44: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

第 7 章 デバッグ

本章では、 デバッグシステムの概要について説明します。 本章は次のセクシ ョ ンで構成されています。

• 「デバッグについて」 (ページ 7-2)

• 「デバッグレジスタの概要」 (ページ 7-7)

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-1ID061713 Non-Confidential

Page 45: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

デバッグ

7.1 デバッグについて

デバッグの構成は、 デバッグが実装されるかど うかも含め、 プロセッサの実装により決定されます。 デバッグが実装されない場合、 ROM テーブルは存在せず、 ホールト、 ブレークポイン ト、 ウォッチポイン トの機能も存在しません。

基本的なデバッグ機能には、 プロセッサのホールト、 シングルステップ、 プロセッサコア レジスタへのアクセス、 リセッ トおよび HardFault ベクタキャ ッチ、 無制限のソフ ト ウェアブレークポイン ト、 システム メモ リへの完全なアクセスが含まれます。『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

デバッグオプシ ョ ンには、 次のいずれかまたは両方が含まれるこ とがあ り ます。

• ハードウェアブレークポイン ト を 1 ~ 4 つサポートするブレークポイン トユニッ ト

• 1 つまたは 2 つのウォッチポイン ト をサポートするウォッチポイン トユニッ ト

プロセッサの実装を分割し、 プロセッサコアおよび NVIC とは独立した電力ド メ インにデバッグコンポーネン ト を置く こ と も可能です。

デバッグが実装されている場合、 デバッガは CoreSight デバッグインフラス ト ラ クチャを使用してデバッグコンポーネン ト を識別し、 接続するこ とをお勧めします。

CoreSight デバッグインフラス ト ラ クチャのコンポーネン ト を検出するには、 デバッガで図 7-1 のフローに従う こ とをお勧めします。 この例では、 デバッガは CoreSightシステムに含まれている各 CoreSight コンポーネン トのペリ フェラルおよびコンポーネン ト ID レジスタを読み出します。

図 7-1 CoreSight の検出

CoreSight システム内の Cortex-M0+ プロセッサを識別するには、 デバッガで次の動作を実行するこ とをお勧めします。

1. CoreSight 識別機能を使用して、 Cortex-M0+ ROM テーブルの位置を見つけ、 識別します。 「Cortex-M0+ ROM テーブルの識別値」 (ページ 7-3) を参照して下さい。

2. その Cortex-M0+ ROM テーブル内で、 次のポインタを追跡します。

a. システム制御空間 (SCS)

‡ ‡

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-2ID061713 Non-Confidential

Page 46: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

デバッグ

b. ブレークポイン トユニッ ト (BPU)

c. データウォッチポイン ト ユニッ ト (DWT)

「Cortex-M0+ ROM テーブルのコンポーネン ト 」 を参照して下さい。

デバッガが CoreSight 識別から SCS を識別する と き、 SCS のアドレス 0xE000ED00

からオフセッ ト 0xD00 にある CPUID レジスタから、 プロセッサとその リ ビジ ョン番号を識別できます。

デバッガでは、 最初に検出した ROM テーブルが Cortex-M0+ ROM テーブルである と想定するこ とはできません。 システム内に他の CoreSight コンポーネン トが存在する場合、 または実装を一意に識別可能とする目的がある場合、 アクセスポート とCortex-M0+ ROM テーブルとの間に 1 つ以上のシステム ROM テーブルが必要です。

7.1.1 Cortex-M0+ ROM テーブルの識別とエン ト リ

デバッガ検出用の ROM テーブル識別レジスタ とその値を、 表 7-1 に示します。 これらのレジスタによ り、 デバッガはプロセッサと、 そのデバッグ機能を識別できます。

注 Cortex-M0+ ROM テーブルは、 ワードサイズのト ランザクシ ョ ンのみをサポート します。

Cortex-M0+ ROM テーブルが指す CoreSight コンポーネン ト を、 表 7-2 に示します。値は、 実装されているデバッグ構成によって異なり ます。

表 7-1 Cortex-M0+ ROM テーブルの識別値

レジスタ 値 説明

ペリ フェラル ID4 0x00000004 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「コンポーネン トおよびペリ フェラル ID レジスタのフォーマッ ト 」

ペリ フェラル ID0 0x000000C0

ペリ フェラル ID1 0x000000B4

ペリ フェラル ID2 0x0000000B

ペリ フェラル ID3 0x00000000

コンポーネン ト ID0 0x0000000D

コンポーネン ト ID1 0x00000010

コンポーネン ト ID2 0x00000005

コンポーネン ト ID3 0x000000B1

表 7-2 Cortex-M0+ ROM テーブルのコンポーネン ト

コンポーネン ト 値 説明

SCS 0xFFF0F003 「システム制御空間」 (ページ 7-4) を参照

DWT 0xFFF02003a 「データウォッチポイン ト ユニッ ト 」 (ページ 7-5) を参照

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-3ID061713 Non-Confidential

Page 47: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

デバッグ

SCS、 DWT、 BPU の ROM テーブルエン ト リは、 それぞれアドレス 0xE000E000、0xE0001000、 0xE0002000 のデバッグコンポーネン ト を指しています。 各エン ト リの値は、 ROM テーブルのベースアドレス 0xE00FF000 からそのコンポーネン トへのオフセッ トです。

ROM テーブルの ID と コンポーネン ト レジスタ、 およびそれらのアドレス とアクセスタイプの詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』および 『CoreSight SoC テクニカルリ ファレンス マニュアル』 を参照して下さい。

7.1.2 システム制御空間

デバッグが実装されている場合、 プロセッサは SCS のレジスタを経由してデバッグを提供します。 「デバッグレジスタの概要」 (ページ 7-7) を参照して下さい。

SCS CoreSight 識別

デバッガ検出用の SCS CoreSight 識別レジスタ とその値を、 表 7-3 に示します。Cortex-M0+ プロセッサの最終的なデバッガ識別は、 SCS の CPUID レジスタによって行われます。 「CPUID レジスタ」 (ページ 4-3) を参照して下さい。

SCS CoreSight 識別レジスタ、 およびそれらのアドレス とアクセスタイプの詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 および 『CoreSight SoC テクニカルリ ファレンス マニュアル』 を参照して下さい。

BPU 0xFFF03003b 「ブレークポイン トユニッ ト 」 (ページ 7-6) を参照

終了マーカ 0x00000000 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「DAP アクセス可能な ROM テーブル」 を参照

MemType 0x00000001 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「CoreSight 管理レジスタ」 を参照

a. ウォ ッチポイン トが実装されていない場合、 読み出し値は 0xFFF02002 です。b. ブレークポイン トが実装されていない場合、 読み出し値は 0xFFF03002 です。

表 7-2 Cortex-M0+ ROM テーブルのコンポーネン ト ( 続き )

コンポーネン ト 値 説明

表 7-3 SCS 識別値

レジスタ 値 説明

ペリ フェラル ID4 0x00000004 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「コンポーネン トおよびペリ フェラル ID レジスタのフォーマッ ト 」

ペリ フェラル ID0 0x00000008

ペリ フェラル ID1 0x000000B0

ペリ フェラル ID2 0x0000000B

ペリ フェラル ID3 0x00000000

コンポーネン ト ID0 0x0000000D

コンポーネン ト ID1 0x000000E0

コンポーネン ト ID2 0x00000005

コンポーネン ト ID3 0x000000B1

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-4ID061713 Non-Confidential

Page 48: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

デバッグ

7.1.3 データウォッチポイン ト ユニッ ト

Cortex-M0+ DWT 実装では、 0、 1、 または 2 つのウォッチポイン ト レジスタの組が提供されます。 ウォッチポイン トが構成されていないプロセッサには、 ウォ ッチポイン ト機能も実装されておらず、 DTW が実装されていないこ とが ROM テーブルによって示されます。

DWT 機能

プロセッサのウォッチポイン トには、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 に説明されているよ うに、 データアドレス と PC ベース両方のウォッチポイン ト機能、 PC サンプ リ ングレジスタ、 およびサポート コンパレータのアドレスマスキングが実装されています。

DWT CoreSight 識別

デバッガ検出用の DWT テーブル識別レジスタ とその値を、 表 7-4 に示します。

DWT CoreSight 識別レジスタ、 およびそれらのアドレス とアクセスタイプの詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 および 『CoreSight SoC テクニカルリ ファレンス マニュアル』 を参照して下さい。

DWT プログラムカウンタ サンプルレジスタ

データウォッチポイン ト ユニッ ト を実装しているプロセッサには、 ARMv6-M のオプシ ョ ンの DWT プログラムカウンタ サンプルレジスタ (DWT_PCSR) も実装されています。 このレジスタによ り、 デバッガはプロセッサをホールトせず、 定期的に PCをサンプリ ングできます。 これによって、 粒度の荒いプロファイ リ ングが可能になり ます。 詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

Cortex-M0+ の DWT_PCSR は、 条件コードが成功した命令と、 失敗した命令の両方を記録します。

表 7-4 DWT 識別値

レジスタ 値 説明

ペリ フェラル ID4 0x00000004 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「コンポーネン トおよびペリ フェラル ID レジスタのフォーマッ ト 」

ペリ フェラル ID0 0x0000000A

ペリ フェラル ID1 0x000000B0

ペリ フェラル ID2 0x0000000B

ペリ フェラル ID3 0x00000000

コンポーネン ト ID0 0x0000000D

コンポーネン ト ID1 0x000000E0

コンポーネン ト ID2 0x00000005

コンポーネン ト ID3 0x000000B1

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-5ID061713 Non-Confidential

Page 49: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

デバッグ

7.1.4 ブレークポイン トユニッ ト

Cortex-M0+ の BPU 実装では、 0 ~ 4 つのブレークポイン ト レジスタが提供されます。 ブレークポイン トが構成されていないプロセッサには、 ブレークポイン ト機能も実装されておらず、 BPU が実装されていないこ とが ROM テーブルによって示されます。

BPU 機能

プロセッサのブレークポイン トには、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 で説明されている、 PC ベースのブレークポイン ト機能が実装されています。

BPU CoreSight 識別

デバッガ検出用の BPU 識別レジスタ とその値を、 表 7-5 に示します。

BPU CoreSight 識別レジスタ、 およびそれらのアドレス とアクセスタイプの詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 および 『CoreSight SoC テクニカルリ ファレンス マニュアル』 を参照して下さい。

表 7-5 BPU 識別レジスタ

レジスタ 値 説明

ペリ フェラル ID4 0x00000004 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「コンポーネン トおよびペリ フェラル ID レジスタのフォーマッ ト 」

ペリ フェラル ID0 0x0000000B

ペリ フェラル ID1 0x000000B0

ペリ フェラル ID2 0x0000000B

ペリ フェラル ID3 0x00000000

コンポーネン ト ID0 0x0000000D

コンポーネン ト ID1 0x000000E0

コンポーネン ト ID2 0x00000005

コンポーネン ト ID3 0x000000B1

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-6ID061713 Non-Confidential

Page 50: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

デバッグ

7.2 デバッグレジスタの概要

デバッグレジスタを、 表 7-6 に示します。 各レジスタは 32 ビッ ト幅です。

BPU レジスタを、 表 7-7 に示します。 各レジスタは 32 ビッ ト幅です。

DWT レジスタを、 表 7-8 に示します。 各レジスタは 32 ビッ ト幅です。

表 7-6 デバッグレジスタの概要

名前 説明

DFSR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「デバッグフォールト ステータスレジスタ」

DHCSR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「デバッグホールト制御およびステータスレジスタ」

DCRSR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「デバッグ コアレジスタ セレクタレジスタ」

DCRDR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「デバッグ コアレジスタ データレジスタ」

DEMCR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「デバッグ例外およびモニタ制御レジスタ」

表 7-7 BPU レジスタの概要

名前 説明

BP_CTRL 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「ブレークポイント制御レジスタ」

BP_COMP0 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「ブレークポイント コンパレータ レジスタ」

BP_COMP1

BP_COMP2

BP_COMP3

表 7-8 DWT レジスタの概要

名前 説明

DWT_CTRL 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「制御レジスタ」

DWT_PCSR 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「プログラムカウンタ サンプルレジスタ」

DWT_COMP0 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「コンパレータレジスタ」

DWT_MASK0a 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「マスクレジスタ」

DWT_FUNCTION0 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「機能レジスタ」

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-7ID061713 Non-Confidential

Page 51: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

デバッグ

デバッグレジスタ と、 それらのアドレス、 アクセスタイプ、 リセッ ト時の値の詳細については、 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 を参照して下さい。

注 ソフ ト ウェアはデバッグレジスタにアクセスできません。

DWT_COMP1 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「コンパレータレジスタ 」

DWT_MASK1a 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「マスクレジスタ」

DWT_FUNCTION1 『ARMv6-M アーキテクチャ リ ファレンスマニュアル』 の 「機能レジスタ」

a. 2GB までのマスキングをサポート します。

表 7-8 DWT レジスタの概要 ( 続き )

名前 説明

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. 7-8ID061713 Non-Confidential

Page 52: Cortex-M0+ テクニカルリファレンス マニュアルinfocenter.arm.com/.../DDI0484CJ_cortex_m0p_r0p0_trm_JP.pdf本書は、Cortex-M0+ プロセッサ用のテクニカルリファレンス

ARM DDI 0484CJ Copyright © 2012 ARM. All rights reserved. A-1ID061713 Non-Confidential

付録 A リビジ ョ ン

この付録では、 本書の各版の技術的な相違点について説明します。

表 A-1 A 版

変更内容 場所 影響範囲

初版 - -

表 A-2 A 版と B 版の相違点

変更内容 場所 影響範囲

技術的変更なし - -

表 A-3 B 版と C 版の相違点

変更内容 場所 影響範囲

r0p1 の CPUID を更新 「CPUID レジスタ」 (ページ 4-3) r0p1

メモ リマップのアドレス訂正 「デフォルトのメモリマップ使用法」 (ページ 3-9)

すべて