ARM Cortex-M

32ビットRISCプロセッサコアのグループ
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 Cortex-M3
2007 Cortex-M1
2009 Cortex-M0
2010 Cortex-M4
2012 Cortex-M0+
2014 Cortex-M7
2016 Cortex-M23
2016 Cortex-M33
2018 Cortex-M35P
2020 Cortex-M55
2022 Cortex-M85
2023 Cortex-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ビットにマッピングします。例えば、エイリアスワードに書き込むと、ビットバンド領域の対応するビットがセットまたはクリアされます。これにより、ビットバンド領域のすべてのビットに、ワード境界に整列したアドレスから直接アクセスできます。特に、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は26
12サイクル 12サイクル 12サイクル、最悪ケース
14
15サイクル、NS IRQに
安全24
12サイクル、 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
親指1 16 ADC、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 はい はい はい はい はい はい はい はい はい はい
親指1 16 CBNZ、CBZ いいえ はい はい はい はい はい はい はい はい はい
親指1 16 IT いいえ はい はい はい いいえ はい はい はい はい はい
親指2 32 BL、DMB、DSB、ISB、MRS、MSR はい はい はい はい はい はい はい はい はい はい
親指2 32 SDIV、UDIV、MOVT、MOVW、BW、LDREX、LDREXB、LDREXH、STREX、STREXB、STREXH いいえ はい はい はい はい はい はい はい はい はい
親指2 32 ADC、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 いいえ はい はい はい いいえ はい はい はい はい はい
DSP 32 PKH、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フロート 32 VABS、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フロート 32 VCVTA、VCVTM、VCVTN、VCVTP、VMAXNM、VMINNM、VRINTA、VRINTM、VRINTN、VRINTP、VRINTR、VRINTX、VRINTZ、VSEL いいえ いいえ いいえ オプション いいえ いいえ いいえ オプション オプション オプション
取得/解放 32 LDA、LDAB、LDAH、LDAEX、LDAEXB、LDAEXH、STL、STLB、STLH、STLEX、STLEXB、STLEXH いいえ いいえ いいえ いいえ はい はい はい はい はい はい
トラストゾーン 16 BLXNS、BXNS いいえ いいえ いいえ いいえ オプション オプション オプション オプション オプション はい
32 SG、TT、TTT、TTA、TTAT
コプロセッサ 16 CDP、CDP2、MCR、MCR2、MCRR、MCRR2、MRC、MRC2、MRRC、MRRC2 いいえ いいえ いいえ いいえ いいえ オプション オプション オプション オプション オプション
ACI 32 CX1、CX1A、CX2、CX2A、CX3、CX3A、CX1D、CX1DA、CX2D、CX2DA、CX3D、CX3DA、VCX1、VCX1A、VCX2、VCX2A、VCX3、VCX3A いいえ いいえ いいえ いいえ いいえ オプション いいえ オプション オプション オプション
PACBTI 32 AUT、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のデバッグ機能に加えて、Cortex-M0+には、シンプルな命令トレースバッファを提供するマイクロトレースバッファ(MTB)と呼ばれるシリコンオプションを追加できます。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
命令セットThumb-1Thumb-2
飽和(一部)、除算
Atmel ATSAM3X8E(ARM Cortex-M3コア)マイクロコントローラを搭載したArduino Dueボード
NXP LPCXpresso 開発ボード(LPC1343 搭載)

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

  • ARMv7-Mアーキテクチャ[16]
  • 分岐推測機能を備えた3 段パイプライン
  • 命令セット:
    • Thumb-1(全体)
    • Thumb-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 をサポートしています。

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カスタム命令

