ARM Cortex-M プロセッサのプログラミング

CORTEX-M プロセッサを体系的に学習したいですか? エンベデッド システムで最も重要な 2 つのトピックであるアセンブリアと割り込みを確実に整理します。

難易度 初級

受講期間 無制限

ARM Architecture
ARM Architecture
Cortex
Cortex
Embedded
Embedded
ARM Architecture
ARM Architecture
Cortex
Cortex
Embedded
Embedded
날개 달린 동전

講座 を紹介して、成長と収益を得ましょう!

날개 달린 동전

マーケティングパートナーズ

講座 を紹介して、成長と収益を得ましょう!

学習した受講者のレビュー

学習した受講者のレビュー

4.9

5.0

Embedded June

100% 受講後に作成

※1行まとめ:何も心配しないで、ただ無条件に聞いてください。受講料が100万ウォンになっても無条件に入らなければなりません。 <埋め込みスケッチ>、<埋め込みレシピ>本を読んだ後、ARMの内容を整理します&実習するための目的で、ホン・ヨンギ先生の講義を決済後、完講まで7日かかりました。 ◆メリット - あまりにもよく説明してくれて理解しやすいです。 - 馬と馬の間の間隔の編集、待つプロセスの編集、ボード映像の編集などで受講するのがとても楽です。 - 特に最後のチャプターリンカースクリプトとブートローダーを一行一行説明していただくのが一番良かったです。 ◆ヒント - 質問に本当に親切に答えてくれ、追加で読めば良い資料も紹介してくれます。一講の受講するたびに質問掲示板をご確認ください。 - PM0214、RM0090 2つのdatasheet開いたまま講義聞くと良いです。

5.0

현정호

31% 受講後に作成

Cortex-Mの体系的な整理になります。 M0/M4/M7 帽子適用可能であるだけでなく、アセンブリーを介したデバッグを利用してマルチ割り込み使用時にファームウェアがどこでねじれたのか確認が可能なので、高度なファームウェア設計者には必須となる基礎講義です。

5.0

yoonhj

49% 受講後に作成

組み込みソフトウェアを使用していましたが、アセンブリは見知らぬ領域です。 学ばなければならないと思うが、簡単には厳しくなりませんでした。 講師様の講義を通して少しは自信ができたようです。 お得な講義ありがとうございます!

受講後に得られること

  • 非順序アクセスを使用してもよいでしょうか?

  • アセンブリ言語の重要性

  • パイプラインの動作原理

  • インラインアセンブラ

  • リンクスクリプト

  • NVIC デバイスの動作原理

  • 例外処理手順の開始から終了までの完全な分析

  • クロック制御装置

  • ブートコードの解析

講義の一つにまとめるARM Cortex-Mプロセッサ
コンセプトから本物のノウハウまでご確認ください。

講座のテーマ📖

ARM Cortex-M

最も人気のある組み込みシステム用の32ビットマイクロプロセッサです。
代表的なプロセッサとして、CORTEX-M3、CORTEX-M4、CORTEX-M0、CORTEX-M33があります。
消費電力が少なく価格競争力もあり、さまざまな分野の製品に適用されています

ソース:ARM

CORTEX-Mプロセッサは、ドローン、スマートファクトリー、自律走行車、宇宙航空、医療診断機器、家電、モノのインターネット、環境エネルギーなど、さまざまな分野の組み込みシステムで使用される最も人気があり注目されている32ビットマイクロプロセッサです。

CORTEX-Mプロセッサは、性能よりも価格消費電力の効率を重視するアプリケーションに適しています。低ゲート数、低割り込みレイテンシ、デバッグ機能を備えたプロセッサです。
デフォルトの命令セットでTHUMB2命令をサポートします。
NVICはプロセッサコアと密接に統合され、低レイテンシの割り込み処理を実現しています。
割り込み応答時間を改善するための「テールチェーン」および「 LATE ARRIVING 」割り込みをサポートします。
アトミックアクセスをサポートするためのビットバンド書き込みおよび読み取り操作を含むビットバンドをサポートします。

STmicro社の100ドル未満のマイクロコントローラボードを簡単に入手できます。

開発者

