

24 MHz ARM Cortex-M3マイクロコントローラ。STMicroelectronics社製。
ARM Cortex-Mは、ARM Limitedによってライセンス供与された32ビット RISC ARMプロセッサコアのグループです。これらのコアは低コストでエネルギー効率の高い集積回路に最適化されており、何百億もの民生用デバイスに組み込まれています。[1] これらはほとんどの場合マイクロコントローラチップの主要コンポーネントですが、他の種類のチップ内に組み込まれることもあります。Cortex-Mファミリは、Cortex-M0、[2] Cortex-M0+、[3] Cortex-M1、[4] Cortex-M3 、[ 5 ] Cortex-M4、[6] Cortex-M7、[7] Cortex-M23、[8] Cortex-M33 、 [9] Cortex-M35P、[10] Cortex-M52、[11] Cortex-M55、[12] Cortex-M85で構成されています。[13] Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85コアには浮動小数点ユニット (FPU)オプションが用意されており、シリコンに組み込まれている場合、これらのコアは「Cortex-MxF」と呼ばれることもあります(「x」はコアのバリアントです)。
概要
ARM Cortex-M ファミリは、マイクロコントローラ、ASIC、ASSP、FPGA、およびSoCで使用するために設計された ARM マイクロプロセッサ コアです。Cortex-M コアは専用のマイクロコントローラ チップとしてよく使用されますが、電源管理コントローラ、I/O コントローラ、システム コントローラ、タッチ スクリーン コントローラ、スマート バッテリ コントローラ、およびセンサー コントローラとして SoC チップ内に「隠されて」いることもあります。
Cortex-Aコアとの主な違いは、Cortex-M コアには、「本格的な」オペレーティング システムに不可欠であると考えられている仮想メモリ用のメモリ管理ユニット(MMU)がないことです。代わりに、Cortex-M プログラムはベアメタルで実行されるか、 Cortex-M をサポートする多くのリアルタイム オペレーティング システムのいずれかで実行されます。
8 ビット マイクロコントローラは過去に非常に人気がありましたが、ローエンドの Cortex-M チップの価格が下がるにつれて、Cortex-M が徐々に 8 ビット市場を侵食してきました。Cortex-M は、32 ビットの数学演算のメリットを活用するアプリケーションで 8 ビット チップの代替品として人気が高まり、ARM7やARM9などの古いレガシー ARM コアを置き換えています。
ライセンス
ARM Limited は、自社設計に基づく CPU デバイスの製造も販売も行わず、プロセッサ アーキテクチャを関心のある当事者にライセンス供与しています。Arm は、コストと成果物が異なるさまざまなライセンス条件を提供しています。すべてのライセンシーに対して、Arm は ARM コアの統合可能なハードウェア記述、完全なソフトウェア開発ツールセット、およびARM CPU を含む 製造シリコンの販売権を提供します。
シリコンカスタマイズ
統合デバイス製造業者 (IDM) は、ARM プロセッサIP を合成可能な RTL ( Verilogで記述)として受け取ります。この形式では、アーキテクチャ レベルの最適化と拡張を実行できます。これにより、製造業者は、クロック速度の向上、非常に低い消費電力、命令セット拡張 (浮動小数点を含む)、サイズの最適化、デバッグ サポートなどのカスタム設計目標を達成できます。特定の ARM CPU チップにどのコンポーネントが含まれているかを確認するには、製造業者のデータシートと関連ドキュメントを参照してください。
Cortex-M コアのシリコン オプションの一部は次のとおりです。
- SysTick タイマー: プロセッサとネストされたベクター割り込みコントローラ (NVIC) の両方の機能を拡張する 24 ビットのシステムタイマー。存在する場合、追加の構成可能な優先度 SysTick 割り込みも提供します。[14] [15] [16] SysTick タイマーは M0/M0+/M1/M23 ではオプションですが、これがない Cortex-M マイクロコントローラを見つけることは非常にまれです。Cortex-M33/M35P/M52/M55/M85 マイクロコントローラにセキュリティ拡張オプションがある場合は、オプションで 2 つの SysTick (1 つはセキュア、もう 1 つは非セキュア) を持つことができます。
- ビットバンド: メモリの完全なワードをビットバンド領域の 1 つのビットにマップします。たとえば、エイリアス ワードに書き込むと、ビットバンド領域の対応するビットが設定またはクリアされます。これにより、ビットバンド領域のすべての個別のビットに、ワード境界に揃えられたアドレスから直接アクセスできます。特に、個別のビットは、読み取り、変更、書き込みの命令シーケンスを実行せずに、C/C++ から設定、クリア、または切り替えることができます。[14] [15] [16] ビットバンドはオプションですが、Cortex-M3 および Cortex-M4 マイクロコントローラにビットバンドがないことはめったにありません。一部の Cortex-M0 および Cortex-M0+ マイクロコントローラにはビットバンドがあります。
- メモリ保護ユニット(MPU):特権とアクセスルールを適用することでメモリ領域を保護するためのサポートを提供します。最大16の異なる領域をサポートし、各領域はさらに同じサイズのサブ領域に分割できます。[14] [15] [16]
- 密結合メモリ (TCM): 低レイテンシ (ゼロ待機状態) SRAM で、コール スタック、RTOS 制御構造、割り込みデータ構造、割り込みハンドラコード、および速度が重要なコードを保持するために使用できます。CPUキャッシュ以外では、TCM は ARM Cortex-M マイクロコントローラで最速のメモリです。TCM はキャッシュされておらず、プロセッサやキャッシュと同じ速度でアクセスできないため、概念的には「アドレス指定可能なキャッシュ」と説明できます。ハーバード アーキテクチャプロセッサが両方から同時に読み取ることができるように、ITCM (命令 TCM) と DTCM (データ TCM) があります。DTCM には命令を含めることはできませんが、ITCM にはデータを含めることができます。TCM はプロセッサ コアに密に接続されているため、一部の実装ではDMAエンジンが TCM にアクセスできない場合があります。
- 注: ほとんどのCortex-M3およびM4チップにはビットバンドとMPUが搭載されています。ビットバンドオプションは、Cortex-Mシステムデザインキットを使用してM0/M0+に追加できます。[28]
- 注: ソフトウェアは、各機能を使用する前にその存在を検証する必要があります。[16]
- 注:テクニカル リファレンス マニュアルがリリースされるまで、Cortex-M35P に関する公開情報は限定されています。
追加のシリコンオプション: [14] [15]
- データ エンディアン: リトルエンディアンまたはビッグエンディアン。従来の ARM コアとは異なり、Cortex-M はこれらの選択肢の 1 つとしてシリコン内に永続的に固定されています。
- 割り込み: 1 ~ 32 (M0/M0+/M1)、1 ~ 240 (M3/M4/M7/M23)、1 ~ 480 (M33/M35P/M52/M55/M85)。
- ウェイクアップ割り込みコントローラ: オプション。
- ベクター テーブル オフセット レジスタ: オプション。(M0 では使用できません)。
- 命令フェッチ幅: 16 ビットのみ、またはほとんどが 32 ビット。
- ユーザー/権限のサポート: オプション。
- すべてのレジスタをリセットします: オプション。
- シングルサイクル I/O ポート: オプション。(M0+/M23)
- デバッグ アクセス ポート (DAP): なし、SWD、JTAG、SWD。(すべての Cortex-M コアでオプション)
- デバッグ サポートの停止: オプション。
- ウォッチポイント コンパレータの数: 0 ~ 2 (M0/M0+/M1)、0 ~ 4 (M3/M4/M7/M23/M33/M35P/M52/M55/M85)。
- ブレークポイントコンパレータの数: 0 ~ 4 (M0/M0+/M1/M23)、0 ~ 8 (M3/M4/M7/M33/M35P/M52/M55/M85)。
命令セット
Cortex-M0 / M0+ / M1はARMv6-Mアーキテクチャを実装し、[14] Cortex-M3はARMv7-Mアーキテクチャを実装し、[15] Cortex-M4 / Cortex-M7はARMv7E-Mアーキテクチャを実装し、[15] Cortex-M23 / M33 / M35PはARMv8-Mアーキテクチャを実装し、[30] Cortex-M52 / M55 / M85はARMv8.1-Mアーキテクチャを実装しています。[30]これらのアーキテクチャは、ARMv6-MからARMv7-M、そしてARMv7E-Mへとバイナリ命令の上位互換性があります。 Cortex-M0 / Cortex-M0+ / Cortex-M1で使用可能なバイナリ命令は、Cortex-M3 / Cortex-M4 / Cortex-M7でも変更せずに実行できます。 Cortex-M3で使用可能なバイナリ命令は、Cortex-M4 / Cortex-M7 / Cortex-M33 / Cortex-M35Pで変更なしで実行できます。[14] [15] Cortex-MアーキテクチャではThumb-1およびThumb-2命令セットのみがサポートされており、従来の32ビットARM命令セットはサポートされていません。
すべての Cortex-M コアは、32 ビットの結果乗算を含む、ほとんどが Thumb-1、一部が Thumb-2 で構成される共通の命令サブセットを実装しています。Cortex-M0 / Cortex-M0+ / Cortex-M1 / Cortex-M23 は、最小のシリコン ダイを作成するように設計されているため、Cortex-M ファミリの中で最も少ない命令数になっています。
Cortex-M0 / M0+ / M1 には、ARMv7-M アーキテクチャで追加された新しい命令 (CBZ、CBNZ、IT) を除き、Thumb-1 命令が含まれています。Cortex-M0 / M0+ / M1 には、Thumb-2 命令のマイナー サブセット (BL、DMB、DSB、ISB、MRS、MSR) が含まれています。[14] Cortex-M3 / M4 / M7 / M33 / M35P には、すべての基本的な Thumb-1 および Thumb-2 命令があります。Cortex-M3 では、3 つの Thumb-1 命令、すべての Thumb-2 命令、ハードウェア整数除算、および飽和演算命令が追加されています。Cortex-M4 では、 DSP命令とオプションの単精度浮動小数点ユニット(VFPv4-SP) が追加されています。Cortex-M7 では、オプションの倍精度 FPU (VFPv5) が追加されています。[22] [15] Cortex-M23 / M33 / M35P / M52 / M55 / M85にはTrustZone命令が追加されています。
- 注: 割り込みレイテンシ サイクル カウントは、1) スタックがゼロ ウェイト ステート RAM にあること、2) 別の割り込み関数が現在実行されていないこと、3) セキュリティ拡張オプションが存在しないことを前提としています (セキュリティ拡張オプションによりサイクルが追加されるため)。ハーバード コンピュータ アーキテクチャの Cortex-M コアは、フォン ノイマン コンピュータ アーキテクチャの Cortex-M コアよりも割り込みレイテンシが短くなります。
- 注: Cortex-M シリーズには、スリープ モード用の3 つの新しい 16 ビットThumb-1命令 (SEV、WFE、WFI) が含まれています。
- 注: Cortex-M0 / M0+ / M1には、16ビットThumb-1命令CBZ、CBNZ、ITは含まれていません。[14] [15]
- 注: Cortex-M0 / M0+ / M1には、BL、DMB、DSB、ISB、MRS、MSRの32ビットThumb-2命令のみが含まれています。 [14] [15]
- 注: Cortex-M0 / M0+ / M1 / M23 には、下位 32 ビットの結果 (32 ビット × 32 ビット = 下位 32 ビット) を持つ 32 ビット乗算命令のみがありますが、Cortex-M3 / M4 / M7 / M33 / M35P には、64 ビットの結果 (32 ビット × 32 ビット = 64 ビット) を持つ追加の 32 ビット乗算命令が含まれています。Cortex-M4 / M7 (オプションで M33 / M35P) には、(16 ビット × 16 ビット = 32 ビット)、(32 ビット × 16 ビット = 上位 32 ビット)、(32 ビット × 32 ビット = 上位 32 ビット) の乗算用の DSP 命令が含まれています。[14] [15]
- 注: 乗算命令と除算命令を完了するのに必要なサイクル数は、ARM Cortex-M コアの設計によって異なります。一部のコアには、高速または小さいサイズ (低速) を選択できるシリコン オプションがあるため、コアは、サイクル数が増えるという欠点はあるものの、使用するシリコンの量を減らすオプションがあります。除算命令または低速反復乗算命令の実行中に割り込みが発生すると、プロセッサは命令を放棄し、割り込みが戻った後に命令を再開します。
- 乗算命令「32 ビット結果」 - Cortex-M0/M0+/M23 は 1 または 32 サイクルのシリコン オプション、Cortex-M1 は 3 または 33 サイクルのシリコン オプション、Cortex-M3/M4/M7/M33/M35P は 1 サイクルです。
- 乗算命令「64 ビット結果」 – Cortex-M3 は 3 ~ 5 サイクル (値によって異なります)、Cortex-M4/M7/M33/M35P は 1 サイクルです。
- 除算命令 – Cortex-M3/M4 は 2 ~ 12 サイクル (値によって異なります)、Cortex-M7 は 3 ~ 20 サイクル (値によって異なります)、Cortex-M23 は 17 または 34 サイクル オプション、Cortex-M33 は 2 ~ 11 サイクル (値によって異なります)、Cortex-M35P は未定です。
- 注: 一部の Cortex-M コアには、さまざまな種類の浮動小数点ユニット ( FPU ) 用のシリコン オプションがあります。Cortex-M55 / M85 には半精度( HP )のオプションがあり、Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 には単精度( SP )のオプションがあり、Cortex-M7 / M52 / M55 / M85 には倍精度( DP )のオプションがあります。FPU が含まれている場合、コアは「Cortex-MxF」と呼ばれることがあります。ここで、「x」はコアのバリアントで、Cortex-M4 Fなどです。[14] [15]
- 注: MOVW は、32 ビットの「ワイド」 MOV 命令を意味する別名です。
- 注: BW は長距離無条件分岐です (エンコード、操作、範囲は BL と同様ですが、LR レジスタの設定が異なります)。
- 注: Cortex-M1 の場合、WFE / WFI / SEV 命令は存在しますが、NOP 命令として実行されます。
- 注: 半精度 (HP) FPU 命令は、シリコンに HP FPU オプションが存在する場合にのみ、Cortex-M52/M55/M85 で有効です。
- 注: 単精度 (SP) FPU 命令は、シリコンに SP FPU オプションが存在する場合にのみ、Cortex-M4 / M7 / M33 / M35P / M52 / M55 / M85 で有効です。
- 注: 倍精度 (DP) FPU 命令は、シリコンに DP FPU オプションが存在する場合にのみ、Cortex-M7/M52/M55/M85 で有効です。
廃止予定
ARM Cortex-MシリーズのARMアーキテクチャでは、古いレガシーコアからいくつかの機能が削除されました。[14] [15]
- 32 ビット ARM 命令セットは Cortex-M コアには含まれていません。
- エンディアンは、Cortex-M コアのシリコン実装時に選択されます。従来のコアでは、データエンディアンモードを「オンザフライ」で変更できました。
- ARM Cortex-M33/M35P コアの「ARMv8-M メインライン」でシリコン オプションが再導入されるまで、コプロセッサはCortex-M コアではサポートされていませんでした。
32 ビット ARM 命令セットの機能は、Thumb-1 および Thumb-2 命令セットによって多くの点で複製されますが、一部の ARM 機能には同様の機能がありません。
- SWP および SWPB (スワップ) ARM 命令には、Cortex-M に同様の機能はありません。
16 ビット Thumb-1 命令セットは、ARMv4T アーキテクチャのレガシーARM7Tコアで最初にリリースされて以来、時間とともに進化してきました。レガシー ARMv5 / ARMv6 / ARMv6T2 アーキテクチャがリリースされるたびに、新しい Thumb-1 命令が追加されました。一部の 16 ビット Thumb-1 命令は、Cortex-M コアから削除されました。
- 「BLX <immediate>」命令は、Thumb-1からARM命令セットへの切り替えに使用されたため、存在しません。「BLX <register>」命令は、Cortex-Mで引き続き使用できます。
- データ エンディアン モードのオンザフライ切り替えがサポートされなくなったため、SETEND は存在しません。
- ARM Cortex-M33/M35P コアの「ARMv8-M メインライン」でシリコン オプションが再導入されるまで、コプロセッサ命令は Cortex-M コアではサポートされていませんでした。
- SWI 命令は SVC に名前が変更されましたが、命令のバイナリ コーディングは同じです。ただし、例外モデルの変更により、SVC ハンドラー コードは SWI ハンドラー コードとは異なります。
コルテックスM0
| アーキテクチャと分類 | |
|---|---|
| 命令セット | ARMv6-M ( Thumb-1 (ほとんど)、 Thumb-2 (一部)) |
Cortex-M0コアは、小さなシリコンダイサイズと最も低価格のチップでの使用に最適化されています。[2]
Cortex-M0コアの主な特徴は以下の通りである。[17]
- ARMv6-Mアーキテクチャ[14]
- 3段パイプライン
- 命令セット:
- 親指-1(ほとんど)、CBZ、CBNZ、IT が欠落
- 親指2(一部)、BL、DMB、DSB、ISB、MRS、MSRのみ
- 32 ビットのハードウェア整数乗算と 32 ビットの結果
- 1~32の割り込み、およびNMI
シリコンオプション:
- ハードウェア整数乗算速度: 1 または 32 サイクル。
チップス

