ARM Cortex-M

NXPおよび Silicon Labs ( Energy Micro )の ARM Cortex-M0 および Cortex-M3 マイクロコントローラ IC
STM32 F100C4T6B ICのダイ。16KBフラッシュメモリ、4KB RAM搭載した 24MHz  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」はコアのバリアント)と呼ばれることもあります。

概要

32ビット
コア
2004コルテックスM3
2007皮質M1
2009皮質M0
2010コルテックスM4
2012皮質M0+
2014コルテックスM7
2016コルテックスM23
2016コルテックスM33
2018コルテックス-M35P
2020コルテックスM55
2022コルテックスM85
2023コルテックスM52

ARM Cortex-M ファミリは、マイクロコントローラASICASSPFPGA、および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ビットチップの代替として人気を博しており、ARM7ARM9などの旧式のARMコアの置き換えにも活用されています。

特に、ほとんどのSDカードフラッシュドライブに組み込まれているウェアレベリングコントローラは、(8ビット)8051マイクロコントローラまたはARM CPUです。[ 14 ]

ライセンス

ARM Limitedは、自社設計に基づくCPUデバイスの製造も販売も行わず、プロセッサアーキテクチャを関心のある企業にライセンス供与しています。Armは、コストと成果物が異なる多様なライセンス条件を提供しています。すべてのライセンシーに対し、ArmはARMコアの統合可能なハードウェア記述、包括的なソフトウェア開発ツールセット、そしてARM CPUを搭載した 製造済みシリコンの販売権を提供します。

シリコンカスタマイズ

統合デバイスメーカー(IDM)は、ARMプロセッサIPを合成可能なRTLVerilogで記述)として受け取ります。この形式では、アーキテクチャレベルの最適化と拡張を実行できます。これにより、メーカーはクロック速度の向上、超低消費電力、命令セット拡張(浮動小数点を含む)、サイズ最適化、デバッグサポートといったカスタム設計目標を達成できます。特定のARM CPUチップにどのコンポーネントが含まれているかを確認するには、メーカーのデータシートおよび関連ドキュメントを参照してください。

Cortex-M コアのシリコン オプションの一部は次のとおりです。

  • SysTickタイマー:プロセッサとネスト型ベクター割り込みコントローラ(NVIC)の両方の機能を拡張する24ビットのシステムタイマー。搭載されている場合、優先度を設定可能なSysTick割り込みも追加されます。[ 15 ] [ 16 ] [ 17 ] SysTickタイマーはM0/M0+/M1/M23ではオプションですが、Cortex-MマイクロコントローラでSysTickタイマーが搭載されていないものはほとんどありません。Cortex-M33/M35P/M52/M55/M85マイクロコントローラにセキュリティ拡張オプションが搭載されている場合、オプションで2つのSysTick(セキュアSysTick 1つと非セキュアSysTick 1つ)を搭載できます。
  • ビットバンド: メモリの完全な1ワードをビットバンド領域の1ビットにマッピングします。たとえば、エイリアスワードに書き込むと、ビットバンド領域の対応するビットがセットまたはクリアされます。これにより、ビットバンド領域のすべての個々のビットに、ワード境界に揃えられたアドレスから直接アクセスできます。特に、C/C++から、読み取り-変更-書き込み命令シーケンスを実行せずに、個々のビットをセット、クリア、またはトグルできます。[ 15 ] [ 16 ] [ 17 ] ビットバンドはオプションですが、Cortex-M3およびCortex-M4マイクロコントローラでビットバンドがないものはあまり一般的ではありません。一部のCortex-M0およびCortex-M0+マイクロコントローラにはビットバンドがあります。
  • メモリ保護ユニット(MPU):特権およびアクセスルールを適用することでメモリ領域の保護をサポートします。最大16個の領域をサポートし、各領域はさらに均等なサイズのサブ領域に分割できます。[ 15 ] [ 16 ] [ 17 ]
  • 密結合メモリ (TCM): 低レイテンシ (ゼロウェイトステート)のSRAMで、コールスタック、RTOS 制御構造、割り込みデータ構造、割り込みハンドラコード、および速度が重要となるコードを保持するために使用できます。CPUキャッシュを除けば、TCM は ARM Cortex-M マイクロコントローラ内で最速のメモリです。TCM はキャッシュされておらず、プロセッサやキャッシュと同じ速度でアクセスできないため、概念的には「アドレス指定可能なキャッシュ」と言えます。ハーバードアーキテクチャプロセッサが両方から同時に読み取ることができるように、ITCM (命令 TCM) と DTCM (データ TCM) があります。DTCM には命令を格納することはできませんが、ITCM にはデータを格納することができます。TCM はプロセッサコアに密に接続されているため、実装によってはDMAエンジンが TCM にアクセスできない場合があります。
