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

68
Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJ (ID060210) Cortex -M0 リビジョン : r0p0 テクニカルリファレンス マニュアル

Upload: dangdien

Post on 30-Mar-2018

265 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

Cortex™-M0リビジョン : r0p0

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

Copyright © 2009 ARM Limited. All rights reserved.ARM DDI 0432CJ (ID060210)

Page 2: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

Copyright © 2009 ARM Limited. All rights reserved.

リリース情報

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

著作権

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

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

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

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

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

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

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

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

く一切の保証を行いません。

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

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

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

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

意味で使用されています。

機密保持ステータス

本書は非機密扱いであり、本書を使用、複製、および開示する権利は、ARM および ARM が本書

を提供した当事者との間で締結した契約の条項に基づいたライセンスの制限により異なります。

アクセス制限は、ARM 社内による分類です。

製品ステータス

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

改訂履歴

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

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

2009 年 7 月 27 日 B 公開版、限定アクセス r0p0 用の 2 番目のリリース

2009 年 11 月 30 日 C 公開 r0p0 用の 3 番目のリリース

ii Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 3: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

Web アドレス

http://www.arm.com

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. iiiID060210 Non-Confidential

Page 4: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

iv Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 5: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

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

第 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-9

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. vID060210 Non-Confidential

Page 6: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

目次

3.5 プロセッサコア レジスタの概要 .............................................................. 3-113.6 例外 .......................................................................................................... 3-12

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

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

第 6 章 デバッグ6.1 デバッグについて ....................................................................................... 6-26.2 デバッグレジスタの概要 ............................................................................ 6-9

Appendix A リビジョン

用語集

vi Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 7: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

改訂履歴 ........................................................................................................................ ii表 1-1 プロセッサの構成可能なオプション ......................................................................... 1-5表 3-1 Cortex-M0 命令の概要 ............................................................................................... 3-4表 3-2 メモリマップの用途 .................................................................................................. 3-9表 3-3 プロセッサコアのレジスタセットの概要 ............................................................... 3-11表 4-1 システム制御レジスタ .............................................................................................. 4-3表 4-2 CPUID レジスタのビット割り当て ........................................................................... 4-4表 5-1 NVIC レジスタ .......................................................................................................... 5-3表 6-1 Cortex-M0 ROM テーブルの ID 値 ............................................................................ 6-4表 6-2 Cortex-M0 ROM テーブルのコンポーネント ............................................................ 6-4表 6-3 SCS 識別の値 ............................................................................................................ 6-5表 6-4 DWT 識別の値 ........................................................................................................... 6-6表 6-5 BPU 識別レジスタ .................................................................................................... 6-7表 6-6 デバッグレジスタの概要 ........................................................................................... 6-9表 6-7 BPU レジスタの概要 ................................................................................................. 6-9表 6-8 DWT レジスタの概要 ................................................................................................ 6-9表 A-1 A 版 ........................................................................................................................... A-1表 A-2 A 版と B 版との相違点 .............................................................................................. A-1表 A-3 B 版と C 版との相違点 .............................................................................................. A-2

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. viiID060210 Non-Confidential

Page 8: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

表一覧

viii Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 9: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

図 2-1 機能ブロック図 ......................................................................................................... 2-2図 4-1 CPUID レジスタのビット割り当て ........................................................................... 4-4図 6-1 CoreSight の検出 ....................................................................................................... 6-3

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. ixID060210 Non-Confidential

Page 10: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

図一覧

x Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 11: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

序章

本章では、Cortex-M0 テクニカルリファレンス マニュアル (TRM) について説

明します。本章は次のセクションから構成されています。

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. xiID060210 Non-Confidential

Page 12: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

序章

本書について

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

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

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

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

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

対象読者

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

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

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

本書の使用法

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

第 1 章 はじめに

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

第 2 章 機能の説明

プロセッサとそのコンポーネントの機能概要について説明します。

第 3 章 プログラマモデル

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

第 4 章 システム制御

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

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

ネスト型ベクタ割り込みコントローラ (NVIC) レジスタとプログラマモデルの概要について説明します。

第 6 章 デバッグ

デバッグレジスタとプログラマモデルの概要について説明します。

xii Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 13: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

序章

付録 A リビジョン

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

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

表記規則

本書では以下に示す表記規則が採用されています。

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

書体の一般的な規則

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

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

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

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

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

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

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

参照資料

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. xiiiID060210 Non-Confidential

Page 14: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

序章

ARM の刊行物

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

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

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

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

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

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

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

きます。 DAP の定義については、『ARM デバッグインタフェース仕様』の v5.1、または『ARM デバッグインタフェース v5、アーキテクチャ仕様』の A 版の正誤表を参照して下さい。

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

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

• Cortex-M0 ユーザガイド参照資料 (ARM DUI 0467A)

その他の刊行物

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

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

xiv Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 15: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

序章

ご意見・ご質問

ARM では、本プロセッサと本書に関するご意見等をお待ちしております。

プロセッサに関するご意見

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

• 製品名

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

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

本書に関するご意見

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

• 題名