以下のマイクロコントローラは Cortex-M0 コアをベースにしています。
- 上記AC30M1x64
- サイプレスPSoC 4000、4100、4100M、4200、4200DS、4200L、4200M
- インフィニオン XMC1100、XMC1200、XMC1300、XMC1400、TLE984x
- ダイアログDA1458x、DA1468x
- ノルディック nRF51
- NXP LPC1100、LPC1200
- ヌヴォトン・ヌマイクロ
- ソニックス SN32F700
- ST STM32 F0
- 東芝TX00
- Vorago VA10800(極度温度)、VA10820(放射線耐性強化)
次のチップには、セカンダリ コアとして Cortex-M0 が搭載されています。
- NXP LPC4300 (Cortex-M4F 1 個 + Cortex-M0 1 個)
- Texas Instruments SimpleLink ワイヤレス MCU CC1310 および CC2650 (プログラム可能な Cortex-M3 1 個 + Cortex-M0 ネットワーク プロセッサ 1 個 + 独自のセンサー コントローラ エンジン 1 個)
皮質M0+
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv6-M |
| 命令セット | 親指1(ほとんど)、 親指2(一部) |
Cortex-M0+ は Cortex-M0 の最適化されたスーパーセットです。Cortex-M0+ は Cortex-M0 と完全な命令セット互換性があるため、同じコンパイラとデバッグツールを使用できます。Cortex-M0+ パイプラインは 3 ステージから 2 ステージに削減され、消費電力が削減され、パフォーマンスが向上します (分岐に 1 サイクル少ないため、平均 IPC が高くなります)。既存の Cortex-M0 のデバッグ機能に加えて、Cortex-M0+ には Micro Trace Buffer (MTB) と呼ばれるシリコンオプションを追加できます。これは、シンプルな命令トレースバッファを提供します。Cortex-M0+ には、メモリ保護ユニット (MPU) やベクターテーブルの再配置など、シリコンオプションとして追加できる Cortex-M3 および Cortex-M4 の機能も搭載されています。[18]
Cortex-M0+コアの主な特徴は以下の通りである。[18]
- ARMv6-Mアーキテクチャ[14]
- 2段パイプライン(Cortex-M0より1段少ない)
- 命令セット: (Cortex-M0と同じ)
- 親指-1(ほとんど)、CBZ、CBNZ、IT が欠落
- 親指2(一部)、BL、DMB、DSB、ISB、MRS、MSRのみ
- 32 ビットのハードウェア整数乗算と 32 ビットの結果
- 1~32の割り込み、およびNMI
シリコンオプション:
- ハードウェア整数乗算速度: 1 または 32 サイクル
- 8 領域メモリ保護ユニット (MPU) (M3 および M4 と同じ)
- ベクターテーブルの再配置(M3、M4と同じ)
- シングルサイクルI/Oポート(M0+/M23で利用可能)
- マイクロ トレース バッファ (MTB) (M0+/M23/M33/M35P で利用可能)
チップス
以下のマイクロコントローラは Cortex-M0+ コアをベースにしています。
- ABOVセミコンダクターA31G11x、A31G12x、A31G314
- サイプレスPSoC 4000S、4100S、4100S+、4100PS、4700S、FM0+
- エプソンS1C31W74、S1C31D01、S1C31D50
- ホルテックHT32F52000
- マイクロチップ SAM C2、D0、D1、D2、DA、L2、R2、R3、PIC32CM JHおよびMC [31]
- NXP LPC800、LPC11E60、LPC11U60
- NXP (フリースケール) Kinetis E、EA、L、M、V1、W0、S32K11x
- Raspberry Pi RP2040 (M0+ コア 2 個)
- ルネサスS124、S128、RE、RE01
- Silicon Labs ( Energy Micro ) EFM32ゼロ、ハッピー
- ST STM32 L0、G0、C0、WL(Cortex-M4 1 個 + Cortex-M0+ 1 個)
次のチップには、セカンダリ コアとして Cortex-M0+ が搭載されています。
最も小型のARMマイクロコントローラはCortex-M0+タイプである(2014年現在、チップスケールパッケージで1.6mm×2mmの最小サイズはKinetis KL03である)。[32]
2018 年 6 月 21 日、ミシガン大学の研究者らは、 2018 年VLSI技術および回路シンポジウムで「細胞温度測定用 Cortex-M0+ プロセッサおよび光通信を統合した 0.04mm 3 16nW ワイヤレスおよびバッテリーレス センサー システム」という論文を発表し、ARM Cortex-M0+ をベースにした「世界最小のコンピューター」またはコンピューターデバイス( RAMおよび光起電性に基づくワイヤレス送信機と受信機を含む) を発表しました。このデバイスは、数か月前の 2018 年 3 月に IBM が世界記録サイズのコンピューターであると主張したコンピューターの 10 分の 1 の大きさで、塩粒よりも小さいものです。
皮質M1
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv6-M |
| 命令セット | 親指1(ほとんど)、 親指2(一部) |
Cortex-M1はFPGAチップに搭載するために特別に設計された最適化されたコアです。[4]
Cortex-M1コアの主な特徴は以下の通りである。[19]
- ARMv6-Mアーキテクチャ[14]
- 3段パイプライン。
- 命令セット:
- 親指1本(ほとんど)、CBZ、CBNZ、ITが欠損。
- 親指2(一部)、BL、DMB、DSB、ISB、MRS、MSRのみ。
- 32 ビットのハードウェア整数乗算と 32 ビットの結果。
- 1 ~ 32 の割り込みとNMI。
シリコンオプション:
- ハードウェア整数乗算速度: 3 または 33 サイクル。
- オプションの密結合メモリ (TCM): 0 ~ 1 MB の命令 TCM、0 ~ 1 MB のデータ TCM (それぞれオプションの ECC 付き)。
- 外部割り込み: 0、1、8、16、32。
- デバッグ: なし、削減、完全。
- データのエンディアン: リトルエンディアンまたは BE-8 ビッグエンディアン。
- OS 拡張機能: 存在または不在。
チップス
以下のベンダーは、FPGA チップ上のソフトコアとして Cortex-M1 をサポートしています。
- アルテラCyclone-II、Cyclone-III、Stratix-II、Stratix-III
- ゴーウィンM1 [33]
- Actel / Microsemi / Microchip Fusion、IGLOO/e、ProASIC3L、ProASIC3/E
- ザイリンクスSpartan-3、Virtex-2、Virtex-3、Virtex-4、Artix-7 [34]
コルテックスM3
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv7-M |
| 命令セット | 親指1、親指2、 飽和(一部)、分割 |