ARM Cortex-M オプションコンポーネント
ARMコア皮質M0 [ 18 ]皮質M0+ [ 19 ]皮質M1 [ 20 ]皮質M3 [ 21 ]コルテックスM4 [ 22 ]コルテックスM7 [ 23 ]コルテックスM23 [ 24 ]コルテックスM33 [ 25 ]コルテックスM35P [ 10 ]コルテックスM52 [ 26 ]コルテックスM55 [ 27 ]コルテックスM85 [ 28 ]
SysTick 24ビットタイマーオプション(0,1)オプション(0, 1)オプション(0,1)はい(1)はい(1)はい(1)オプション(0, 1, 2)はい(1、2)はい(1、2)はい(1、2)はい(1、2)はい(1、2)
シングルサイクルI/Oポートいいえオプションいいえいいえいいえいいえオプションいいえいいえいいえいいえいいえ
ビットバンドメモリいいえ[ 29 ]いいえ[ 29 ]いいえ*オプションオプションオプションいいえいいえいいえいいえいいえいいえ
メモリ保護ユニット ( MPU )いいえオプション(0, 8)いいえオプション(0,8)オプション(0, 8)オプション(0, 8, 16)オプション(0、4、8、12、16)オプション(0、4、8、12、16)オプション(最大16)*オプション(0、4、8、12、16)オプション(0、4、8、12、16)オプション(0、4、8、12、16)
セキュリティ属性単位(SAU)とスタック制限いいえいいえいいえいいえいいえいいえオプション(0, 4, 8)オプション(0, 4, 8)オプション(最大8個)*オプション(0, 4, 8)オプション(0, 4, 8)オプション(0, 4, 8)
命令キャッシュいいえ[ 30 ]いいえ[ 30 ]いいえ[ 30 ]いいえ[ 30 ]いいえ[ 30 ]オプション(最大64KB)いいえいいえオプション(最大16KB)オプション(最大64KB)オプション(最大64KB)オプション(最大64KB)
データキャッシュいいえ[ 30 ]いいえ[ 30 ]いいえ[ 30 ]いいえ[ 30 ]いいえ[ 30 ]オプション(最大64KB)いいえいいえいいえオプション(最大64KB)オプション(最大64KB)オプション(最大64KB)
命令TCM (ITCM)メモリいいえいいえオプション(最大1MB)いいえいいえオプション(最大16 MB)いいえいいえいいえオプション(最大16 MB)オプション(最大16 MB)オプション(最大16 MB)
データTCM (DTCM)メモリいいえいいえオプション(最大1MB)いいえいいえオプション(最大16 MB)いいえいいえいいえオプション(最大16 MB)オプション(最大16 MB)オプション(最大16 MB)
TCMとキャッシュのECCいいえいいえいいえいいえいいえいいえいいえいいえオプションオプションオプションオプション
ベクターテーブルオフセットレジスタ(VTOR)いいえオプション(0,1)オプション(0,1)オプション(0,1)オプション(0,1)オプション(0,1)オプション(0,1,2)はい(1,2)はい(1,2)はい(1,2)はい(1,2)はい(1,2)
  • 注:ほとんどのCortex-M3およびM4チップにはビットバンドとMPUが搭載されています。Cortex-Mシステムデザインキットを使用することで、M0/M0+にビットバンドオプションを追加できます。[ 29 ]
  • 注: ソフトウェアは、各機能を使用する前にその存在を検証する必要があります。[ 17 ]
  • 注意:テクニカル リファレンス マニュアルがリリースされるまで、Cortex-M35P に関する公開情報は限定されています。

追加のシリコンオプション: [ 15 ] [ 16 ]

  • データエンディアン:リトルエンディアンまたはビッグエンディアン。従来のARMコアとは異なり、Cortex-Mではシリコン内でこれらの選択肢のいずれかが恒久的に固定されています。
  • 割り込み: 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): なし、SWDJTAG、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アーキテクチャを実装しています[ 15 ] Cortex-M3 はARMv7-Mアーキテクチャを実装しています[ 16 ] Cortex-M4 / Cortex-M7 はARMv7E-Mアーキテクチャを実装しています[ 16 ] Cortex-M23 / M33 / M35PはARMv8-Mアーキテクチャを実装しています[ 31 ] Cortex-M52 / M55 / M85 はARMv8.1-Mアーキテクチャを実装しています[ 31 ]これらのアーキテクチャは、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で変更なしで実行できます。[ 15 ] [ 16 ] Cortex-MアーキテクチャではThumb-1とThumb-2命令セットのみがサポートされており、従来の32ビットARM命令セットはサポートされていません。

すべてのCortex-Mコアは、Thumb-1命令を大部分とし、Thumb-2命令を一部含み、32ビット乗算結果を含む共通の命令サブセットを実装しています。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) が含まれます。[ 15 ] 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) が追加されています。[ 23 ] [ 16 ] Cortex-M23 / M33 / M35P / M52 / M55 / M85はTrustZone命令を追加します。