過去数十年間、今ほど開発者の価値が尊重される時はなかったと思います。将来の希望が何かと青少年に聞いたとき、医師、検査という答えとともに「開発者」という言葉を聞くこともできるからです。

開発者が貴重になり、それに応じて身代金も上がるので、とにかく大学の人気順位にコムボール、電子工が上位ランクになるのを見ると映画タイトル「これ以上良くはない」という言葉のように、19世紀アメリカ西部時代の黄金を求めてエルドラドに去る人々が重なります。むしろ開発者全性時代と呼んでもいいようです。

問題解決能力を持つ開発者?

2016年に国内M社の内部から流れてきたこのコメントがニュースにも上がり、しばらく会ったことがありました。そして、このようなことがなかったとしても、誰もが一度ずつ生きてきて聞いたことがある言葉です。ところで問題解決能力を持つ開発者とは?これがなぜ問題になったのでしょうか。

私が理解しているこの文の意味は、単純な視点で見るとこれです。例を見てください。このコードは明らかに私が編んだコードです。このプログラムには間違いなくバグがあります。私もそれを知っています。ところでこれを解決できないのです。短くは数時間、数日、長くは数ヶ月間です。

本当にこのようなことが起きるのかと聞かれたら、当然、このような状況がいくらでも可能だと申し上げたいですね。だから問題化までになったのでしょう。

コーディングは少しの知識しか持っていれば誰でもできます。しかし、トラブルシューティングは異なる次元の問題です。

組み込みシステム開発者

組み込みシステムで動作するソフトウェアを作成することは困難ですが、まれに発生する難しい問題を解決することはさらに困難です。なぜなら事案によってはソフトウェアだけで問題の範囲を絞り込んで考えると問題解決ができないかもしれないからです。組み込みシステムのコンポーネントが「ハードウェア+ソフトウェア」であることを考える必要があります。

今でも毎年新しい多くの種類のシリコンが世界に出ています。さらに、これらのチップを適用したより多くの種類のハードウェアが作成されます。これはすべてハードウェア的に完璧だと信じられますか?

トラブルシューティングでは、ハードウェアのバグの可能性も考慮する必要があります。問題が簡単に解決されない場合、ソフトウェア開発者はこれがハードウェア問題かソフトウェア問題かを一度考えることができなければなりません。

ところがこれが普段に訓練されていなければならないという点です。何の根拠もなく、「これはハードウェアの問題だ」あるいは「ソフトウェアの問題だ」と主張するのは誰も説得しにくいです。

私が経験した少数のソフトウェア開発者は、自意であれ他のハードウェアについても知識が不十分であり、まったく興味がありませんでした。そのため、問題解決能力を持った開発者は、この分野ではさらに貴重であります。

パラダイムの切り替え

結論はすでに出てきたのです。ハードウェアを理解しようとする必要があります。
ハードウェアを理解することは、必ずしもプリント回路基板に電子部品をはんだ付けしてみることを意味するわけではありません。 LEDやボタンキーを完全に制御することを意味するわけでもありません。

むしろ、アセンブリを勉強しながら組み込みシステムが動作する基本原理を理解する必要があります。私が信じて理解する組み込みソフトウェアを解放する2つの重要なキーワードは、アセンブリー割り込みです。

アセンブリはハードウェアを理解するためであり、割り込みは非同期的に実行されるソフトウェアメカニズムであるだけにシステムの安定性を損なう可能性が高いです。したがって、信頼性の高いソフトウェアを作成するためによく学習しておく必要があります。

なぜアセンブリなのか

開発者の間では、アセンブリ言語を見ているさまざまな視点があります。まずはここ国内有名開発者コミュニティ掲示板の記事を一度読んでみてください

現代のコンパイラは、過去に比べてよりスマートになりました。最適化されたコードをうまく作成します。システムのパフォーマンスを向上させるために、アセンブリ言語でコーディングするのは過去の話です。それでは、私がアセンブリ言語を心から強調する理由はどこですか?

アセンブリを学ぶ理由は、組み込みシステムの動作原理をよりよく理解するためだと見なければなりません。アセンブリは、開発者が組み込みシステムの中身を覗くのを助けます

木を見ないで森を見るという言葉のように、どんな勉強をしているのか、常に学習対象の構造(体系)を理解しようと努力しなければなりません。組み込みシステムは「ハードウェア+ソフトウェア」であることをもう一度考えてみる必要があります。