チップ

  • Alif Semiconductor Ensemble & Balletto MCUファミリーは、それぞれEthos-U55 NPUとペアになったシングルまたはデュアルCortex-M55コアを提供します。
  • インフィニオン PSoCエッジ
  • ST STM32 N6

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. ^ ab 「Cortex-M0 ホーム」. ARM Limited
  3. ^ 「Cortex-M0+ Home」。ARM Limited
  4. ^ ab 「Cortex-M1 Home」。ARM Limited
  5. ^ 「Cortex-M3 Home」。ARM Limited
  6. ^ 「Cortex-M4 Home」。ARM Limited
  7. ^ abc 「Cortex-M7 Home」。ARM Limited
  8. ^ ab 「Cortex-M23 Home」。ARM Limited
  9. ^ ab 「Cortex-M33 Home」。ARM Limited
  10. ^ abc 「Cortex-M35P ホーム」。ARM Limited
  11. ^ abc 「Cortex-M52 Home」。ARM Limited
  12. ^ abc 「Cortex-M55 Home」。ARM Limited
  13. ^ ab 「Cortex-M85 Home」。ARM Limited
  14. ^ 「MicroSD カードのハッキングについて」。
  15. ^ abcdefghijklmnopqr 「ARMv6-Mアーキテクチャリファレンスマニュアル」。ARM Limited
  16. ^ abcdefghijklmnopqr 「ARMv7-Mアーキテクチャリファレンスマニュアル」。ARM Limited
  17. ^ abcd Cortex-M3 組み込みソフトウェア開発; アプリケーションノート 179; ARM Limited。
  18. ^ abc 「Cortex-M0 テクニカルリファレンスマニュアル」。ARM Limited
  19. ^ abcd 「Cortex-M0+ テクニカルリファレンスマニュアル」。ARM Limited
  20. ^ abc 「Cortex-M1 テクニカルリファレンスマニュアル」。ARM Limited
  21. ^ abc 「Cortex-M3 テクニカルリファレンスマニュアル」。ARM Limited
  22. ^ abc 「Cortex-M4 テクニカルリファレンスマニュアル」。ARM Limited
  23. ^ abcd 「Cortex-M7テクニカルリファレンスマニュアル」。ARM Limited
  24. ^ abc 「Cortex-M23 テクニカルリファレンスマニュアル」。ARM Limited
  25. ^ abc 「Cortex-M33 テクニカルリファレンスマニュアル」。ARM Limited
  26. ^ ab 「Cortex-M52テクニカルリファレンスマニュアル」。ARM Limited
  27. ^ ab 「Cortex-M55テクニカルリファレンスマニュアル」。ARM Limited
  28. ^ ab 「Cortex-M85テクニカルリファレンスマニュアル」。ARM Limited
  29. ^ abc 「Cortex-M システムデザインキット(CMSDK)」Arm Holdings . 2016年3月4日時点のオリジナルよりアーカイブ。
  30. ^ abcdefghij ARM Cortex-M メモリバリア命令プログラミングガイド、セクション 3.6 システム実装要件、AppNote 321、ARM Limited。
  31. ^ abcdefghijkl 「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. ^ abcd 新しい ARM Cortex-M プロセッサは、安全な IoT の次世代業界標準を提供します。ARM Limited。2016 年 10 月 25 日。
  41. ^ ab 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 Cortex-M 公式サイト
  • Cortex-M初心者向け arm.com
  • ARMv8-M セキュリティ拡張機能 arm.com
  • Cortexマイクロコントローラソフトウェアインターフェース標準(CMSIS)arm.com
ARM
コア
ビット
ARM
ウェブサイト
ARM 汎用
ユーザーガイド
ARM テクニカル
リファレンス マニュアル
ARMアーキテクチャ
リファレンスマニュアル
Cortex-M0 32 リンク リンク リンク ARMv6-M
Cortex-M0+ 32 リンク リンク リンク ARMv6-M
Cortex-M1 32 リンク リンク リンク ARMv6-M
Cortex-M3 32 リンク リンク リンク ARMv7-M
Cortex-M4 32 リンク リンク リンク ARMv7E-M
Cortex-M7 32 リンク リンク リンク ARMv7E-M
Cortex-M23 32 リンク リンク リンク ARMv8-M
Cortex-M33 32 リンク リンク リンク ARMv8-M
Cortex-M35P 32 リンク 該当なし 該当なし ARMv8-M
Cortex-M52 32 リンク リンク リンク ARMv8.1-M
Cortex-M55 32 リンク リンク リンク ARMv8.1-M
Cortex-M85 32 リンク リンク リンク ARMv8.1-M
クイックリファレンスカード
  • 命令: 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マイクロコントローラのビットバンディング
「https://en.wikipedia.org/w/index.php?title=ARM_Cortex-M&oldid=1332054833#Cortex-M0」より取得