ARM Cortex-M命令のバリエーション
アームコア皮質M0 [ 18 ]皮質M0+ [ 19 ]皮質M1 [ 20 ]皮質M3 [ 21 ]コルテックスM4 [ 22 ]コルテックスM7 [ 23 ]コルテックスM23 [ 24 ]コルテックスM33 [ 25 ]コルテックスM35PコルテックスM52 [ 26 ]コルテックスM55 [ 27 ]コルテックスM85 [ 28 ]
ARMアーキテクチャARMv6-M [ 15 ]ARMv6-M [ 15 ]ARMv6-M [ 15 ]ARMv7-M [ 16 ]ARMv7E-M [ 16 ]ARMv7E-M [ 16 ]ARMv8-Mベースライン[ 31 ]ARMv8-Mメインライン[ 31 ]ARMv8-Mメインライン[ 31 ]Armv8.1-Mメインライン[ 31 ]Armv8.1-Mメインライン[ 31 ]Armv8.1-Mメインライン[ 31 ]
コンピュータアーキテクチャフォン・ノイマンフォン・ノイマンフォン・ノイマンハーバードハーバードハーバードフォン・ノイマンハーバードハーバードハーバードハーバードハーバード
命令パイプライン3つのステージ2ステージ3つのステージ3つのステージ3つのステージ6つのステージ2ステージ3つのステージ3つのステージ4つのステージ4~5段階7つのステージ
割り込み遅延(ゼロウェイトステートメモリ)16サイクル15サイクルNMIの場合は23、IRQの場合は2612サイクル12サイクル12サイクル、最悪14サイクル15サイクル、NS IRQに24が確保12サイクル、 21はNS IRQに安全未定未定未定未定
親指1の指示ほとんどほとんどほとんど全体全体全体ほとんど全体全体全体全体全体
Thumb-2の指示いくつかのいくつかのいくつかの全体全体全体いくつかの全体全体全体全体全体
乗算命令32×32 = 32ビットの結果はいはいはいはいはいはいはいはいはいはいはいはい
乗算命令32×32 = 64ビットの結果いいえいいえいいえはいはいはいいいえはいはいはいはいはい
除算命令32/32 = 32ビットの商いいえいいえいいえはいはいはいはいはいはいはいはいはい
飽和した数学命令いいえいいえいいえいくつかのはいはいいいえはいはいはいはいはい
DSP命令いいえいいえいいえいいえはいはいいいえオプションオプションはいはいはい
半精度(HP)浮動小数点命令いいえいいえいいえいいえいいえいいえいいえいいえいいえオプションオプションオプション
単精度(SP)浮動小数点命令いいえいいえいいえいいえオプションオプションいいえオプションオプションオプションオプションオプション
倍精度(DP)浮動小数点命令いいえいいえいいえいいえいいえオプションいいえいいえいいえオプションオプションオプション
ヘリウムベクトル命令いいえいいえいいえいいえいいえいいえいいえいいえいいえオプションオプションオプション
TrustZoneセキュリティガイドいいえいいえいいえいいえいいえいいえオプションオプションオプションオプションオプションはい
コプロセッサ命令いいえいいえいいえいいえいいえいいえいいえオプションオプションオプションオプションオプション
ARMカスタム命令(ACI)いいえいいえいいえいいえいいえいいえいいえオプションいいえオプションオプションオプション
ポインタ認証および分岐ターゲット識別(PACBTI)命令いいえいいえいいえいいえいいえいいえいいえいいえいいえオプションいいえオプション
  • 注:割り込みレイテンシのサイクル数は、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は含まれていません。[ 15 ] [ 16 ]
  • 注: Cortex-M0 / M0+ / M1には、BL、DMB、DSB、ISB、MRS、MSRの32ビットThumb-2命令のみが含まれています。 [ 15 ] [ 16 ]
  • 注: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命令を備えています。[ 15 ] [ 16 ]
  • 注:乗算命令と除算命令の実行サイクル数は、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)[ 15 ] [ 16 ]
ARM Cortex-M命令グループ
グループ命令ビット説明書皮質M0、M0+、M1コルテックスM3コルテックスM4コルテックスM7コルテックスM23コルテックスM33コルテックスM35PコルテックスM52コルテックスM55コルテックスM85
親指116ADC、ADD、ADR、AND、ASR、B、BIC、BKPT、BLX、BX、CMN、CMP、CPS、EOR、LDM、LDR、LDRB、LDRH、LDRSB、LDRSH、LSL、LSR、MOV、MUL、MVN、NOP、ORR、POP、PUSH、REV、REV16、REVSH、ROR、RSB、SBC、SEV、STM、STR、STRB、STRH、SUB、SVC、SXTB、SXTH、TST、UXTB、UXTH、WFE、WFI、YIELDはいはいはいはいはいはいはいはいはいはい
親指116CBNZ、CBZいいえはいはいはいはいはいはいはいはいはい
親指116それいいえはいはいはいいいえはいはいはいはいはい
親指232BL、DMB、DSB、ISB、MRS、MSRはいはいはいはいはいはいはいはいはいはい
親指232SDIV、UDIV、MOVT、MOVW、BW、LDREX、LDREXB、LDREXH、STREX、STREXB、STREXHいいえはいはいはいはいはいはいはいはいはい
親指232ADC、ADD、ADR、AND、ASR、B、BFC、BFI、BIC、CDP、CLREX、CLZ、CMN、CMP、DBG、EOR、LDC、LDM、LDR、LDRB、LDRBT、LDRD、LDRH、LDRHT、LDRSB、LDRSBT、LDRSH、LDRSHT、LDRT、LSL、LSR、MCR、MCRR、MLA、MLS、MRC、MRRC、MUL、MVN、NOP、ORN、ORR、PLD、PLDW、PLI、POP、PUSH、RBIT、REV、REV16、REVSH、ROR、RRX、RSB、SBC、SBFX、SEV、SMLAL、SMULL、SSAT、STC、STM、STR、STRB、STRBT、STRD、STRH、STRHT、STRT、SUB、SXTB、 SXTH、TBB、TBH、TEQ、TST、UBFX、UMLAL、UMULL、USAT、UXTB、UXTH、WFE、WFI、YIELDいいえはいはいはいいいえはいはいはいはいはい
DSP32PKH、QADD、QADD16、QADD8、QASX、QDADD、QDSUB、QSAX、QSUB、QSUB16、QSUB8、SADD16、SADD8、SASX、SEL、SHADD16、SHADD8、SHASX、SHSAX、SHSUB16、SHSUB8、SMLABB、SMLABT、SMLATB、SMLATT、SMLAD、 SMLALBB、SMLALBT、SMLALTB、SMLALTT、SMLALD、SMLAWB、SMLAWT、SMLSD、SMLSLD、SMMLA、SMMLS、SMMUL、SMUAD、SMULBB、SMULBT、SMULTT、SMULTB、SMULWT、SMULWB、SMUSD、SSAT16、SSAX、SSUB16、SSUB8、SXTAB、SXTAB16、スクスタ、 SXTB16、UADD16、UADD8、UASX、UHADD16、UHADD8、UHASX、UHSAX、UHSUB16、UHSUB8、UMAAL、UQADD16、UQADD8、UQASX、UQSAX、UQSUB16、UQSUB8、USAD8、USADA8、USAT16、USAX、USUB16、USUB8、 UXTAB、UXTAB16、UXTAH、UXTB16いいえいいえはいはいいいえオプションオプションはいはいはい
SPフロート32VABS、VADD、VCMP、VCMPE、VCVT、VCVTR、VDIV、VLDM、VLDR、VMLA、VMLS、VMOV、VMRS、VMSR、VMUL、VNEG、VNMLA、VNMLS、VNMUL、VPOP、VPUSH、VSQRT、VSTM、VSTR、VSUBいいえいいえオプションオプションいいえオプションオプションオプションオプションオプション
DPフロート32VCVTA、VCVTM、VCVTN、VCVTP、VMAXNM、VMINNM、VRINTA、VRINTM、VRINTN、VRINTP、VRINTR、VRINTX、VRINTZ、VSELいいえいいえいいえオプションいいえいいえいいえオプションオプションオプション
取得/リリース32LDA、LDAB、LDAH、LDAEX、LDAEXB、LDAEXH、STL、STLB、STLH、STLEX、STLEXB、STLEXHいいえいいえいいえいいえはいはいはいはいはいはい
トラストゾーン16BLXNS、BXNSいいえいいえいいえいいえオプションオプションオプションオプションオプションはい
32SG、TT、TTT、TTA、TTAT
コプロセッサ16CDP、CDP2、MCR、MCR2、MCRR、MCRR2、MRC、MRC2、MRRC、MRRC2いいえいいえいいえいいえいいえオプションオプションオプションオプションオプション
ACI32CX1、CX1A、CX2、CX2A、CX3、CX3A、CX1D、CX1DA、CX2D、CX2DA、CX3D、CX3DA、VCX1、VCX1A、VCX2、VCX2A、VCX3、VCX3Aいいえいいえいいえいいえいいえオプションいいえオプションオプションオプション
PACBTI32AUT、AUTG、BTI、BXAUT、PAC、PACBTI、PACGいいえいいえいいえいいえいいえいいえいいえオプションいいえオプション
  • 注: 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アーキテクチャでは、古いレガシーコアからいくつかの機能が削除されました。[ 15 ] [ 16 ]

