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ビット
コア
2004Cortex-M3
2007Cortex-M1
2009Cortex-M0
2010Cortex-M4
2012Cortex-M0+
2014Cortex-M7
2016Cortex-M23
2016Cortex-M33
2018Cortex-M35P
2020Cortex-M55
2022Cortex-M85
2023Cortex-M52

ARM Cortex-Mファミリーは、マイクロコントローラASICASSPFPGASoCで使用するために設計された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サイクル、最悪ケース1415サイクル、NS IRQに安全2412サイクル、 21はNS IRQに安全未定未定未定未定
親指1本の説明ほとんどほとんどほとんど全体全体全体ほとんど全体全体全体全体全体
親指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命令グループ
グループ命令ビット命令Cortex 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いいえはいはいはいはいはいはいはいはいはい
親指116ITいいえはいはいはいいいえはいはいはいはいはい
親指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、SMMLLS、SMMUL、SMUAD、SMULBB、SMULBT、SMULTT、SMULTB、SMULWT、SMULWB、SMUSD、SSAT16、SSAX、SSUB16、SSUB8、SXTAB、SXTAB16、SXTAH、 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ハンドラのコードとは異なります。

Cortex-M0

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

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

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

  • ARMv6-Mアーキテクチャ[ 15 ]
  • 3段階パイプライン
  • 命令セット:
    • Thumb-1(ほとんど)、CBZ、CBNZ、ITなし
    • Thumb-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 個)

Cortex-M0+

Cortex-M0+
アーキテクチャと分類
マイクロアーキテクチャARMv6-M
命令セットThumb-1(ほとんど)Thumb-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と同じ)
    • Thumb-1(ほとんど)、CBZ、CBNZ、ITなし
    • Thumb-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の大きさで、塩粒よりも小さいものです。

Cortex-M1

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

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

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

  • ARMv6-Mアーキテクチャ[ 15 ]
  • 3段パイプライン
  • 命令セット:
    • Thumb-1(ほとんど)、CBZ、CBNZ、ITがありません。
    • Thumb-2(一部)、BL、DMB、DSB、ISB、MRS、MSRのみ
    • 32 ビットのハードウェア整数を 32 ビットの結果で乗算します。
  • 1 ~ 32 の割り込み、およびNMI

シリコンオプション:

  • ハードウェア整数乗算速度:3サイクルまたは33サイクル
  • オプションの密結合メモリ(TCM):0~1MBの命令TCM、0~1MBのデータTCM、それぞれオプションのECC付き
  • 外部割り込み: 0、1、8、16、32。
  • デバッグ: なし、削減、完全。
  • データのエンディアン: リトルエンディアンまたは BE-8 ビッグエンディアン。
  • OS 拡張機能: 存在または不在。

チップ

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

Cortex-M3

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

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

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

シリコンオプション:

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

チップ

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

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

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

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

Cortex-M4

Cortex-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 段パイプライン
  • 命令セット:
    • Thumb-1(全体)
    • Thumb-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 のいずれかが搭載されています。

Cortex-M7

Cortex-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です
  • 命令セット:
    • Thumb-1(全体)
    • Thumb-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 が搭載されています。

Cortex-M23

Cortex-M23
アーキテクチャと分類
マイクロアーキテクチャARMv8-Mベースライン
命令セット親指1(ほとんど)親指2(一部)、除算、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コアをベースにしています。

Cortex-M33

Cortex-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 が搭載されています。

Cortex-M35P

Cortex-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コアをベースにしています。

Cortex-M52

Cortex-M52
アーキテクチャと分類
マイクロアーキテクチャARMv8.1-M メインライン Helium
命令セット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 ]

Cortex-M55

Cortex-M55
アーキテクチャと分類
マイクロアーキテクチャARMv8.1-M メインライン Helium
命令セット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カスタム命令

チップ

Cortex-M85

Cortex-M85
アーキテクチャと分類
マイクロアーキテクチャARMv8.1-M メインライン Helium
命令セット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コアのウェブサイト
  6. ARMコアの一般ユーザーガイド
  7. ARMコアのテクニカルリファレンスマニュアル
  8. ARM アーキテクチャ リファレンス マニュアル。

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

参照

参考資料

  1. ^ ARM Cortex-M ウェブサイト; ARM Limited.
  2. ^ a b「Cortex-M0 ホーム」 . 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
  • C言語によるマイクロコントローラ:Cortex-Mとその先へ;第1版;クラウス・エルク著;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版; ヴィンセント・マハウト; 256ページ; 2012年; ISBN 978-1848213296
  • ARM Cortex-M4を使用したデジタル信号処理とアプリケーション;第1版;ドナルド・レイ;320ページ;2015年;ISBN 978-1118859049
  • マイクロコントローラによるハンズオンRTOS;第1版;ブライアン・エイモス著;496ページ;2020年;ISBN 978-1838826734
ARM Cortex-M 公式ドキュメント
ARMコアビット幅ARMウェブサイトARM 汎用ユーザーガイドARM テクニカルリファレンス マニュアルARMアーキテクチャリファレンスマニュアル
Cortex-M032リンクリンクリンクARMv6-M
Cortex-M0+32リンクリンクリンクARMv6-M
Cortex-M132リンクリンクリンクARMv6-M
Cortex-M332リンクリンクリンクARMv7-M
Cortex-M432リンクリンクリンクARMv7E-M
Cortex-M732リンクリンクリンクARMv7E-M
Cortex-M2332リンクリンクリンクARMv8-M
Cortex-M3332リンクリンクリンクARMv8-M
Cortex-M35P32リンク該当なし該当なしARMv8-M
Cortex-M5232リンクリンクリンクARMv8.1-M
Cortex-M5532リンクリンクリンクARMv8.1-M
Cortex-M8532リンクリンクリンクARMv8.1-M
クイックリファレンスカード
  • 命令:Thumb-1 ( 1 )、ARMおよびThumb-2 ( 2 )、ベクトル浮動小数点 ( 3 ) arm.com
  • オペコード: Thumb-1 ( 12 )、ARM ( 34 )、GNUアセンブラディレクティブ ( 5 )。
移行
その他