2年以上開発しても組み込みシステムの開発能力が飛躍的に向上していない場合は、今やあなたの学習方法を根本的に変えてみてください。

「どんな分野でも10,000時間を投資すればその分野の専門家になる」という言葉があります。私も共感する言葉ですが、この文章を少し変えたいですね。そうです。 「どの分野でも効果的な方法で10,000時間を投資すれば、その分野の専門家になる」。

アセンブリ語学習の効果

上記の利点に加えて、アセンブリを勉強しておくと、いくつかの利点があります。

まず、どんなソフトウェアだった1~5%程度のアセンブリコードは無条件に含まれます(その理由はアセンブリ語を勉強してみると分かります)。その固有のアセンブリコードまで理解すると、そのソフトウェアの100%完全な制御が可能になります。
第二に、アセンブリ言語で書かれているブートコード(ブートローダではない)を理解し、自分でコーディングできる基盤を作成します。
に、デバッグ(問題解決)ツール使用能力のスペクトルが広がり、深くなります
第四に、ソフトウェアを質的に改善してシステムのパフォーマンスを向上させ、メモリを効率的に活用できます。
第五に、どのハードウェアで動作するソフトウェアを他のハードウェアで動作させることをポーティングと呼びますが、このときアセンブリーの使用能力は不可欠です。
第6に、C言語のポインタを簡単に理解できます。

結論

このトレーニング(ARM Cortex-Mプロセッサプログラミング)では、これら2つ(アセンブリ、割り込み)を確実に扱います。

私はアセンブリ言語に興味がないと思う人はこのコースを無視してフィルタリングしてください。真の価値を理解してくださる方とだけ一緒に行きたいです。

オフラインARMプロセッサ教育では、個人的な信念で受講生の方々にこの内容をずっと強調してきています。このコースでは、組み込みシステムを別の視点で見つめる視点を提供したいと思います。

次の内容を学びます📚

何を学びますか✅

  1. 非整列アクセスを使用してもよいですか?
  2. アセンブリーの重要性
  3. パイプラインの動作原理
  4. インラインアセンブラ
  5. リンカースクリプト
  6. NVIC装置の動作原理
  7. 受付処理手順の開始から終了までの完全分析
  8. クロックコントローラ
  9. テールチェーニング割り込みネストを実際に再現してみる
  10. ブートコード分析

上記はすべて今回の講義の重要なテーマです。さて、詳細を見てみましょう。

まず、非整列アクセスを使用してもよいでしょうか?

非整列アクセスを許可しなかった過去のARMプロセッサとは異なり、CORTEX-Mプロセッサではデフォルトで非整列アクセスを使用できるようになりました。非整列アクセスを使用することの得意と失望

第二に、アセンブリの重要性

組み込みソフトウェアを開発する際、ハードウェアは問題がないとあらかじめ決めておき、ソフトウェアを開発することになれば誰でもいつでも予期しない落とし穴に陥ることがあります。このような問題を見つけて解決するには、一定レベルのハードウェアの理解が必要です。メモリを含む個々のハードウェアデバイスには、それぞれ独自の動作特性があり、それについて理解しています。ハードウェアの理解を深めるために簡単にできる最初の実践は、アセンブリ言語の学習です。アセンブリ言語を通じてハードウェアを間接的に体験することが、ソフトウェアエンジニアがハードウェアについて理解できる開始点であることをもう一度申し上げたいと思います。

第三に、パイプラインの動作原理

パイプラインプロセッサがパイプラインをサポートしていないプロセッサよりも効率的です。パイプライン技術を使用しないARMプロセッサを想像するのは難しいです。 CORTEX-Mプロセッサのパイプライン動作原理とその意味について勉強します

第四に、インラインアセンブラ

インラインアセンブリというのはどんなものでしょうか。簡単に言えば、アセンブリコードをC関数の形で作成することを意味します。インラインアセンブリの外観的な形式はC言語の関数の外観を持っていますが、実際の内容はアセンブリ命令です。アセンブリ命令は、C関数内のローカル変数とも緊密に連動します。 C言語で置き換えられないMSR、MRS命令の場合、インラインアセンブリで実装して使用すると、そのときインラインアセンブリの使用価値は光を放ちます。