32 ビット ARM 命令セットの機能は、Thumb-1 命令セットとThumb-2 命令セットによって多くの点で複製されますが、一部の ARM 機能には同様の機能がありません。

  • SWP および SWPB (スワップ) ARM 命令には、Cortex-M には同様の機能はありません。

16ビットThumb-1命令セットは、ARMv4TアーキテクチャのレガシーARM7Tコアで初めてリリースされて以来、進化を続けてきました。レガシーARMv5 / ARMv6 / ARMv6T2アーキテクチャがリリースされるたびに、新しいThumb-1命令が追加されました。Cortex-Mコアでは、一部の16ビットThumb-1命令が削除されました。

  • 「BLX <immediate>」命令は、Thumb-1命令セットからARM命令セットへの切り替えに使用されたため、現在は存在しません。「BLX <register>」命令はCortex-Mで引き続き利用可能です。
  • データ エンディアン モードのオンザフライ切り替えがサポートされなくなったため、SETEND は存在しません。
  • ARM Cortex-M33/M35P コアの「ARMv8-M メインライン」でシリコン オプションが再導入されるまで、コプロセッサ命令は Cortex-M コアではサポートされていませんでした。
  • SWI命令はSVCに名称が変更されましたが、命令のバイナリコードは同じです。ただし、例外モデルの変更により、SVCハンドラのコードはSWIハンドラのコードとは異なります。

皮質M0

皮質M0
アーキテクチャと分類
命令セットARMv6-M ( Thumb-1 (ほとんど)、Thumb-2 (一部))

Cortex-M0コアは、小型シリコンダイサイズに最適化されており、低価格のチップでの使用に適しています。[ 2 ]

Cortex-M0コアの主な特徴は以下の通りである。[ 18 ]

  • ARMv6-Mアーキテクチャ[ 15 ]
  • 3段階パイプライン
  • 命令セット:
    • 親指1本(ほとんど)、CBZ、CBNZ、ITが欠損
    • 親指2(一部)、BL、DMB、DSB、ISB、MRS、MSRのみ
    • 32 ビットのハードウェア整数乗算と 32 ビットの結果
  • 1~32の割り込み、プラスNMI

シリコンオプション:

  • ハードウェア整数乗算速度: 1 サイクルまたは 32 サイクル。

チップス

nRF51822

次のマイクロコントローラは Cortex-M0 コアをベースにしています。

次のチップには、セカンダリ コアとして Cortex-M0 が搭載されています。

  • NXP LPC4300(Cortex-M4F 1個 + Cortex-M0 1個)
  • Texas Instruments SimpleLink ワイヤレス MCU CC1310 および CC2650 (プログラム可能な Cortex-M3 1 個 + Cortex-M0 ネットワーク プロセッサ 1 個 + 独自のセンサー コントローラ エンジン 1 個)

皮質M0+

