STM32 は何を学習しますか

1.STM32とは何ですか?

STM32の場合、文字通り、ST は STMicroelectronics、M は Microelectronics の略語で、32 は 32 ビットを意味するため、統合された理解は次のようになります。 STM32 は ST が開発した 32 ビット マイクロコントローラを指します。今日の 32 ビット コントローラの中で、STM32 は最も輝かしい新星であると言えるため、STM32 は今日のほとんどのエンジニアと市場に支持されており、お気に入りです。

STM32 シリーズは、高性能、低コスト、低消費電力を必要とする組み込みアプリケーション向けに特別に設計された ARM Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7 などに基づいています。その中で、Cortex-M0は低消費電力と混合信号処理に重点を置き、M3は主にARM7の代替として使用され、エネルギー消費とパフォーマンスのバランスに重点を置き、M7は高性能制御コンピューティングの分野に重点を置いています。

2. 次に、Cortex-M0の構造ブロック図を見てみましょう

Cortex-M0 マイクロプロセッサは主に、プロセッサ コア、ネストされたベクトル割り込みコントローラ (NVIC)、デバッグ サブシステム、および内部バス システムで構成されています。Cortex-M0 マイクロプロセッサは、合理化された高性能バス (AHB-LITE) を介して外部と通信します。

3. Cortex-M0の機能

(1) Thumb 命令セット、効率的で高いコード密度。

(2) ARMv6-M アーキテクチャを使用した高性能。

(3) 割り込み数を設定可能(1~32)、4段階の割り込み優先順位、低い割り込み切り替え遅延、ノンマスカブル割り込み(NMI)入力により高信頼性システムを実現。

(4) ゲート回路が少なく、消費電力が低い プロセッサは、スリープ状態で電源をオフにして消費電力を削減でき、WIC によってウェイクアップすることもできます。

(5) Cortex-M1 プロセッサと互換性があり、Cortex-M3 および Cortex-M4 プロセッサと上位互換性があり、Cortex-M3 に簡単にアップグレードできます。Cortex-M3 および Cortex-M4 から Cortex-M0 への移行も非常に簡単です。

(6) さまざまな組み込みオペレーティング システムをサポートしており、MDK (ARM Keil Microcontroller Development Kit)、RVDS (ARM RealView Development Kit)、IAR C コンパイラなどを含むさまざまな開発コンポーネントによってもサポートされています。

4. Cortex-M0 動作モード

Cortex-M0 には、次の 2 つの動作モードと 2 つの動作状態があります。

(1) スレッドモード:

チップがリセットされると、スレッド モードに入り、ユーザー プログラムを実行します。

(2)ハンドラーモード。

プロセッサでは例外や割り込みが発生するとプロセッシングモードに移行して処理を行い、処理が完了するとスレッドモードに戻ります。

(3)サム状態: 通常動作時のプロセッサの状態

(4) デバッグステータス: プログラムのデバッグ時のプロセッサのステータス

5. Cortex-M0 レジスタ グループ - 汎用レジスタ

図に示すように、Cortex-M0 プロセッサ コアには 13 個の汎用レジスタと複数の特殊レジスタがあります。詳細は以下のとおりです。

(1)R0-R12: 汎用レジスタ。このうち、R0~R7は下位レジスタで16ビットまたは32ビットの命令オペランドとして使用でき、R8~R12は上位レジスタで32ビットオペランドとしてのみ使用できます。

(2) R13: スタック ポインタ SP。Cortex-M0 には、異なる物理的位置に 2 つのスタック ポインタ、メイン スタック ポインタ MSP とプロセス スタック ポインタ PSP があります。プロセッシングモードではメインスタックのみが使用できますが、スレッドモードではメインスタックとプロセススタックの両方が使用でき、主にCONTROLレジスタによって制御されます。システムの電源が入っているときのデフォルトのスタック ポインタは MSP です。

(3) R14: リンク レジスタ (LR)、サブルーチンまたは関数呼び出しの戻りアドレスを格納するために使用されます。

(4) R15: プログラム カウンタ (PC)。次に実行される命令のアドレスを格納します。

6. Cortex-M0の例外と割り込み

Cortex-M0 プロセッサは、最大 32 個の外部割り込み (一般に IRQ と呼ばれる) と 1 個のノンマスカブル割り込み (NMI) をサポートします。

さらに、Cortex-M0 は、主にオペレーティング システムとエラー処理に使用される多くのシステム例外 (Reset、HardFault、SVCall、PendSV、SysTick) もサポートしています。以下の表を参照してください。

7. Cortex-M0命令セット

ARM プロセッサは、ARM と Thumb の 2 つの命令セットをサポートします。

EPSR レジスタの T フラグ ビットは命令セットの切り替えを担当します。Cortex-M0 は Thumb 命令のみをサポートします。

ARM命令セット

32 ビットの縮小命令セット。

命令の長さは固定です。

エンコード量のコストを削減し、デコードとパイプラインの負担を軽減します。

親指命令セット

Thumb 命令セットは ARM 命令セットのサブセットです。

命令幅 16 ビット。

32 ビット命令セットと比較して、システムのストレージ スペースを大幅に節約します。

Thumb 命令セットは不完全であるため、ARM 命令セットと併用する必要があります。

注: ARM と比較して、Thumb のコード サイズは 30% 小さくなりますが、パフォーマンスも 20% 低くなります。2003 年に ARM Corporation は、いくつかの 32 ビット Thumb 命令を備えた Thumb-2 テクノロジを導入しました。これにより、ARM 命令でのみ実行できる多くの機能も Thumb 命令で実行できるようになりました。Cortex-M0 は ARMv6-M アーキテクチャに基づいており、このアーキテクチャのプロセッサは 16 ビット Thumb 命令と一部の 32 ビット Thumb 命令のみを使用します。

8. STM32の適用

9. STM32 製品命名仕様

10. まとめ

この記事の構成を通じて、STM32 を学習する前にいくつかの準備作業を行う必要があります。Cortex-M0 から始めて、最終的な STM32 学習の旅に段階的に進んでください。この記事を通じてそれを共有していただければ幸いです。学習により、問題を根本的に解決できます。問題は、誰もがSTM32 が何を学ぶ必要があるかを明確に理解することです。

組み込みの IoT については学ぶべきことが本当にたくさんありますが、間違ったルートと内容を学べば給与が上がることになりますのでご注意ください。

約 150 ギガバイトのデータ パッケージを共有したいと思います。学習内容、インタビュー、プロジェクトは比較的新しく、充実しています。(クリックすると、受け取る小さなアシスタントが見つかります)

おすすめ

転載: blog.csdn.net/m0_70911440/article/details/132405287