第五に、リンカースクリプト

STM32CubeIDEコンパイラは多くのソースを自動的に生成し、コンパイルに必要なメイクファイルを含むさまざまなファイルを自動化プロセスによって作成します。リンカスクリプトと呼ばれるファイルも自動生成されるファイルの1つとして、リンカは常にこのファイルを参照して、ユーザーが望む最終的な実行可能ファイルを作成します。リンカーの役割とリンカースクリプトの文法について学びます。

第六に、NVIC装置の動作原理

ARM7、ARM9、ARM11プロセッサの場合と異なり、CORTEX-Mプロセッサでは、割り込みコントローラユニットであるNVICをCORTEX-Mプロセッサの内部に組み込むことにより、より密接に接続性を持つように設計されています。 NVICの動作原理を理解することは、組み込みシステムで重要な役割を担う割り込みを理解する開始点でもあります。

第七に、受付処理手順の開始から終了までの完全分析

ハードウェア割り込みを含む受付が発生したときに受付ハンドラが実行されるまでのプロセス。エクセプションハンドラコードの実行からエクセプションが発生する直前のプログラムコードに復元されるまでの全過程を説明します。

8、クロックコントローラ

STM32 CORTEXプロセッサ内部でCORTEX-MコアをはじめとするAHB、APBインタフェースとなる様々なハードウェアデバイスにクロックを供給するデバイスであるクロックシステムの動作原理を学習し、実習過程を通じて直接システムクロック周波数を変えてクロック制御に対する自信を高めます。

9番目に、テールチェーニングと割り込みネストを実際に再現してみてください

CORTEX-Mプロセッサは、処理速度の効率を向上させるために、いわゆる「テールチェーン」技術をサポートしています。この技術が割り込み応答性の改善にどれくらいの貢献をするのか、動作原理を学んで実習してみます。また、割り込みのネストも一緒に調べます。

10番目に、ブートコード分析

どのソフトウェアのブートコードを理解するための努力は、組み込みシステムソフトウェアの全体的な構造を理解するのにも役立つでしょう。ブートコードを実際に使用するだけではなく、ブートコードに含まれている意味を解釈することで、私たちがより発展的なソフトウェアの方向を引き出すことができます。もちろん、これはブートローダやRTOS移植などの作業に必要な先行知識の重要性も持っています。

14年以上熟練したARMプロセッサ講義ノウハウ💡

皆さんの時間を私の時間のように大切に考えて講義を作りました。

14年の間に総受講者数1000人以上を対象にARMプロセッサの現場講義をしてきた積み重ねの経験で、より多くの学習者と出会うためにこんなにオンラインでも講義を作ることになりました。現場講義基準 5日分量の内容を15時間以内に最適化したオンライン講義で皆さんを探していきます。


こんな方におすすめです! 🔑

組み込みシステム
入門者

すでにCORTEX-M
使用していますが、
体系的な整理
必要な方

組み込みソフトウェアへ
理解度を高める
ハードウェア開発者

成功したRTOS移植と
運用のため
マイコンの知識
必要な方

加えて、こんな方も学べばいいです!

  • 👉 システム安定性、信頼性の高い製品開発をご希望の方
  • 👉 ARMアセンブリ言語を学びたい方
  • 👉インラインアセンブリ、リンカスクリプト、ブートコード学習が必要な方
  • 👉 オフラインクラスに参加する時間的な余裕がない方

📢選手の知識を確認してください!

  • 学習のための選手の知識としてC言語を知っておく必要があります。

この講義だけの特別な点✨

  • 特徴 1.映像を110以上の小チャプターで分け、後で閲覧にも役立つように構成しました。
  • 特徴 2. 2Dアニメーションを積極的に活用して理解に役立つようにしました。
  • 特徴 3.受講生が直接現場で実習に参加するのと同じ体験になるようにしました。
  • 特徴 4.不要な内容は大胆に捨てられ、さらにコアに集中するのを助けます。
  • 特徴 5.データブックのような開発者マニュアルを見なくても映像だけで学習できるようにできるだけ気にしました。

講義で使用されている400以上のスライドからなる教材(pdf)が付属しています。