皮質M0+
アーキテクチャと分類
マイクロアーキテクチャARMv6-M
命令セット親指1(ほとんど)親指2(一部)
NXP (フリースケール) FRDM-KL25Z ボード (KL25Z128VLK (Kinetis L) 搭載)

Cortex-M0+はCortex-M0の最適化されたスーパーセットです。Cortex-M0+はCortex-M0と完全な命令セット互換性を備えているため、同じコンパイラとデバッグツールを使用できます。Cortex-M0+のパイプラインは3段から2段に削減され、消費電力が低減し、パフォーマンスが向上します(分岐に必要なサイクルが1つ少なくなるため、平均IPCが向上します)。既存のCortex-M0のデバッグ機能に加えて、シンプルな命令トレースバッファを提供するマイクロトレースバッファ(MTB)と呼ばれるシリコンオプションをCortex-M0+に追加できます。Cortex-M0+には、メモリ保護ユニット(MPU)やベクターテーブルの再配置など、Cortex-M3およびCortex-M4の機能も搭載されており、シリコンオプションとして追加できます。[ 19 ]

Cortex-M0+コアの主な特徴は以下の通りである。[ 19 ]

  • ARMv6-Mアーキテクチャ[ 15 ]
  • 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+ コアをベースにしています。

次のチップには、セカンダリ コアとして Cortex-M0+ が搭載されています。

  • Cypress PSoC 6200 (Cortex-M4F 1個 + Cortex-M0+ 1個)
  • ST WB (Cortex-M4F 1 個 + Cortex-M0+ 1 個)

最も小型のARMマイクロコントローラはCortex-M0+タイプである(2014年現在、チップスケールパッケージで1.6mm×2mmの最小サイズはKinetis KL03である)。[ 33 ]

2018年6月21日、ミシガン大学の研究者らは、 2018年VLSI技術・回路シンポジウムにおいて、「細胞温度測定のための統合型Cortex-M0+プロセッサと光通信を備えた0.04mm 3 16nWワイヤレス・バッテリーレスセンサーシステム」という論文を発表し、ARM Cortex-M0+(RAMと起電性に基づく無線送受信機を含む)を搭載した「世界最小のコンピュータあるいはコンピュータデバイスを発表しました。このデバイスは、IBMが2018年3月に発表した世界記録サイズのコンピュータの10分の1の大きさで、塩粒よりも小さいものです。

皮質M1

皮質M1
アーキテクチャと分類
マイクロアーキテクチャARMv6-M
命令セット親指1(ほとんど)親指2(一部)

Cortex-M1はFPGAチップに搭載するために特別に設計された最適化されたコアです。[ 4 ]

Cortex-M1コアの主な特徴は以下の通りである。[ 20 ]

  • ARMv6-Mアーキテクチャ[ 15 ]
  • 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 をサポートしています。

コルテックスM3

コルテックスM3
アーキテクチャと分類
マイクロアーキテクチャARMv7-M
命令セット親指1親指2飽和(一部)、割り算
Atmel ATSAM3X8E(ARM Cortex-M3コア)マイクロコントローラを搭載したArduino Dueボード
NXP LPCXpresso 開発ボード(LPC1343 搭載)

Cortex-M3コアの主な特徴は以下の通りである。[ 21 ] [ 36 ]

  • ARMv7-Mアーキテクチャ[ 16 ]
  • 分岐推測機能を備えた3 段パイプライン
  • 命令セット:
    • 親指1本(全体)。
    • 親指2(全体)。
    • 32 ビット ハードウェア整数乗算は、32 ビットまたは 64 ビットの結果 (符号付きまたは符号なし) を乗算し、乗算後に加算または減算します。32 ビット乗算は 1 サイクルですが、64 ビット乗算と MAC 命令には追加のサイクルが必要です。
    • 32 ビット ハードウェア整数除算 (2~12 サイクル)。
    • 飽和演算のサポート。
  • 1 ~ 240 回の割り込み、およびNMI
  • 12 サイクルの割り込み遅延。
  • 統合されたスリープ モード。

シリコンオプション:

  • オプションのメモリ保護ユニット (MPU): 0 または 8 領域。

チップス

次のマイクロコントローラは Cortex-M3 コアをベースにしています。

次のチップには、セカンダリ コアとして Cortex-M3 が搭載されています。

次の FPGA には Cortex-M3 コアが含まれています。

次のベンダーは、FPGA チップ上のソフト コアとして Cortex-M3 をサポートしています。

コルテックスM4

コルテックスM4
アーキテクチャと分類
マイクロアーキテクチャARMv7E-M
命令セットThumb-1Thumb-2飽和DSP、除算、FPU(SP)
Silicon Labs ( Energy Micro ) Wonder Gecko STK ボード ( EFM32 WG990搭載)
LM4F120 を搭載したTI Stellaris Launchpad ボード

概念的には、Cortex-M4はCortex-M3にDSP命令とオプションの浮動小数点ユニット(FPU)を追加したものです。FPUを搭載したコアはCortex-M4Fと呼ばれます。

Cortex-M4コアの主な特徴は以下の通りである。[ 22 ]

  • ARMv7E-Mアーキテクチャ[ 16 ]
  • 分岐推測機能を備えた3 段パイプライン
  • 命令セット:
    • 親指1本(全体)。
    • 親指2(全体)。
    • 32 ビット ハードウェア整数乗算は 32 ビットまたは 64 ビットの結果 (符号付きまたは符号なし) を乗算し、乗算後に加算または減算します。32 ビット乗算と MAC は 1 サイクルです。
    • 32 ビット ハードウェア整数除算 (2~12 サイクル)。
    • 飽和演算のサポート。
    • DSP 拡張: シングル サイクル 16/32 ビットMAC、シングル サイクル デュアル 16 ビット MAC、8/16 ビットSIMD演算。
  • 1 ~ 240 回の割り込み、およびNMI
  • 12 サイクルの割り込み遅延。
  • 統合されたスリープ モード。