_MCU.jpg/500px-LPCXpresso_DevelopmentBoard_with_NXP_LPC1343_(ARM_Cortex-M3)_MCU.jpg)
Cortex-M3コアの主な特徴は以下の通りである。[20] [35]
- ARMv7-Mアーキテクチャ[15]
- 分岐推測を備えた3 段パイプライン。
- 命令セット:
- 親指1(全体)。
- 親指2(全体)。
- 32 ビット ハードウェア整数乗算、32 ビットまたは 64 ビットの結果、符号付きまたは符号なし、乗算後の加算または減算。32 ビット乗算は 1 サイクルですが、64 ビット乗算と MAC 命令には追加のサイクルが必要です。
- 32 ビット ハードウェア整数除算 (2~12 サイクル)。
- 飽和演算のサポート。
- 1 ~ 240 の割り込み、およびNMI。
- 12 サイクルの割り込み遅延。
- 統合されたスリープ モード。
シリコンオプション:
- オプションのメモリ保護ユニット (MPU): 0 または 8 領域。
チップス
以下のマイクロコントローラは Cortex-M3 コアをベースにしています。
- 上記AC33Mx128、AC33Mx064
- Actel / Microsemi / Microchip SmartFusion、SmartFusion 2 (FPGA)
- アナログデバイスADUCM360、ADUCM361、ADUCM3029
- Broadcom Wi-Fi チップ BCM4319XKUBG
- サイプレス PSoC 5000、5000LP、FM3
- ホルテックHT32F
- インフィニオンTLE9860、TLE987x
- マイクロチップ (アトメル) SAM 3A、3N、3S、3U、3X
- NXP LPC1300、LPC1700、LPC1800
- Q32M210オン
- リアルテックRTL8710
- シリコンラボプレシジョン32
- Silicon Labs ( Energy Micro ) EFM32 Tiny、Gecko、Leopard、Giant
- ST STM32 F1、F2、L1、W
- TDK-ミクロナス HVC4223F
- Texas Instruments F28、LM3、TMS470、OMAP 4、SimpleLink ワイヤレス MCU (CC1310 Sub-GHz および CC2650 BLE + Zigbee + 6LoWPAN )
- 東芝TX03
- マインドモーション マインドモーション MM32
次のチップには、セカンダリ コアとして Cortex-M3 が搭載されています。
- Apple A9 (Cortex-M3 を統合したM9 モーション コプロセッサ)
- CSR Quatro 5300 (Cortex-M3 コプロセッサーとして)
- Samsung Exynos 7420(DVSマイクロコントローラとしてのCortex-M3)[36]
- Texas Instruments F28、LM3、TMS470、OMAP 4470 ( Cortex-A9 1 個+ Cortex-M3 2 個)
- XMOS XS1-XA (7 つの xCORE + 1 つの Cortex-M3)
次の FPGA には Cortex-M3 コアが含まれています。
- マイクロセミSmartFusion2 SoC
以下のベンダーは、FPGA チップ上のソフトコアとして Cortex-M3 をサポートしています。
- アルテラCyclone-II、Cyclone-III、Stratix-II、Stratix-III
- ザイリンクスSpartan-3、Virtex-2、Virtex-3、Virtex-4、Artix-7 [37]
コルテックスM4
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv7E-M |
| 命令セット | Thumb-1、Thumb-2、 飽和、DSP、 除算、FPU (SP) |
概念的には、Cortex-M4 は Cortex-M3 にDSP命令とオプションの浮動小数点ユニット (FPU) を加えたものです。FPU を備えたコアは Cortex-M4F と呼ばれます。
Cortex-M4コアの主な特徴は以下の通りである。[21]
シリコンオプション:
- オプションの浮動小数点ユニット (FPU): 単精度のみ、IEEE-754準拠。FPv4-SP 拡張と呼ばれます。
- オプションのメモリ保護ユニット (MPU): 0 または 8 領域。
チップス
_STM_M32F407IG.jpg/500px-Embedded_World_2016,_M32F407_(cropped)_STM_M32F407IG.jpg)
以下のマイクロコントローラは Cortex-M4 コアをベースにしています。
- アナログデバイスADSP-CM40x
- マイクロチップ (アトメル) SAM 4L、4N、4S
- NXP (フリースケール) Kinetis K、W2
- ST ( STM32 ) WL (Cortex-M4 1 個 + Cortex-M0+ 1 個)
- テキサスインスツルメンツシンプルリンクWi-Fi CC32xx、CC32xxMOD
以下のマイクロコントローラは、Cortex-M4F (M4 + FPU ) コアをベースにしています。
- アナログデバイスADUCM4050
- Cypress 6200 (Cortex-M4F 1 個 + Cortex-M0+ 1 個)、FM4
- インフィニオン XMC4000
- マキシム・ダーウィン
- Microchip (Atmel) SAM4C (デュアルコア: Cortex-M4F 1 個 + Cortex-M4 1 個)、SAM4E、SAM4L、SAM4N、SAM4S、SAMG5、SAMD5/E5x
- ノルディックnRF52
- ヌヴォトンNuMicro M480
- NXP LPC4000、LPC4300(Cortex-M4F 1 個 + Cortex-M0 1 個)、LPC54000
- NXP (フリースケール) Kinetis K、V3、V4、S32K14x
- ルネサスS3、S5、S7、RA4、RA6
- シリコンラボ(エナジーマイクロ) EFM32 ワンダー
- ST STM32 F3、F4、L4、L4+、G4、WB (1 つの Cortex-M4F + 1 つの Cortex-M0+)
- テキサスインスツルメンツLM4F、TM4C、MSP432、CC13x2R、CC1352P、CC26x2R
- 東芝TX04
次のチップには、セカンダリ コアとして Cortex-M4 または M4F が搭載されています。
- NXP (フリースケール) Vybrid VF6 (Cortex-A5 1 個 + Cortex-M4F 1 個)
- NXP (フリースケール) i.MX 6 SoloX (Cortex-A9 1 個 + Cortex-M4F 1 個)
- NXP (フリースケール) i.MX 7 Solo/Dual (1 つまたは 2 つの Cortex-A7 + 1 つの Cortex-M4F)
- NXP (フリースケール) i.MX 8 ( Cortex-A72 2 個+ Cortex-A53 4 個+ Cortex-M4F 2 個)
- NXP (フリースケール) i.MX 8Mおよび 8M Mini ( Cortex-A53 4 個+ Cortex-M4F 1 個)
- NXP (フリースケール) i.MX 8X ( Cortex-A35 4 個+ Cortex-M4F 1 個)
- ST STM32MP1 (1 個または 2 個のCortex-A7 + 1 個の Cortex-M4)
- Texas Instruments OMAP 5 ( Cortex-A15 2 個+ Cortex-M4 2 個)
- Texas Instruments Sitara AM5700 (1 個または 2 個のCortex-A15 + 画像処理ユニットとして 2 個の Cortex-M4 + 汎用ユニットとして 2 個の Cortex-M4)
コルテックスM7
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv7E-M |
| 命令セット | Thumb-1、Thumb-2、 飽和、DSP、 除算、FPU (SP & DP) |