使用ツールを確認してください🧰

  • コンパイラ:STM32CubeIDE
  • 練習ボード:STmicro社公式ボードSTM32F429I-DISC1
  • 練習の例と教材ファイル:CMPro_tutorials.zip( s102_実習環境構築STM32CubeIDEはじめに)
  • 講義で使用したボードはSTM32F429I-DISC1です。

講義を作った
知識共有者を紹介します✒️

ホン・ヨンギ(ガイルスクール)

主な履歴

  • 1994年:68HC11 MCUベースのセットトップボックスシステムソフトウェア開発
  • 1995年:68020セットトップボックスシステムソフトウェア開発
  • 1997年:MPC860 VoIPゲートウェイシステムソフトウェア開発
  • 2001年:ARM720TポータブルMP3プレーヤーの開発
  • 2003年:ARM920TポータブルMP3プレーヤーの開発
  • 2008年~現在:ARMプロセッサの構造及び活用実務現業講義

その他

  • BLOBオープンソースベースのUSBダウンロードサポートブートローダの開発
  • libjpegオープンソースをファームウェアに移植
  • YAFFS NANDフラッシュドライバ移植
  • miniGUI移植
  • FatFs + SDカード移植
  • YouTubeチャンネルフラッグハブ

予想される質問 Q&A 💬

Q. C言語を知らない人が受講してもいいでしょうか?

C言語を知らないと、授業中の実習に関わる部分については理解しにくいかもしれません。

Q. 中級者もこの講義を受講してもよいでしょうか?

組み込みシステムの開発に入門したい方はもちろん、すでにCORTEX-Mをお使いの中級者の方までもカバーできるよう講義を企画しています。 14年間、サムスン電子、SKハイニックス、ハンコムアカデミー、韓国電波振興院、KEA、モトローラ半導体、ポリテック(仁川)などでARMプロセッサ講義をした経験で、それなりにARMプロセッサ内蔵プログラミングで特に厳しい部分、重要なテーマを深く取り上げています。

Q. 実習のためのSTM32ボードの種類が多様ですが、何でも構いませんか?

映像では現在STM32F429I-DISC1ボード基準で授業を行います。
さらに、NUCLEO-F103RBNUCLEO-F401REボードもサポートしています。ボード以外の追加サポートプランはありません。このトレーニングのために新しいボードを購入する方は、
STM32F429I-DISC1ボードを強くお勧めします。

📢受講前に確認してください! (ライセンス)

  • 講義で使用されたプレゼンテーション資料は、PDF文書の形で受講生に無料で提供されます。
  • 付属の文書は、Inflearn内で講義映像の補助資料として個人的な使用目的にのみ利用する必要があります。本の内容の一部または全部を複製(ホームページや印刷媒体に転載すること、電子ファイルにコピーすることも含む)するときは、韓国著作権法第27条に規定した私的使用を除き、営利目的かどうかにかかわらず韓国著作権法第42条により、著作権者である知識共有者ホン・ヨンギの許可を求めます。

別の講義を一緒に見る 🔍

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 組み込みシステム入門

  • 組み込みシステムの最適化について悩んでいる方

  • すでに CORTEX-M を使用していますが、体系的な整理が必要な方

  • ハードウェア開発者が組み込みソフトウェアの理解を深めたい場合

  • 成功的な RTOS の移植および運用にマイコンの知識が必要な方

  • ARM アセンブリ言語を学習したい方

  • インライン アセンブリ、リンカー スクリプト、ブート コードの学習が必要な方

  • 専門的な組み込みシステムソフトウェアのデバッグ手法が必要な方

前提知識、
必要でしょうか?

  • C言語

こんにちは
guileschoolです。

3,395

受講生

241

受講レビュー

272

回答

4.7

講座評価

5

講座