シリコンオプション:

  • オプションの浮動小数点ユニット(FPU):単精度のみ。IEEE -754準拠。FPv4-SP拡張と呼ばれます。
  • オプションのメモリ保護ユニット (MPU): 0 または 8 領域。

チップス

マイクロビットv2上のnRF52833
STM32F407IGH6

次のマイクロコントローラは Cortex-M4 コアをベースにしています。

以下のマイクロコントローラは、Cortex-M4F (M4 + FPU ) コアをベースにしています。

次のチップには、セカンダリ コアとして Cortex-M4 または M4F のいずれかが搭載されています。

コルテックスM7

コルテックスM7
アーキテクチャと分類
マイクロアーキテクチャARMv7E-M
命令セットThumb-1Thumb-2飽和DSP、除算、FPU(SP & DP)
Arduino GIGA R1 WiFiボード(デュアルコアARM Cortex-M7 + ARM Cortex-M4)STM32H747XIH6マイクロコントローラ搭載

Cortex-M7は、旧型のCortex-M4のほぼ2倍の電力効率を誇る高性能コアです。[ 7 ]分岐予測機能付きの6段スーパースカラパイプラインと、単精度および倍精度演算(オプション)が可能な浮動小数点ユニット(オプション)を備えています。[ 7 ] [ 39 ] 命令バスとデータバスは、従来の32ビットバスから64ビット幅に拡張されました。コアにFPUが搭載されている場合はCortex-M7F、搭載されていない場合はCortex-M7と呼ばれます。

Cortex-M7コアの主な特徴は以下の通りである。[ 23 ]

  • ARMv7E-M アーキテクチャ。
  • 分岐推測機能を備えた6 ステージパイプライン。ARM Cortex-M コアの中で 2 番目に長く、1 番目は Cortex-M85 です。
  • 命令セット:
    • 親指1本(全体)。
    • 親指2(全体)。
    • 32 ビット ハードウェア整数乗算は 32 ビットまたは 64 ビットの結果 (符号付きまたは符号なし) を乗算し、乗算後に加算または減算します。32 ビット乗算と MAC は 1 サイクルです。
    • 32 ビット ハードウェア整数除算 (2~12 サイクル)。
    • 飽和演算のサポート。
    • DSP 拡張: シングル サイクル 16/32 ビットMAC、シングル サイクル デュアル 16 ビット MAC、8/16 ビットSIMD演算。
  • 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 コアをベースにしています。

次のチップには、セカンダリ コアとして Cortex-M7 が搭載されています。

コルテックスM23

コルテックスM23
アーキテクチャと分類
マイクロアーキテクチャARMv8-M ベースライン
命令セットThumb-1(ほとんど)Thumb-2(一部)、Divide、TrustZone

Cortex-M23コアは2016年10月に発表され[ 40 ]、2015年11月に発表されたARMv8-Mアーキテクチャに基づいています。 [ 41 ] 概念的には、Cortex-M23はCortex-M0+に整数除算命令とTrustZoneセキュリティ機能を追加したものに似ており、2段命令パイプラインも備えています。[ 8 ]

Cortex-M23コアの主な特徴は以下の通りである。[ 24 ] [ 40 ]

  • ARMv8-Mベースラインアーキテクチャ。[ 31 ]
  • 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 コアをベースにしています。

コルテックスM33

コルテックスM33
アーキテクチャと分類
マイクロアーキテクチャARMv8-M メインライン
命令セットThumb-1Thumb-2飽和DSP、除算、FPU(SP)、TrustZone、コプロセッサ

Cortex-M33コアは2016年10月に発表され[ 40 ]、2015年11月に発表されたARMv8-Mアーキテクチャに基づいています。 [ 41 ] 概念的にはCortex-M33はCortex-M4とCortex-M23を組み合わせたようなもので、3段命令パイプラインも備えています。[ 9 ]

Cortex-M33コアの主な特徴は以下のとおりです。[ 25 ] [ 40 ]

  • ARMv8-Mメインラインアーキテクチャ。[ 31 ]
  • 3段パイプライン。
  • TrustZone のセキュリティに関する指示。
  • 32 ビット ハードウェア整数除算 (最大 11 サイクル)。
  • スタック制限境界。(SAU オプションでのみ使用可能)

シリコンオプション:

  • オプションの浮動小数点ユニット(FPU):単精度のみ。IEEE -754準拠。FPv5拡張と呼ばれます。
  • オプションのメモリ保護ユニット (MPU): 0、4、8、12、16 領域。
  • オプションのセキュリティ属性単位 (SAU): 0、4、8 リージョン。
  • マイクロトレースバッファー(MTB)

チップス

次のマイクロコントローラは Cortex-M33 コアをベースにしています。

次のチップには、セカンダリ コアとして Cortex-M33 または M33F が搭載されています。

コルテックス-M35P

コルテックス-M35P
アーキテクチャと分類
マイクロアーキテクチャARMv8-M メインライン
命令セットThumb-1Thumb-2飽和DSP、除算、FPU(SP)、TrustZone、コプロセッサ