• 資料番号 ARM DDI 0432CJ

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

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. xvID060210 Non-Confidential

Page 16: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

序章

xvi Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 17: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

第 1 章 はじめに

本章では、Cortex-M0 プロセッサとその機能について紹介します。本章は次

のセクションから構成されています。

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

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

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

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

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 1-1ID060210 Non-Confidential

Page 18: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

1.1 プロセッサについて

Cortex-M0 プロセッサは非常にゲート数の少ない、電力効率の高いプロセッ

サで、プロセッサの実装面積を 低限に抑える必要があるマイクロコントローラや、密な組み込み用途での利用を目的としています。

1-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 19: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

1.2 機能

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

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

• Thumb 命令セットにより、高いコード密度と 32 ビットのパフォーマン

スを両立できます。

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

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

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

• ハードウェア乗算器

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

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

ます。

Cortex-M0 アーキテクチャの準拠の詳細については、「アーキテクチャとプロ

トコルの情報」 (ページ 1-8)を参照して下さい。

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 1-3ID060210 Non-Confidential

Page 20: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

1.3 インタフェース

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

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

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

1-4 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 21: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

1.4 構成可能なオプション

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

1.4.1 構成可能な乗算器

MULS 命令は、32 ビット× 32 ビットの乗算を行い、結果の下位 32 ビットを生

成します。 プロセッサには、次のいずれかの方法で MULS を実装できます。

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

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

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

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

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

割り込み 外部割り込み数 1、2、4、8、16、24、32 のいずれか

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

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

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

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

0、1、2

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

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

乗算器 高速または小型

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 1-5ID060210 Non-Confidential

Page 22: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

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

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

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

1.5.1 説明書

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

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

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

• 次の点については、実装者に問い合わせて下さい。

— 実装のビルド構成

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

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

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

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

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

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

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

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

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

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

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

1-6 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 23: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

1.5.2 設計フロー

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

実装 実装者は、RTL を構成して合成し、ハードマクロセルを製造します。 設計には RAM の統合も含まれることがあります。

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

プログラミング

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

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

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

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

ビルドの構成

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

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

ソフトウェア構成

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 1-7ID060210 Non-Confidential

Page 24: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

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

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

プロセッサは、次のマニュアルに記載されている仕様に従ってコンパイルされるか、その仕様を実装します。

• 「ARM アーキテクチャ」

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

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

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

ARM アーキテクチャ

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

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

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

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

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

1-8 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 25: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

1.6 製品リビジョン

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

r0p0 初版

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 1-9ID060210 Non-Confidential

Page 26: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

はじめに

1-10 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 27: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

第 2 章 機能の説明

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

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 2-1ID060210 Non-Confidential

Page 28: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

機能の説明

2.1 機能について

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

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

図 2-1 機能ブロック図

実装されているデバイスで提供される機能は、次のとおりです。

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

— ARMv6-M Thumb® 命令セット

— Thumb-2 テクノロジ

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

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

— システムインタフェースは、リトルエンディアンまたはバイト不変ビッグエンディアンのデータアクセスをサポートしています。

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

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

2-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 29: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

機能の説明

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

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

— 割り込み待ち (WFI) およびイベント待ち (WFE) 命令、または割り込みからの復帰による退出時スリープ機能を使用する、低電力のスリープモードの開始

• 次の機能を実現する NVIC

— 1、2、4、8、16、24、32 個のいずれかの外部割り込み入力。それぞれの入力には 4 レベルの優先度を指定できます。

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

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

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

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

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

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

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

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

— BKPT 命令による無制限のソフトウェアブレークポイントのサポート

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

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

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

• バスインタフェース

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

— DAP をサポートする単一の 32 ビット スレーブポート

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 2-3ID060210 Non-Confidential

Page 30: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

機能の説明

2.2 インタフェース

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

ピン出力や信号名はデバイスの各実装によって異なるため、本書では説明しません。 詳細については、『Cortex-M0 統合マニュアル』または実装者のドキュメントを参照して下さい。

2.2.1 AHB-Lite インタフェース

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

『Cortex-M0 統合マニュアル』を参照して下さい。

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

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

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

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

プロセッサのスレーブポートは、完全な CoreSight DAP システムへ接続するよう構成可能で、プロセッサは完全なマルチプロセッサのデバッグを提供し、同時ホールトおよびリリースのクロストリガ機能を使用できます。

詳細については、次のドキュメントを参照して下さい。

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

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

2-4 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 31: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

第 3 章 プログラマモデル

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

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

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

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

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

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 3-1ID060210 Non-Confidential

Page 32: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

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

『ARMv6-M ARM』には、プログラマモデルの完全な説明が記載されています。 本章では、Cortex-M0 プログラマモデルの概要について説明し、実装定義の

オプションを解説します。 また、使用される ARMv6-M Thumb 命令と、プロ

セッサでの各命令のサイクル数についても説明します。その他、以下の内容についてはそれぞれの章で説明されています。

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

します。

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

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

3-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 33: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

3.2 動作と実行のモード