仁荷大学校工科大学で電子工学の学士号を取得し、組み込みシステム用ソフトウェア開発者として数年間のキャリアを積んできました。組み込みシステムおよびプログラミングの専門講師としても活動中です。iPhone 3GSの登場と同時期にMac(Book)に入門し、その時からMac(Book)の自動化に関心を持つようになりました。「Mac(Book)で使用できるSiri Remote」、「Keyboard Maestroを利用したGoogle翻訳」などのオープンソースをGitHub(https://github.com/guileschool)に公開し、開発およびメンテナンスを行っています。オープンソースハードウェア「BeagleBone Black」にも強い関心を持っています。Mac(Book)の自動化を利用して生産性を高められる、コンピュータを使用するあらゆる分野に関心を持っており、それを必要とする人々をサポートしています

講義の依頼およびその他のお問い合わせは guileschool@gmail.com までお送りください :)

もっと見る

カリキュラム

全体

111件 ∙ (15時間 10分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

42件

4.9

42件の受講レビュー

  • cydphj1717님의 프로필 이미지
    cydphj1717

    受講レビュー 4

    平均評価 5.0

    5

    100% 受講後に作成

    ※1行まとめ:何も心配しないで、ただ無条件に聞いてください。受講料が100万ウォンになっても無条件に入らなければなりません。 <埋め込みスケッチ>、<埋め込みレシピ>本を読んだ後、ARMの内容を整理します&実習するための目的で、ホン・ヨンギ先生の講義を決済後、完講まで7日かかりました。 ◆メリット - あまりにもよく説明してくれて理解しやすいです。 - 馬と馬の間の間隔の編集、待つプロセスの編集、ボード映像の編集などで受講するのがとても楽です。 - 特に最後のチャプターリンカースクリプトとブートローダーを一行一行説明していただくのが一番良かったです。 ◆ヒント - 質問に本当に親切に答えてくれ、追加で読めば良い資料も紹介してくれます。一講の受講するたびに質問掲示板をご確認ください。 - PM0214、RM0090 2つのdatasheet開いたまま講義聞くと良いです。

    • guileschool
      知識共有者

      頑張りましたね^^。映像を最後までご覧いただきありがとうございます。お疲れ様でした。足りない点も多いのですが、講義に対する良い評価もありがとうございます。書いてくださった詳しい受講評の内容は、今後この講義の受講を検討している多くの方々にとって良い参考になります。埋め込まれたジュンさん明けましておめでとうございます。

  • yoonhj7328님의 프로필 이미지
    yoonhj7328

    受講レビュー 1

    平均評価 5.0

    5

    49% 受講後に作成

    組み込みソフトウェアを使用していましたが、アセンブリは見知らぬ領域です。 学ばなければならないと思うが、簡単には厳しくなりませんでした。 講師様の講義を通して少しは自信ができたようです。 お得な講義ありがとうございます!

    • aislatkit5886님의 프로필 이미지
      aislatkit5886

      受講レビュー 5

      平均評価 5.0

      5

      31% 受講後に作成

      • bravosung1331님의 프로필 이미지
        bravosung1331

        受講レビュー 3

        平均評価 5.0

        5

        100% 受講後に作成

        "組み込みのインフラ技術、ARM動作原理を簡単に知りたい方におすすめしたい講義です。 コンパイルエラーが起きると心理的に萎縮し、それがC文法ではなく初めて見る奇妙な命令ならさらにストレスを受けます。この講義を受講しながら、そのようなエラーをもっと余裕で処理できるようになりました。 コア内容を短く分けて実習と一緒に説明してくれるので理解しやすいです。実務でARM命令を直接扱わなくても、講義で学んだプロセッサの基盤技術を知っているため、問題解決にもっと多様な観点からアクセスできるようです。 講義を作ってくれてありがとう^^

        • guileschool
          知識共有者

          こんにちは。 Taewan Sungさん! この講義が役に立ったのは私がもっと感謝したことです。今後もより有益で多様な講義の制作に努めます。講義の良い評価ありがとうございます :-)

      • hjh56103981님의 프로필 이미지
        hjh56103981

        受講レビュー 2

        平均評価 5.0

        5

        31% 受講後に作成

        Cortex-Mの体系的な整理になります。 M0/M4/M7 帽子適用可能であるだけでなく、アセンブリーを介したデバッグを利用してマルチ割り込み使用時にファームウェアがどこでねじれたのか確認が可能なので、高度なファームウェア設計者には必須となる基礎講義です。

        guileschoolの他の講座

        知識共有者の他の講座を見てみましょう!

        似ている講座

        同じ分野の他の講座を見てみましょう!

        ¥18,838