Cortex-M7は、旧型のCortex-M4のほぼ2倍の電力効率を誇る高性能コアです。[7]分岐予測機能付きの6段スーパースカラーパイプラインと、単精度およびオプションで倍精度の演算が可能な浮動小数点ユニットを備えています。[7] [38] 命令バスとデータバスは、以前の32ビットバスから64ビット幅に拡張されました。コアにFPUが含まれている場合はCortex-M7Fと呼ばれ、含まれていない場合はCortex-M7と呼ばれます。
Cortex-M7コアの主な特徴は以下の通りである。[22]
- ARMv7E-M アーキテクチャ。
- 分岐推測機能を備えた6 ステージパイプライン。すべての ARM Cortex-M コアの中で 2 番目に長く、1 番目は Cortex-M85 です。
- 命令セット:
- 1 ~ 240 の割り込み、およびNMI。
- 12 サイクルの割り込み遅延。
- 統合されたスリープ モード。
シリコンオプション:
- オプションの浮動小数点ユニット (FPU): (単精度) または (単精度と倍精度)、両方とも IEEE-754-2008 に準拠しています。これは FPv5 拡張と呼ばれます。
- オプションのCPU キャッシュ: 0 ~ 64 KB の命令キャッシュ、0 ~ 64 KB のデータ キャッシュ (それぞれオプションのECC付き) 。
- オプションの密結合メモリ (TCM): 0 ~ 16 MB の命令 TCM、0 ~ 16 MB のデータ TCM (それぞれオプションの ECC 付き)。
- オプションのメモリ保護ユニット (MPU): 8 または 16 領域。
- オプションの組み込みトレース マクロセル (ETM): 命令のみ、または命令とデータ。
- スリープ モード用のオプションの保持モード (Arm 電源管理キットを使用)。
- オプションのデュアル冗長 ロックステップ操作。
チップス
以下のマイクロコントローラは Cortex-M7 コアをベースにしています。
コルテックスM23
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv8-M ベースライン |
| 命令セット | Thumb-1 (ほとんど)、 Thumb-2 (一部)、 Divide、TrustZone |
Cortex-M23コアは2016年10月に発表されました[39]。[40] Cortex-M23は、 2015年11月に発表されたARMv8-Mアーキテクチャに基づいています。 [40] 概念的には、Cortex-M0+に整数除算命令とTrustZoneセキュリティ機能を追加したもので、2段命令パイプラインも備えています。[8]
Cortex-M23コアの主な特徴は以下の通りである。[23] [39]
- ARMv8-Mベースラインアーキテクチャ。[30]
- 2 ステージ パイプライン。(Cortex-M0+ と同様)
- TrustZoneセキュリティ手順。
- 32 ビット ハードウェア整数除算 (17 または 34 サイクル)。(他のすべてのコアでの除算よりも遅い)
- スタック制限境界。(SAU オプションでのみ使用可能)
シリコンオプション:
- ハードウェア整数乗算速度: 1 または 32 サイクル。
- ハードウェア整数除算速度: 最大 17 または 34 サイクル。除数に応じて、命令はより少ないサイクルで完了する場合があります。
- オプションのメモリ保護ユニット (MPU): 0、4、8、12、16 領域。
- オプションのセキュリティ属性ユニット (SAU): 0、4、8 リージョン。
- シングルサイクル I/O ポート (M0+/M23 で使用可能)。
- マイクロトレースバッファー(MTB)
チップス
以下のマイクロコントローラは Cortex-M23 コアをベースにしています。
- ギガデバイスGD32E2xx
- マイクロチップSAM L10、L11、PIC 32CM-LE 32CM-LS
- Nuvoton M23xx ファミリー、M2xx ファミリー、NUC1262、M2L31
- ルネサスS1JA、RA2A1、RA2L1、RA2E1、RA2E2
コルテックスM33
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv8-M メインライン |
| 命令セット | Thumb-1、Thumb-2、 飽和、DSP、 除算、FPU (SP)、 TrustZone、コプロセッサ |
Cortex-M33コアは2016年10月に発表されました[39] 。これは2015年11月に発表されたARMv8-Mアーキテクチャに基づいています[40]。 概念的にはCortex-M33はCortex-M4とCortex-M23を組み合わせたようなもので、3段の命令パイプラインも備えています[9]。
Cortex-M33コアの主な特徴は以下の通りである。[24] [39]
- ARMv8-Mメインラインアーキテクチャ。[30]
- 3段パイプライン。
- TrustZoneセキュリティ手順。
- 32 ビット ハードウェア整数除算 (最大 11 サイクル)。
- スタック制限境界。(SAU オプションでのみ使用可能)
シリコンオプション:
- オプションの浮動小数点ユニット (FPU): 単精度のみ、IEEE-754準拠。FPv5 拡張と呼ばれます。
- オプションのメモリ保護ユニット (MPU): 0、4、8、12、16 領域。
- オプションのセキュリティ属性ユニット (SAU): 0、4、8 リージョン。
- マイクロトレースバッファー(MTB)
チップス
以下のマイクロコントローラは Cortex-M33 コアをベースにしています。
- アナログデバイスADUCM4
- ダイアログDA1469x
- ギガデバイスGD32E5、GD32W5
- ノルディックnRF91、nRF5340、nRF54、nRF54H20 [41]
- NXP LPC5500、i.MX RT600、MCX N94x/54x (デュアルコア)
- RSL15について
- ルネサスRA4、RA6
- ST STM32 H5、L5、U5、WBA
- Silicon Labsワイヤレス Gecko シリーズ 2
- ラズベリーパイ RP2350
次のチップには、セカンダリ コアとして Cortex-M33 または M33F が搭載されています。
コルテックスM35P
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv8-M メインライン |
| 命令セット | Thumb-1、Thumb-2、 飽和、DSP、 除算、FPU (SP)、 TrustZone、コプロセッサ |
Cortex-M35Pコアは2018年5月に発表され、Armv8-Mアーキテクチャに基づいています。概念的には、新しい命令キャッシュ、ARM SecurCoreファミリーから借用した新しい改ざん防止ハードウェアコンセプト、および構成可能なパリティとECC機能を備えたCortex-M33コアです。[10]
現在、Cortex-M35P に関する情報は限られています。これは、テクニカル リファレンス マニュアルと汎用ユーザー ガイドがまだリリースされていないためです。
チップス
以下のマイクロコントローラは Cortex-M35P コアをベースにしています。
- STマイクロエレクトロニクスST33K
コルテックスM52
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv8.1-M メインライン ヘリウム |
| 命令セット | Thumb-1、Thumb-2、 飽和、DSP、 除算、FPU (VFPv5)、 TrustZone、コプロセッサ、MVE |
Cortex-M52コアは2023年11月に発表され、Armv8.1-Mアーキテクチャに基づいています。概念的には、Cortex-M33とCortex-M55の中間と見ることができます。主な違いは、Heliumコプロセッサがシングルビート(M55はデュアルビート)であり、アプリケーションの移行を容易にするためにM33と同様の32ビットメインバスを備えていることです。4ステージの命令パイプラインを備えています。[11]
Cortex-M52 コアの主な機能は次のとおりです。
- ARMv8.1-Mメインライン/ヘリウムアーキテクチャ。[30]
- 4段パイプライン。
- スタック制限境界 (SAU オプションでのみ使用可能)。
- 32ビットメインバス(AHBまたはAXI)[11]
シリコンオプション:
- ヘリウム (M プロファイル ベクトル拡張、MVE)
- ポインタ認証と分岐ターゲット識別拡張
- 単精度および倍精度浮動小数点数
- デジタル信号処理 (DSP) 拡張サポート
- TrustZoneセキュリティ拡張サポート
- 安全性と信頼性(RAS)のサポート
- コプロセッサのサポート
- 0、4、8、12、または16の領域を持つセキュアおよび非セキュアMPU
- 0、4、または8つのリージョンを持つSAU
- 最大64KBの命令キャッシュ
- 最大64KBのデータキャッシュ
- キャッシュとTCMのECC
- 1~480回の割り込み
- 3~8 例外優先度ビット
- 内部および外部WICオプション、オプションのCTI、ITM、およびDWT
- ARM カスタム命令
チップス
以下のマイクロコントローラはCortex M52コアをベースにしています
- ジーハイセミコンダクターG32R5 [42]
コルテックスM55
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv8.1-M メインライン ヘリウム |
| 命令セット | Thumb-1、Thumb-2、 飽和、DSP、 除算、FPU (VFPv5)、 TrustZone、コプロセッサ、MVE |
Cortex-M55コアは2020年2月に発表され、Armv8.1-Mアーキテクチャに基づいています。4段または5段の命令パイプラインを備えています。[12]
Cortex-M55 コアの主な機能は次のとおりです。
- ARMv8.1-Mメインライン/ヘリウムアーキテクチャ。[30]
- 4段パイプライン。
- スタック制限境界 (SAU オプションでのみ使用可能)。
- 64ビットAXIメインバス[12]
シリコンオプション:
- ヘリウム (M プロファイル ベクトル拡張、MVE)
- 単精度および倍精度浮動小数点数
- デジタル信号処理 (DSP) 拡張サポート
- TrustZoneセキュリティ拡張サポート
- 安全性と信頼性(RAS)のサポート
- コプロセッサのサポート
- 0、4、8、12、または16の領域を持つセキュアおよび非セキュアMPU
- 0、4、または8つのリージョンを持つSAU
- 4 KB、8 KB、16 KB、32 KB、64 KB の命令キャッシュ
- 4 KB、8 KB、16 KB、32 KB、64 KB のデータ キャッシュ
- キャッシュとTCMのECC
- 1~480回の割り込み
- 3~8 例外優先度ビット
- 内部および外部WICオプション、オプションのCTI、ITM、およびDWT
- ARM カスタム命令
チップス
- Alif Semiconductor Ensemble MCUファミリーは、それぞれEthos-U55 NPUとペアになったシングルまたはデュアルCortex-M55コアを提供します。
- インフィニオン PSoCエッジ
コルテックスM85
| アーキテクチャと分類 | |
|---|---|
| マイクロアーキテクチャ | ARMv8.1-M メインライン ヘリウム |
| 命令セット | Thumb-1、Thumb-2、 飽和、DSP、 除算、FPU (VFPv5)、 TrustZone、コプロセッサ、MVE |
Cortex-M85コアは2022年4月に発表され、Armv8.1-Mアーキテクチャに基づいています。7段の命令パイプラインを備えています。[13]
シリコンオプション:
- オプションのCPU キャッシュ: 0 ~ 64 KB の命令キャッシュ、0 ~ 64 KB のデータ キャッシュ (それぞれオプションのECC付き) 。
- オプションの密結合メモリ (TCM): 0 ~ 16 MB の命令 TCM、0 ~ 16 MB のデータ TCM (それぞれオプションの ECC 付き)。
- オプションのメモリ保護ユニット ( MPU ): 16 領域。TrustZone が実装されている場合は、セキュア モードと非セキュア モード用に別々の領域を持つことができます。
- 最大480の割り込みとNMI
- 3~8 例外優先度ビット
- オプションのデュアル冗長 ロックステップ操作。
チップス
- ルネサスRA8
開発ツール
ドキュメント
ARM チップのドキュメントは広範囲にわたります。以前は、8 ビット マイクロコントローラのドキュメントは通常 1 つのドキュメントに収まっていましたが、マイクロコントローラが進化するにつれて、それらをサポートするために必要なものもすべて進化しました。ARM チップのドキュメント パッケージは通常、IC メーカーと CPU コア ベンダー ( ARM Limited ) からのドキュメントのコレクションで構成されます。
典型的なトップダウンのドキュメント ツリーは次のとおりです。
- ドキュメントツリー(上から下へ)
- ICメーカーのウェブサイト。
- IC メーカーのマーケティング スライド。
- 正確な物理チップの IC メーカーのデータシート。
- 一般的な周辺機器と物理チップ ファミリの側面を説明する IC メーカーのリファレンス マニュアル。
- ARM コアの Web サイト。
- ARM コアの汎用ユーザー ガイド。
- ARM コアの技術リファレンス マニュアル。
- ARM アーキテクチャ リファレンス マニュアル。
IC メーカーには、評価ボードのユーザー マニュアル、アプリケーション ノート、入門ガイド、ソフトウェア ライブラリ ドキュメント、正誤表などの追加ドキュメントがあります。公式 Arm ドキュメントへのリンクについては、外部リンク セクションを参照してください。
参照
参考文献
- ^ ARM Cortex-M ウェブサイト; ARM Limited。
- ^ ab 「Cortex-M0 Home」。ARM Limited。
- ^ 「Cortex-M0+ Home」。ARM Limited。
- ^ ab 「Cortex-M1 Home」。ARM Limited。
- ^ 「Cortex-M3 Home」。ARM Limited。
- ^ 「Cortex-M4 Home」。ARM Limited。
- ^ abc 「Cortex-M7 Home」。ARM Limited。
- ^ ab 「Cortex-M23 Home」。ARM Limited。
- ^ ab 「Cortex-M33 Home」。ARM Limited。
- ^ abc 「Cortex-M35P ホーム」。ARM Limited。
- ^ abc 「Cortex-M52 Home」。ARM Limited。
- ^ abc 「Cortex-M55 Home」。ARM Limited。
- ^ ab 「Cortex-M85 Home」。ARM Limited。
- ^ abcdefghijklmnopqr 「ARMv6-M アーキテクチャ リファレンス マニュアル」。ARM Limited。
- ^ abcdefghijklmnopqr 「ARMv7-M アーキテクチャ リファレンス マニュアル」。ARM Limited。
- ^ abcd Cortex-M3 組み込みソフトウェア開発; アプリケーションノート 179; ARM Limited。
- ^ abc 「Cortex-M0 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abcd 「Cortex-M0+ テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abc 「Cortex-M1 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abc 「Cortex-M3 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abc 「Cortex-M4 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abcd 「Cortex-M7 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abc 「Cortex-M23 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abc 「Cortex-M33 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ ab 「Cortex-M52 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ ab 「Cortex-M55 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ ab 「Cortex-M85 テクニカル リファレンス マニュアル」。ARM Limited。
- ^ abc 「Cortex-M System Design Kit (CMSDK)」。Arm Holdings。2016年3月4日時点のオリジナルよりアーカイブ。
- ^ abcdefghij ARM Cortex-M メモリバリア命令プログラミングガイド、セクション 3.6 システム実装要件、AppNote 321、ARM Limited。
- ^ abcdefghijkl 「ARMv8-M アーキテクチャ リファレンス マニュアル」。ARM Limited。
- ^ 32 ビット PIC および SAM マイクロコントローラ、Microchip。
- ^ Fingas, Jon (2014 年 2 月 25 日)。「Freescale が世界最小の ARM コントローラ チップをさらに小型化」 。2014年10 月 2 日閲覧。
- ^ GOWIN Semiconductor は ARM DesignStart に参加し、FPGA 製品ファミリー向けに ARM Cortex-M1 プロセッサを無料で提供しています。
- ^ Cortex-M1 DesignStart FPGA XilinxEdition; ARM Limited。
- ^ Sadasivan, Shyam. 「ARM Cortex-M3 プロセッサの概要」(PDF) 。ARM Limited。2014年 7 月 26 日時点のオリジナル(PDF)からアーカイブ。
- ^ 「Samsung Exynos 7420 ディープダイブ - 最新の 14nm SoC の内部」 AnandTech 。 2015 年 6 月 15 日閲覧。
- ^ Cortex-M3 DesignStart FPGA Xilinxエディション
- ^ 「ARM、高性能Cortex-M7プロセッサでMCU市場を活性化」ARM Limited (プレスリリース) 2014年9月24日。
- ^ abcd 新しい ARM Cortex-M プロセッサは、安全な IoT の次世代業界標準を提供します。ARM Limited。2016 年 10 月 25 日。
- ^ ab ARMv8-M アーキテクチャによりスマート組み込みデバイスのセキュリティが簡素化されます。ARM Limited。2015 年 11 月 10 日。
- ^ 「nRF54H20 - Nordic Semiconductor」www.nordicsemi.com . 2024年10月30日閲覧。
- ^ 「Cortex-M52プロセッサを搭載した世界初のデュアルコアリアルタイム制御MCUがElectronica China 2024で発表」
さらに読む
- Cortex-M プロセッサ ファミリの設計者ガイド、第 3 版、Trevor Martin、648 ページ、2022 年、ISBN 978-0323854948。
- ARM Cortex-M0 および Cortex-M0+ プロセッサの決定版ガイド、第 2 版、Joseph Yiu、784 ページ、2015 年、ISBN 978-0128032770。
- ARM Cortex-M3 および Cortex-M4 プロセッサの決定版ガイド、第 3 版、Joseph Yiu、864 ページ、2013 年、ISBN 978-0124080829。
- ARM Cortex-M23 および Cortex-M33 プロセッサの決定版ガイド、第 1 版、Joseph Yiu、928 ページ、2020 年、ISBN 978-0128207352。
- Microcontrollers with C: Cortex-M and Beyond ; 第1版; Klaus Elk; 227ページ; 2023年; ISBN 979-8862003437。
- アセンブリ言語と C による ARM Cortex-M マイクロコントローラを使用した組み込みシステム、第 4 版、Yifeng Zhu、730 ページ、2023 年、ISBN 978-0982692677。
- 組み込みアプリケーション向け ARM アセンブリ; 第 5 版; Daniel Lewis; 379 ページ; 2019 年; ISBN 978-1092542234。
- アセンブリ言語プログラミング: ARM Cortex-M3 ; 第 1 版; Vincent Mahout; 256 ページ; 2012 年; ISBN 978-1848213296。
- ARM Cortex-M4 を使用したデジタル信号処理とアプリケーション; 第 1 版; Donald Reay; 320 ページ; 2015 年; ISBN 978-1118859049。
- マイクロコントローラを使用したハンズオンRTOS ; 第1版; Brian Amos; 496ページ; 2020年; ISBN 978-1838826734。
外部リンク
- ARM Cortex-M 公式ドキュメント
- ARM Cortex-M 公式サイト
- 初心者のための Cortex-M arm.com
- ARMv8-M セキュリティ拡張機能 arm.com
- Cortex マイクロコントローラ ソフトウェア インターフェース標準 (CMSIS) arm.com
- クイックリファレンスカード
- 命令: Thumb-1 (1)、ARM および Thumb-2 (2)、ベクトル浮動小数点 (3) arm.com
- オペコード: Thumb-1 (1、2)、ARM (3、4)、GNU アセンブラ ディレクティブ (5)。
- 移行中
- 8051 から Cortex-M3 への移行 – arm.com
- PIC から Cortex-M3 への移行 – arm.com
- ARM7TDMI から Cortex-M3 への移行 – arm.com
- Cortex-M4 から Cortex-M7 への移行 – keil.com
- 他の
- STM32 Cortex-M マイクロコントローラのビット バンディング