動作と実行のモードの詳細については、『ARMv6-M アーキテクチャ リファレ

ンスマニュアル』を参照して下さい。

注 他の ARM アーキテクチャは、ソフトウェアの特権または非特権実行の概念

をサポートしています。 本プロセッサは、複数の特権レベルをサポートして

いません。 ソフトウェアは常に特権付きで実行され、ソフトウェアはプロ

セッサのすべての機能にアクセスできます。

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 3-3ID060210 Non-Confidential

Page 34: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

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 3

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

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

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

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

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

3-4 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 35: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

比較 比較 CMP Rn, Rm 1

否定 CMN Rn, Rm 1

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

論理 論理積 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

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

LDRH Rd, [Rn, #<imm>] 2

バイト、イミディエートオフセット LDRB Rd, [Rn, #<imm>] 2

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

ハーフワード、レジスタオフセット LDRH Rd, [Rn, Rm] 2

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

LDRSH Rd, [Rn, Rm] 2

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

符号付きバイト、レジスタオフセット LDRSB Rd, [Rn, Rm] 2

PC 相対 LDR Rd, <label> 2

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

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 3-5ID060210 Non-Confidential

Page 36: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

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

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

ストア ワード、イミディエートオフセット STR Rd, [Rn, #<imm>] 2

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

STRH Rd, [Rn, #<imm>] 2

バイト、イミディエートオフセット STRB Rd, [Rn, #<imm>] 2

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

ハーフワード、レジスタオフセット STRH Rd, [Rn, Rm] 2

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

SP 相対 STR Rd, [SP, #<imm>] 2

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

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

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

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

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

分岐 条件付き B<cc> <label> 1 または 3d

無条件 B <label> 3

リンク付き BL <label> 4

交換付き BX Rm 3

リンク付き状態遷移 BLX Rm 3

拡張 符号付きハーフワードからワード 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 命令の概要 (続き)

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

3-6 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 37: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

ARMv6-M Thumb 命令の詳細については、『ARMv6-M ARM』を参照して下さい。

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

割り込み禁止 CPSID i 1

割り込み許可 CPSIE i 1

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

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

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

ヒント イベント送信 SEV 1

イベント待ち WFE 2f

割り込み待ち WFI 2f

イールド YIELDg 1

無操作 NOP 1

バリア 命令同期 ISB 4

データメモリ DMB 4

データ同期 DSB 4

a. 乗算器の実装により異なります。

b. N は要素の数です。

c. N はスタックからのポップリストの要素数(PC を含む)で、ロードまたはストア

で HardFault 例外が生成されないことが前提です。

d. 分岐する場合 3、分岐しない場合 1e. サイクル数は、コアとデバッグの構成によって異なります。

f. 割り込みまたはイベント待ちに消費された時間は除きます。

g. NOP として実行されます。

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 3-7ID060210 Non-Confidential

Page 38: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

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

本プロセッサには、他の Cortex-M プロファイルプロセッサで提供されている

命令セットと機能にバイナリ互換のサブセットが実装されています。 Cortex-M0 から他の Cortex-M プロファイルプロセッサへは、システムレベル

のソフトウェアも含めて、ソフトウェアを移動できます。

円滑な移行を保証するため、他の Cortex-M プロファイルプロセッサ アーキ

テクチャで動作するように設計するコードでは以下の規則に従い、構成制御レジスタ (CCR) を適切に構成することをお勧めします。

• NVIC およびシステム制御空間 (SCS) のレジスタへのアクセスには、

ワード転送のみを使用する。

• プロセッサの未使用の SCS レジスタおよびレジスタフィールドはすべ

て、変更不可として扱う。

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

— STKALIGN ビットを 1 に設定する。

— UNALIGN_TRP ビットを 1 に設定する。

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

3-8 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 39: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

3.4 メモリモデル

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

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

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

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

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

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

メモリマップの各領域のコード、データ、デバイスへの適合性を、表 3-2 に示します。

表 3-2 メモリマップの用途

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

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

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

a. この領域は、Cortex-M0 NVIC およびデバッグコン

ポーネント用に予約されています。

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

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

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

0x20000000 ~ 0x3FFFFFFF はいb

b. この領域にデータ密結合メモリ (TCM) を実装してい

る Cortex-M1 デバイスでは、データ TCM からの

コード実行がサポートされません。

はい いいえ

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 3-9ID060210 Non-Confidential

Page 40: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

注 コードに適切とマークされていない領域は実行不可 (XN) として動作し、こ

の位置からコードの実行を試みると HardFault 例外が生成されます。

メモリモデルの詳細については、『ARMv6-M ARM』を参照して下さい。

3-10 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 41: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

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

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

32 ビット幅です。

注 プロセッサコア レジスタと、それらのアドレス、アクセスタイプ、リセット

時の値の詳細については、『ARMv6-M ARM』を参照して下さい。

表 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) は、次のレジスタを組み合わせたものです。

• アプリケーションプログラム ステータスレジスタ (APSR)

• 割り込みプログラム ステータスレジスタ (IPSR)

• 実行プログラム ステータスレジスタ (EPSR)

これらのレジスタは、それぞれ PSR の異なるビューを提供します。

PRIMASK PRIMASK レジスタは、構成可能な優先度により、すべての例外の起動を抑止しま

す。 プロセッサがサポートする例外モデルの詳細については、「例外」 (ページ 3-12)を参照して下さい。

CONTROL CONTROL レジスタは、プロセッサがスレッドモードのときに使用されるスタック

を決定します。

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 3-11ID060210 Non-Confidential

Page 42: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

プログラマモデル

3.6 例外

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

3.6.1 例外処理

プロセッサには、『ARMv6-M ARM』で説明されている、高度な例外および割り込み処理が実装されています。

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

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

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

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

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

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

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

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

3-12 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 43: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

第 4 章 システム制御

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

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 4-1ID060210 Non-Confidential

Page 44: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

システム制御

4.1 システム制御について

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

4-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 45: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

システム制御

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

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

幅です。

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

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

予測不能です。

• プロセッサに SysTick タイマが実装されていない場合、SYST_CSR、SYST_RVR、SYST_CVR、SYST_CALIB レジスタの読み出し値は 0 で、

書き込みは無視されます (RAZ/WI)。

• システム制御レジスタの詳細、それらのアドレスとアクセスタイプ、および表 4-1 に示されていないリセット値については、『ARMv6-M ARM』

を参照して下さい。

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

名前 リセット値 説明

SYST_CSR - 『ARMv6-M ARM』の SysTick 制御およびステータスレジスタ

SYST_RVR 未知 『ARMv6-M ARM』の SysTick リロード値レジスタ

SYST_CVR 未知 『ARMv6-M ARM』の SysTick 現在値レジスタ

SYST_CALIB 実装定義a 『ARMv6-M ARM』の SysTick 較正値レジスタ

CPUID 0x410CC200 「CPUID レジスタ」 (ページ 4-4)を参照

ICSR - 『ARMv6-M ARM』の割り込み制御状態レジスタ

AIRCR 0x00000000b

0x00008000c

『ARMv6-M ARM』のアプリケーション割り込みおよびリセット制御レ

ジスタ

CCR - 『ARMv6-M ARM』の構成および制御レジスタ

SHPR2 - 『ARMv6-M ARM』のシステムハンドラ優先度レジスタ 2

SHPR3 - 『ARMv6-M ARM』のシステムハンドラ優先度レジスタ 3

SHCSR - 『ARMv6-M ARM』のシステムハンドラ制御および状態レジスタ

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

参照して下さい。

b. リトルエンディアンの実装

c. ビッグエンディアンの実装

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 4-3ID060210 Non-Confidential

Page 46: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

システム制御

4.2.1 CPUID レジスタ

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

目的 プロセッサに固有の部品番号、バージョン、実装の情報が

格納されています。

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

属性 「システム制御レジスタ」 (ページ 4-3)を参照して下さい。

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

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

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

31 16 15 4 3 024 23 20 19

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

ビット フィールド 機能

[31:24] 実装者 実装者コード

0x41 = ARM

[23:20] バリアント 実装定義。 ARM 実装では、メジャーリビジョン番号 n で、「製品リビジョンステー

タス」 (ページ xii)に記載されているリビジョンステータスの rnpn の rn 部分です。

0x0

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

0xC

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

0xC20

[3:0] リビジョン リビジョンを示します。 ARM 実装では、マイナーリビジョン番号 n で、「製品リビ

ジョンステータス」 (ページ xii)に記載されているリビジョンステータスの rnpnの pn 部分です。 例えば、リリース r0p0 では次のとおりです。

0x0

4-4 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 47: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

本章では、ネスト型ベクタ割り込みコントローラ (NVIC) の概要について説

明します。本章は次のセクションから構成されています。

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 5-1ID060210 Non-Confidential

Page 48: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

5.1 NVIC について

外部割り込み信号は NVIC に接続され、NVIC によって割り込みの優先度付

けが行われます。 ソフトウェアで、各割り込みに優先度を設定できます。 NVIC と Cortex-M0 プロセッサコアとは密接に結合されているため、レイテ

ンシの短い割り込み処理や、後着割り込みの効率的な処理が可能です。

すべての NVIC レジスタは、ワード転送でのみアクセス可能です。 個別の

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

です。

NVIC レジスタは常にリトルエンディアンです。 プロセッサからのアクセス

は、プロセッサのエンディアン構成にかかわらず、正しく処理されます。

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

5.1.1 SysTick タイマのオプション

実装に 24 ビットの SysTick システムタイマを搭載し、プロセッサと NVIC 両

方の機能を拡張できます。

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

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

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

詳細については、『ARMv6-M ARM』を参照して下さい。

5.1.2 低電力モード

実装に WIC を含めることができます。 これによって、プロセッサと NVIC を

超低電力のスリープモードに移行し、割り込みの識別と優先度付けは WIC に

任せることができます。

プロセッサには、割り込み待ち (WFI)、イベント待ち (WFE)、イベント送信

(SEV) 命令が完全に実装されています。 さらに、プロセッサは SLEEPONEXITの使用もサポートしており、これを使用した場合、プロセッサコアが例外ハンドラからスレッドモードに復帰したときにスリープモードに入ります。 詳細については、『ARMv6-M ARM』を参照して下さい。

5-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 49: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

5.2 NVIC レジスタの概要

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

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

詳細については、『ARMv6-M ARM』を参照して下さい。

表 5-1 NVIC レジスタ

名前 説明

ISER 『ARMv6-M ARM』の割り込みイネーブルセット レジスタ

ICER 『ARMv6-M ARM』の割り込みイネーブルクリア レジスタ

ISPR 『ARMv6-M ARM』の割り込み保留セットレジスタ

ICPR 『ARMv6-M ARM』の割り込み保留クリアレジスタ

IPR0-IPR7 『ARMv6-M ARM』の割り込み優先度レジスタ

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 5-3ID060210 Non-Confidential

Page 50: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

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

5-4 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 51: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

第 6 章 デバッグ

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

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

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 6-1ID060210 Non-Confidential

Page 52: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

6.1 デバッグについて

デバッグの構成は、デバッグが実装されるかどうかも含め、プロセッサの実装により決定されます。 デバッグが実装されない場合、ROM テーブルは存在せ

ず、ホールト、ブレークポイント、ウォッチポイントの機能も存在しません。

基本的なデバッグ機能には、プロセッサのホールト、シングルステップ、プロセッサのコアレジスタへのアクセス、Reset および HardFault ベクタキャッ

チ、無制限のソフトウェアブレークポイント、システムメモリへの完全なアクセスが含まれます。 詳細については、『ARMv6-M ARM』を参照して下さい。

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

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

トユニット

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

ニット

プロセッサの実装を分割し、プロセッサコアおよび NVIC とは独立した電力

ドメインにデバッグコンポーネントを置くことも可能です。

デバッグが実装されている場合、デバッガは CoreSight デバッグインフラスト

ラクチャを使用してデバッグコンポーネントを識別し、接続することをお勧めします。

デバッガが CoreSight デバッグインフラストラクチャのコンポーネントを検出

するために使用する推奨フローを、図 6-1 (ページ 6-3)に示します。 この例

では、デバッガは CoreSight システムに含まれている各 CoreSight コンポーネ

ントのペリフェラルおよびコンポーネント ID レジスタを読み出します。

6-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 53: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

図 6-1 CoreSight の検出

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

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

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

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

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

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

詳細については、「Cortex-M0 ROM テーブルのコンポーネント」 (ページ 6-4)を参照して下さい。

デバッガが CoreSight 識別機能から SCS を識別するとき、SCS (0xE000ED00) のオフセット 0xD00 にある CPUID レジスタから、プロセッサとそのリビジョン番号を識別できます。

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

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 6-3ID060210 Non-Confidential

Page 54: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

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

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

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

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

表 6-1 Cortex-M0 ROM テーブルの ID 値

レジスタ 値 説明

ペリフェラル ID4 0x00000004 『ARMv6-M ARM』のコンポーネントおよびペリフェラル IDレジスタのフォーマット

ペリフェラル ID0 0x00000071

ペリフェラル ID1 0x000000B4

ペリフェラル ID2 0x0000000B

ペリフェラル ID3 0x00000000

コンポーネント ID0 0x0000000D

コンポーネント ID1 0x00000010

コンポーネント ID2 0x00000005

コンポーネント ID3 0x000000B1

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

コンポーネント 値 説明

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

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

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

終了マーカ 0x00000000 『ARMv6-M ARM』の「DAP アクセス可能な ROM テーブル」を参照

MemType 0x00000001 『ARMv6-M ARM』の「CoreSight 管理レジスタ」を参照

6-4 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 55: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

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

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

6.1.2 システム制御空間

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

SCS CoreSight 識別

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

a. ウォッチポイントが実装されていない場合、0xFFF02002 が読み出されます。

b. ブレークポイントが実装されていない場合、0xFFF03002 が読み出されます。

表 6-3 SCS 識別の値

レジスタ 値 説明

ペリフェラル ID4 0x00000004 『ARMv6-M ARM』のコンポーネントおよびペリフェラル IDレジスタのフォーマット

ペリフェラル ID0 0x00000008

ペリフェラル ID1 0x000000B0

ペリフェラル ID2 0x0000000B

ペリフェラル ID3 0x00000000

コンポーネント ID0 0x0000000D

コンポーネント ID1 0x000000E0

コンポーネント ID2 0x00000005

コンポーネント ID3 0x000000B1

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 6-5ID060210 Non-Confidential

Page 56: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

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

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

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

DWT 機能

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

DWT CoreSight 識別

デバッガで検出できる DWT 識別レジスタとその値を、表 6-4 に示します。

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

表 6-4 DWT 識別の値

レジスタ 値 説明

ペリフェラル ID4 0x00000004 『ARMv6-M ARM』のコンポーネントおよびペリフェラル IDレジスタのフォーマット

ペリフェラル ID0 0x0000000A

ペリフェラル ID1 0x000000B0

ペリフェラル ID2 0x0000000B

ペリフェラル ID3 0x00000000

コンポーネント ID0 0x0000000D

コンポーネント ID1 0x000000E0

コンポーネント ID2 0x00000005

コンポーネント ID3 0x000000B1

6-6 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 57: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

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

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

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

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

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

BPU 機能

プロセッサのブレークポイントでは、『ARMv6-M ARM』に説明されているように、PC ベースのブレークポイント機能が実装されています。

BPU CoreSight 識別

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

表 6-5 BPU 識別レジスタ

レジスタ 値 説明

ペリフェラル ID4 0x00000004 『ARMv6-M ARM』のコンポーネントおよびペリフェラル IDレジスタのフォーマット

ペリフェラル ID0 0x0000000B

ペリフェラル ID1 0x000000B0

ペリフェラル ID2 0x0000000B

ペリフェラル ID3 0x00000000

コンポーネント ID0 0x0000000D

コンポーネント ID1 0x000000E0

コンポーネント ID2 0x00000005

コンポーネント ID3 0x000000B1

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 6-7ID060210 Non-Confidential

Page 58: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

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

6-8 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 59: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

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

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

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

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

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

名前 説明

DFSR 『ARMv6-M ARM』のデバッグフォールト ステータスレジスタ

DHCSR 『ARMv6-M ARM』のデバッグホールト制御およびステータスレジスタ

DCRSR 『ARMv6-M ARM』のデバッグコアレジスタ セレクタレジスタ

DCRDR 『ARMv6-M ARM』のデバッグコアレジスタ データレジスタ

DEMCR 『ARMv6-M ARM』のデバッグ例外およびモニタ制御レジスタ

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

名前 説明

BP_CTRL 『ARMv6-M ARM』のブレークポイント制御レジスタ

BP_COMP0 『ARMv6-M ARM』のブレークポイントコンパレータ レジスタ

BP_COMP1

BP_COMP2

BP_COMP3

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

名前 説明

DWT_CTRL 『ARMv6-M ARM』の制御レジスタ

DWT_PCSR 『ARMv6-M ARM』のプログラムカウンタ サンプルレジスタ

DWT_COMP0 『ARMv6-M ARM』のコンパレータレジスタ

DWT_MASK0 『ARMv6-M ARM』のマスクレジスタ

DWT_FUNCTION0 『ARMv6-M ARM』の機能レジスタ

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. 6-9ID060210 Non-Confidential

Page 60: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

デバッグ

注 デバッグレジスタと、それらのアドレス、アクセスタイプ、リセット時の値の詳細については、『ARMv6-M ARM』を参照して下さい。

DWT_COMP1 『ARMv6-M ARM』のコンパレータレジスタ

DWT_MASK1 『ARMv6-M ARM』のマスクレジスタ

DWT_FUNCTION1 『ARMv6-M ARM』の機能レジスタ

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

名前 説明

6-10 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 61: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

付録 A リビジョン

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

表 A-1 A 版

変更内容 場所 影響範囲

初版 - -

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

変更内容 場所 影響範囲

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

すべてのリビジョン

命令セットの概要の更新 「命令セットの概要」 (ページ 3-4) すべてのリビジョン

プロセッサコアのレジスタセットの概要の明確化 「プロセッサコア レジスタの概要」 (ページ 3-11)

すべてのリビジョン

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. A-1ID060210 Non-Confidential

Page 62: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

リビジョン

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

変更内容 場所 影響範囲

技術的変更なし - -

A-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 63: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

用語集

この用語集では、ARM Limited の発行する技術文書で使用されている用語の一部について説明します。

AHB アドバンスト ハイパフォーマンスバス参照。

AHB-AP AHB アクセスポート参照。

AHB-Lite 完全な AMBA AHB プロトコル仕様のサブセット。大部分の AMBA AHB マスタ / スレーブ設計に必要なすべての基本機能を提供しており、特に複数レイヤの AMBA 相互接続で使用されます。ほとんどの場合、完全な AMBA AHBインタフェースで提供されている追加の機能は、AMBA AXI プロトコルインタフェースで実装するとより効率的になります。

AHB アクセスポート (AHB-AP)DAP のオプションコンポーネントで、SoC への AHB インタフェースを提供します。

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

JTAG ジョイントテスト アクショングループ参照。

JTAG-DP JTAG デバッグポート参照。

JTAG デバッグポート (JTAG-DP)デバッグアクセス用に標準の JTAG インタフェースを提供する、DAP 用のオプションの外部インタフェース。

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. Glossary-1ID060210 Non-Confidential

Page 64: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

用語集

LE バイト不変とワード不変の両方のシステムにおける、リトルエンディアン形式のメモリビュー。バイト不変とワード不変も参照。

SWD シリアルワイヤ デバッグ参照。

SW-DP シリアルワイヤ デバッグポート参照。

TAP テスト アクセスポート参照。

Thumb 状態 Thumb(16 ビット)ハーフワードアラインド命令を実行しているプロセッサは、Thumb 状態で動作しています。

Thumb 命令 ARM プロセッサが Thumb 状態で実行する動作を指定するハーフワード。Thumb 命令は、ハーフワードアラインドの必要があります。

アーキテクチャ プロセッサと、プロセッサに接続されているコンポーネントとを特徴付けるハードウェアおよびソフトウェアの構成。装置の動作を記述するときに、装置を似たような特徴でまとめて扱えるようにします。例えば、ハーバードアーキテクチャ、命令セットアーキテクチャ、ARMv6-M アーキテクチャなど。

アドバンスト ハイパフォーマンスバス (AHB)アドレス / 制御フェーズとデータフェーズとの間である決まったパイプラインを使用するバスプロトコル。AMBA AXI プロトコルで提供されている機能のサブセットのみをサポートします。完全な AMBA AHB プロトコル仕様には、一般的なマスタ / スレーブの設計資産 (IP) を使った開発では必要とされない機能が多く含まれているため、通常はプロトコルのサブセットだけを使用することをお勧めします。このサブセットは、AMBA AHB-Lite プロトコルとして定義されています。

アドバンスト マイクロコントローラバス アーキテクチャと AHB-Lite も参照。

アドバンスト マイクロコントローラバス アーキテクチャ (AMBA)相互接続のための方針が記載された、プロトコル仕様のファミリ。AMBAは、オンチップバスに関する ARM のオープンな規格です。システムオンチップ (SoC) を構築する機能ブロックの相互接続と管理のための方針が詳しく記載された、オンチップバスの仕様です。1 つまたは複数の CPU または信号プロセッサ、および複数のペリフェラルを含む組み込みプロセッサの開発に役立ちます。AMBA は、SoC モジュール用の共通バックボーンを定義することによって、再利用可能な設計手法をより完全なものにします。

アラインド データサイズで決まるバイト数で割り切れるアドレスに保存されたデータ項目を、アラインド、またはアラインしていると呼びます。アラインしているワードとハーフワードのアドレスは、それぞれ 4 と 2 で割り切れます。したがって、ワードアラインドとハーフワードアラインドという用語は、それぞれ 4 と 2 で割り切れるアドレスを規定しています。

Glossary-2 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 65: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

用語集

アンアラインド データサイズのバイト数で割り切れないアドレスに保存されているデータ項目を、アンアラインドと呼びます。例えば、4 で割り切れないアドレスに保存されているワードはアンアラインドです。

ウォッチポイント ウォッチポイントは、デバッガで提供されている機構で、特定のメモリアドレスに保存されているデータが変更されたときにプログラムの実行を停止します。プログラマは、ウォッチポイントを挿入することによって、メモリが書き込まれたときの、レジスタの内容、メモリの位置、変数の値を検査して、プログラムが正常に動作しているかどうかをテストすることができます。プログラムのテストが完了した後で、ウォッチポイントは削除されます。ブレークポイントも参照。

エンディアン形式 バイトの順序。データワードの連続するバイトがメモリに保存される順序を決定する方式。システムのメモリマッピングの見え方。

リトルエンディアンとビッグエンディアンも参照。

コア ALU、データパス、汎用レジスタ、プログラムカウンタ、命令デコードおよび制御回路を含む、プロセッサの一部。

実装定義 動作がアーキテクチャで定義されておらず、個別の実装によって定義や文書化が行われます。

ジョイントテスト アクショングループ (JTAG)IEEE 1149.1 規格を策定した団体の名前。この規格では、集積回路デバイスのインサーキット テストに使用される、バウンダリスキャン アーキテクチャが定義されています。頭文字の JTAG で広く知られています。

シリアルワイヤ デバッグ (SWD)SoC とデバッガとの間でシリアル接続を使用するデバッグ実装。 この接続では通常、JTAG 接続に必要な 4 ~ 6 の信号の代わりに、双方向のデータ信号と、独立したクロック信号が必要となります。

シリアルワイヤ デバッグポート (SW-DP)シリアルワイヤ デバッグ用のインタフェース。

テスト アクセスポート (TAP)JTAG バウンダリスキャン アーキテクチャの入出力インタフェースと制御インタフェースを構成する、4 つの必須端子と 1 つのオプション端子の総称。必須端子は、TDI、TDO、TMS、TCK です。オプション端子は、TRST です。

デバッガ ソフトウェアの障害を検出し、場所を特定し、修正するのに使用されるプログラムと、ソフトウェアのデバッグをサポートするカスタムハードウェアを組み合わせたデバッグシステム。

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. Glossary-3ID060210 Non-Confidential

Page 66: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

用語集

デバッグアクセス ポート (DAP)システムバスへのアクセスで、AMBA、AHB、または AHB-Lite マスタとして動作する TAP ブロック。DAP は、システム規模のデバッグをサポートする、モジュラブロックのセットを総称するために使用される用語です。 DAPはモジュラーコンポーネントで、単一のデバッグインタフェースを通して、メモリマップされた AHB や APB など複数のシステムに対して、任意のアクセスをサポートするよう拡張可能なように意図されています。

ハーフワード 16 ビットのデータ項目。

バイト 8 ビットのデータ項目。

バイト不変 バイト不変のシステムでは、リトルエンディアンとビッグエンディアンの動作が切り替えられても、メモリの各バイトのアドレスは変更されません。1バイトを超えるデータ項目をメモリからロード、またはメモリにストアするとき、そのデータ項目を構成するバイトが、メモリアクセスのエンディアン形式に応じて正しい順序に配列されます。ARM アーキテクチャでは、ARMv6 およびそれ以降のバージョンでバイト不変システムがサポートされています。

ビッグエンディアン データワード内の 上位バイトから 下位バイトまでが、メモリ内のアドレスの昇順に保存されるバイト配列方式。

リトルエンディアンとエンディアン形式も参照。

ビッグエンディアン メモリ

次のようなメモリです。

• ワードアラインされたアドレスのバイトまたはハーフワードが、そのアドレスのワード内で 上位のバイトまたはハーフワードである。

• ハーフワードアラインされたアドレスのバイトが、そのアドレスのハーフワード内で 上位バイトである。

リトルエンディアン メモリも参照。

ブレークポイント プログラムの実行を停止させようとする位置にある命令を識別するために、デバッガによって提供される機構。プログラマはブレークポイントを挿入することによって、プログラムの実行中の決まった位置で、レジスタの内容、メモリの位置、変数の値を確認して、プログラムが正常に動作しているかどうかをテストすることができます。 プログラムのテストが完了した後で、ブレークポイントを削除できます。

ウォッチポイントも参照。

プロセッサ コンピュータ命令を使用してデータを処理するために必要なコンピュータシステムの回路。プロセッサは、マイクロプロセッサの略称です。完全に機能する 小のコンピュータシステムを作成するには、クロックソース、電源、メインメモリも必要です。

Glossary-4 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210

Page 67: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

用語集

マルチレイヤ クロスバースイッチに似た相互接続方式。相互接続の各マスタにはそれぞれのスレーブへの直接リンクがあり、このリンクは他のマスタとは共有されません。これによって、各マスタは他のマスタと並列に転送を処理できます。マルチレイヤ相互接続での競合は、ペイロードの宛先、通常はスレーブでのみ発生します。

予測不能 読み出しの場合は、この位置から読み出しによって返されるデータが予測不能なことを意味します。データはどのような値にもなり得ます。書き込みの場合は、この位置への書き込みによって予測不能な動作が発生するか、デバイスの構成に予測不能な変化が発生することを意味します。予測不能な命令によって、プロセッサまたはシステムのいずれかの部分に停止やハングが発生しないようにする必要があります。

予約 制御レジスタまたは命令フォーマット内のフィールドが実装で定義される場合、そのフィールドは予約されます。このようなフィールドの内容が 0 ではない場合、予測不能な結果が引き起こされます。これらのフィールドは、アーキテクチャの将来の拡張に備えて予約される場合と、実装固有の場合があります。実装で使用されないすべての予約ビットは、0 として読み書きする必要があります。

リトルエンディアン データワード内の 下位バイトから 上位バイトまでが、メモリ内のアドレスの昇順に保存されるバイト配列方式。

ビッグエンディアンとエンディアン形式も参照。

リトルエンディアンメモリ

次のようなメモリを指します。

• ワードアラインされたアドレスのバイトまたはハーフワードが、そのアドレスにあるワード内の 下位のバイトまたはハーフワードである。

• ハーフワードアラインされたアドレスのバイトが、そのアドレスにあるハーフワード内の 下位バイトである。

ビッグエンディアンメモリも参照。

例外 エラーまたはイベントで、これが発生するとプロセッサは現在実行中の命令ストリームを停止し、特定の例外ハンドラまたは割り込み処理ルーチンを実行します。例外には外部割込みや NMI のほか、プログラムの実行を中断する必要があるほど深刻だと見なされるフォールトやエラーイベントが含まれます。例として、無効なメモリアクセス、外部割り込み、未定義命令の実行などが挙げられます。例外が発生すると、通常のプログラムフローが中断され、対応する例外ベクタで実行が再開されます。例外ベクタには、例外を処理する割り込み処理ルーチンの 初の命令が含まれています。

ロード / ストアアーキテクチャ

データ処理動作が、直接メモリの内容に対してではなく、レジスタの内容に対してのみ行われるプロセッサアーキテクチャ。

ワード 32 ビットのデータ項目。

ARM DDI 0432CJ Copyright © 2009 ARM Limited. All rights reserved. Glossary-5ID060210 Non-Confidential

Page 68: Cortex-M0 テクニカルリファレンス マニュアルinfocenter.arm.com/help/topic/com.arm.doc.ddi0432cj/DDI...におけるARM ®Limited の登録商標または商標です。本書に記載されている他の商標その他の名

用語集

Glossary-6 Copyright © 2009 ARM Limited. All rights reserved. ARM DDI 0432CJNon-Confidential ID060210