Cortex-M35Pコアは2018年5月に発表され、Armv8-Mアーキテクチャをベースとしています。概念的には、新しい命令キャッシュ、ARM SecurCoreファミリーから借用した新しい耐タンパーハードウェアコンセプト、そして設定可能なパリティおよびECC機能を備えたCortex-M33コアです。[ 10 ]

現在、Cortex-M35P に関する情報は限られています。テクニカル リファレンス マニュアル汎用ユーザー ガイドがまだリリースされていないためです。

チップス

次のマイクロコントローラは Cortex-M35P コアをベースにしています。

コルテックスM52

コルテックスM52
アーキテクチャと分類
マイクロアーキテクチャARMv8.1-M メインライン ヘリウム
命令セットThumb-1Thumb-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 メインライン/ヘリウムアーキテクチャ。[ 31 ]
  • 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 [ 43 ]

コルテックスM55

コルテックスM55
アーキテクチャと分類
マイクロアーキテクチャARMv8.1-M メインライン ヘリウム
命令セットThumb-1Thumb-2飽和DSP、除算、FPU(VFPv5)、TrustZone、コプロセッサ、MVE

Cortex-M55コアは2020年2月に発表され、Armv8.1-Mアーキテクチャをベースとしています。4段または5段の命令パイプラインを備えています。[ 12 ]

Cortex-M55 コアの主な機能は次のとおりです。

  • ARMv8.1-M メインライン/ヘリウムアーキテクチャ。[ 31 ]
  • 4 段パイプライン。
  • スタック制限境界 (SAU オプションでのみ使用可能)。
  • 64ビットAXIメインバス[ 12 ]

シリコンオプション:

  • ヘリウム(Mプロファイルベクトル拡張、MVE)
  • 単精度および倍精度浮動小数点
  • デジタル信号処理(DSP)拡張サポート
  • TrustZoneセキュリティ拡張サポート
  • 安全性と信頼性(RAS)サポート
  • コプロセッサのサポート
  • 0、4、8、12、または16の領域を持つセキュアおよび非セキュアMPU
  • 0、4、または8つのリージョンを持つSAU
  • 4KB、8KB、16KB、32KB、64KBの命令キャッシュ
  • 4 KB、8 KB、16 KB、32 KB、64 KB のデータ キャッシュ
  • キャッシュとTCMのECC
  • 1~480回の割り込み
  • 3~8個の例外優先度ビット
  • 内部および外部WICオプション、オプションのCTI、ITM、およびDWT
  • ARMカスタム命令

チップス

コルテックスM85

コルテックスM85
アーキテクチャと分類
マイクロアーキテクチャARMv8.1-M メインライン ヘリウム
命令セットThumb-1Thumb-2飽和DSP、除算、FPU(VFPv5)、TrustZone、コプロセッサ、MVE

Cortex-M85コアは2022年4月に発表され、Armv8.1-Mアーキテクチャをベースとしています。7段の命令パイプラインを備えています。[ 13 ]

シリコンオプション:

チップス

開発ツール

ドキュメント

ARMチップのドキュメントは膨大です。かつては、8ビットマイクロコントローラのドキュメントは通常1つのドキュメントに収まっていましたが、マイクロコントローラの進化に伴い、サポートに必要なすべての情報も進化しています。ARMチップのドキュメントパッケージは、通常、ICメーカーとCPUコアベンダー(ARM Limited)のドキュメントの集合体で構成されています。

典型的なトップダウンのドキュメント ツリーは次のとおりです。

ドキュメントツリー(上から下へ)
  1. ICメーカーのウェブサイト。
  2. IC メーカーのマーケティング スライド。
  3. 正確な物理チップの IC メーカーのデータシート。
  4. 一般的な周辺機器と物理チップ ファミリの側面を説明する IC メーカーのリファレンス マニュアル。
  5. ARM コアの Web サイト。
  6. ARM コアの汎用ユーザー ガイド。
  7. ARM コアのテクニカル リファレンス マニュアル。
  8. ARM アーキテクチャ リファレンス マニュアル。

ICメーカーは、評価ボードのユーザーマニュアル、アプリケーションノート、スタートアップガイド、ソフトウェアライブラリドキュメント、エラッタなど、追加のドキュメントを提供しています。Armの公式ドキュメントへのリンクについては、 外部リンクセクションをご覧ください。

参照

参考文献

  1. ^ ARM Cortex-M ウェブサイト; ARM Limited。
  2. ^ a b「Cortex-M0 Home」 . ARM Limited .
  3. ^ 「Cortex-M0+ Home」 . ARM Limited .
  4. ^ a b「Cortex-M1 Home」 . ARM Limited .
  5. ^ 「Cortex-M3 Home」 . ARM Limited .
  6. ^ 「Cortex-M4 Home」 . ARM Limited .
  7. ^ a b c「Cortex-M7 Home」 . ARM Limited .
  8. ^ a b「Cortex-M23 Home」 . ARM Limited .
  9. ^ a b「Cortex-M33 Home」 . ARM Limited .
  10. ^ a b c「Cortex-M35P ホーム」。ARM Limited
  11. ^ a b c「Cortex-M52 Home」 . ARM Limited .
  12. ^ a b c「Cortex-M55 Home」。ARM Limited
  13. ^ a b「Cortex-M85 Home」 . ARM Limited .
  14. ^「MicroSD カードのハッキングについて」
  15. ^ a b c d e f g h i j k l m n o p q r「ARMv6-Mアーキテクチャリファレンスマニュアル」。ARM Limited
  16. ^ a b c d e f g h i j k l m n o p q r「ARMv7-Mアーキテクチャリファレンスマニュアル」。ARM Limited
  17. ^ a b c d Cortex-M3 組み込みソフトウェア開発; アプリケーションノート 179; ARM Limited。
  18. ^ a b c「Cortex-M0 テクニカルリファレンスマニュアル」 ARM Limited .
  19. ^ a b c d「Cortex-M0+ テクニカルリファレンスマニュアル」ARM Limited
  20. ^ a b c「Cortex-M1 テクニカルリファレンスマニュアル」 ARM Limited .
  21. ^ a b c「Cortex-M3 テクニカルリファレンスマニュアル」 ARM Limited .
  22. ^ a b c「Cortex-M4 テクニカルリファレンスマニュアル」 ARM Limited .
  23. ^ a b c d「Cortex-M7 テクニカルリファレンスマニュアル」 ARM Limited
  24. ^ a b c「Cortex-M23 テクニカルリファレンスマニュアル」 ARM Limited .
  25. ^ a b c「Cortex-M33 テクニカルリファレンスマニュアル」 ARM Limited .
  26. ^ a b「Cortex-M52 テクニカルリファレンスマニュアル」 ARM Limited .
  27. ^ a b「Cortex-M55 テクニカルリファレンスマニュアル」 ARM Limited .
  28. ^ a b「Cortex-M85 テクニカルリファレンスマニュアル」 ARM Limited .
  29. ^ a b c「Cortex-M System Design Kit (CMSDK)」 Arm Holdings . 2016年3月4日時点のオリジナルよりアーカイブ
  30. ^ a b c d e f g h i j ARM Cortex-M メモリバリア命令プログラミングガイド、セクション 3.6 システム実装要件、AppNote 321、ARM Limited。
  31. ^ a b c d e f g h i j k l「ARMv8-Mアーキテクチャリファレンスマニュアル」 . ARM Limited .
  32. ^ 32 ビット PIC および SAM マイクロコントローラ、Microchip。
  33. ^ Fingas, Jon (2014年2月25日). 「フリースケール、世界最小のARMコントローラチップをさらに小型化」2014年10月2日閲覧
  34. ^ GOWIN SemiconductorはARM DesignStartに参加し、FPGA製品ファミリー向けにARM Cortex-M1プロセッサを無償提供
  35. ^ Cortex-M1 DesignStart FPGA XilinxEdition; ARM Limited。
  36. ^ Sadasivan, Shyam. 「ARM Cortex-M3プロセッサ入門」(PDF) ARM Limited. 2014年7月26日時点のオリジナル(PDF)からのアーカイブ。
  37. ^ 「Samsung Exynos 7420 Deep Dive - Inside a Modern 14nm SoC」 AnandTech。2015年6月30日時点のオリジナルよりアーカイブ。 2015年6月15日閲覧
  38. ^ Cortex-M3 DesignStart FPGA Xilinxエディション
  39. ^ 「ARM、高性能Cortex-M7プロセッサでMCU市場を活性化」 ARM Limited(プレスリリース)。2014年9月24日。
  40. ^ a b c d新しい ARM Cortex-M プロセッサは、安全な IoT の次世代業界標準を提供します。ARM Limited。2016 年 10 月 25 日。
  41. ^ a b ARMv8-Mアーキテクチャがスマート組み込みデバイスのセキュリティを簡素化; ARM Limited; 2015年11月10日。
  42. ^ "nRF54H20 - Nordic Semiconductor" . www.nordicsemi.com . 2024年10月30日閲覧
  43. ^ 「Cortex-M52プロセッサを搭載した世界初のデュアルコア リアルタイム制御MCUがElectronica China 2024で発表」
  44. ^ https://newsroom.st.com/media-center/press-item.html/p4733.html

さらに読む

  • 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 ; 1st Ed; Klaus Elk; 227ページ; 2023; ISBN 979-8862003437
  • アセンブリ言語とCによるARM Cortex-Mマイクロコントローラ搭載組込みシステム;第4版;Yifeng Zhu;730ページ;2023年;ISBN 978-0982692677
  • 組み込みアプリケーション向けARMアセンブリ; 第5版; ダニエル・ルイス; 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版;ブライアン・エイモス著;496ページ;2020年;ISBN 978-1838826734
ARM Cortex-M 公式ドキュメント
ARMコアビット幅ARMのウェブサイトARM 汎用ユーザーガイドARM テクニカルリファレンス マニュアルARMアーキテクチャリファレンスマニュアル
皮質M032リンクリンクリンクARMv6-M
皮質M0+32リンクリンクリンクARMv6-M
皮質M132リンクリンクリンクARMv6-M
コルテックスM332リンクリンクリンクARMv7-M
コルテックスM432リンクリンクリンクARMv7E-M
コルテックスM732リンクリンクリンクARMv7E-M
コルテックスM2332リンクリンクリンクARMv8-M
コルテックスM3332リンクリンクリンクARMv8-M
コルテックス-M35P32リンク該当なし該当なしARMv8-M
コルテックスM5232リンクリンクリンクARMv8.1-M
コルテックスM5532リンクリンクリンクARMv8.1-M
コルテックスM8532リンクリンクリンクARMv8.1-M
クイックリファレンスカード
  • 命令: Thumb-1 ( 1 )、ARMおよびThumb-2 ( 2 )、ベクトル浮動小数点 ( 3 ) arm.com
  • オペコード: Thumb-1 ( 12 )、ARM ( 34 )、GNUアセンブラディレクティブ ( 5 )。
移行中
他の