
FreeRTOSプログラミング
guileschool
RTOSを使用するだけでリアルタイム処理が可能だと信じていませんか? この講義をご覧になり、ご確認ください。 複雑なインタラプト、優先順位、相互排除、ポーティングに関する洞察力を培います。
초급
Operating System, FreeRTOS, Embedded
CORTEX-M プロセッサを体系的に学習したいですか? エンベデッド システムで最も重要な 2 つのトピックであるアセンブリアと割り込みを確実に整理します。

非順序アクセスを使用してもよいでしょうか?
アセンブリ言語の重要性
パイプラインの動作原理
インラインアセンブラ
リンクスクリプト
NVIC デバイスの動作原理
例外処理手順の開始から終了までの完全な分析
クロック制御装置
ブートコードの解析
講義の一つにまとめるARM Cortex-Mプロセッサ
コンセプトから本物のノウハウまでご確認ください。
最も人気のある組み込みシステム用の32ビットマイクロプロセッサです。
代表的なプロセッサとして、CORTEX-M3、CORTEX-M4、CORTEX-M0、CORTEX-M33があります。
消費電力が少なく価格競争力もあり、さまざまな分野の製品に適用されています
CORTEX-Mプロセッサは、ドローン、スマートファクトリー、自律走行車、宇宙航空、医療診断機器、家電、モノのインターネット、環境エネルギーなど、さまざまな分野の組み込みシステムで使用される最も人気があり注目されている32ビットマイクロプロセッサです。
CORTEX-Mプロセッサは、性能よりも価格、消費電力の効率を重視するアプリケーションに適しています。低ゲート数、低割り込みレイテンシ、デバッグ機能を備えたプロセッサです。
デフォルトの命令セットでTHUMB2命令をサポートします。
NVICはプロセッサコアと密接に統合され、低レイテンシの割り込み処理を実現しています。
割り込み応答時間を改善するための「テールチェーン」および「 LATE ARRIVING 」割り込みをサポートします。
アトミックアクセスをサポートするためのビットバンド書き込みおよび読み取り操作を含むビットバンドをサポートします。
過去数十年間、今ほど開発者の価値が尊重される時はなかったと思います。将来の希望が何かと青少年に聞いたとき、医師、検査という答えとともに「開発者」という言葉を聞くこともできるからです。
開発者が貴重になり、それに応じて身代金も上がるので、とにかく大学の人気順位にコムボール、電子工が上位ランクになるのを見ると映画タイトル「これ以上良くはない」という言葉のように、19世紀アメリカ西部時代の黄金を求めてエルドラドに去る人々が重なります。むしろ開発者全性時代と呼んでもいいようです。
2016年に国内M社の内部から流れてきたこのコメントがニュースにも上がり、しばらく会ったことがありました。そして、このようなことがなかったとしても、誰もが一度ずつ生きてきて聞いたことがある言葉です。ところで問題解決能力を持つ開発者とは?これがなぜ問題になったのでしょうか。
私が理解しているこの文の意味は、単純な視点で見るとこれです。例を見てください。このコードは明らかに私が編んだコードです。このプログラムには間違いなくバグがあります。私もそれを知っています。ところでこれを解決できないのです。短くは数時間、数日、長くは数ヶ月間です。
本当にこのようなことが起きるのかと聞かれたら、当然、このような状況がいくらでも可能だと申し上げたいですね。だから問題化までになったのでしょう。
コーディングは少しの知識しか持っていれば誰でもできます。しかし、トラブルシューティングは異なる次元の問題です。
組み込みシステムで動作するソフトウェアを作成することは困難ですが、まれに発生する難しい問題を解決することはさらに困難です。なぜなら事案によってはソフトウェアだけで問題の範囲を絞り込んで考えると問題解決ができないかもしれないからです。組み込みシステムのコンポーネントが「ハードウェア+ソフトウェア」であることを考える必要があります。
今でも毎年新しい多くの種類のシリコンが世界に出ています。さらに、これらのチップを適用したより多くの種類のハードウェアが作成されます。これはすべてハードウェア的に完璧だと信じられますか?
トラブルシューティングでは、ハードウェアのバグの可能性も考慮する必要があります。問題が簡単に解決されない場合、ソフトウェア開発者はこれがハードウェア問題かソフトウェア問題かを一度考えることができなければなりません。
ところがこれが普段に訓練されていなければならないという点です。何の根拠もなく、「これはハードウェアの問題だ」あるいは「ソフトウェアの問題だ」と主張するのは誰も説得しにくいです。
私が経験した少数のソフトウェア開発者は、自意であれ他のハードウェアについても知識が不十分であり、まったく興味がありませんでした。そのため、問題解決能力を持った開発者は、この分野ではさらに貴重であります。
結論はすでに出てきたのです。ハードウェアを理解しようとする必要があります。
ハードウェアを理解することは、必ずしもプリント回路基板に電子部品をはんだ付けしてみることを意味するわけではありません。 LEDやボタンキーを完全に制御することを意味するわけでもありません。
むしろ、アセンブリを勉強しながら組み込みシステムが動作する基本原理を理解する必要があります。私が信じて理解する組み込みソフトウェアを解放する2つの重要なキーワードは、アセンブリーと割り込みです。
アセンブリはハードウェアを理解するためであり、割り込みは非同期的に実行されるソフトウェアメカニズムであるだけにシステムの安定性を損なう可能性が高いです。したがって、信頼性の高いソフトウェアを作成するためによく学習しておく必要があります。
開発者の間では、アセンブリ言語を見ているさまざまな視点があります。まずはここ国内有名開発者コミュニティ掲示板の記事を一度読んでみてください
現代のコンパイラは、過去に比べてよりスマートになりました。最適化されたコードをうまく作成します。システムのパフォーマンスを向上させるために、アセンブリ言語でコーディングするのは過去の話です。それでは、私がアセンブリ言語を心から強調する理由はどこですか?
アセンブリを学ぶ理由は、組み込みシステムの動作原理をよりよく理解するためだと見なければなりません。アセンブリは、開発者が組み込みシステムの中身を覗くのを助けます。
木を見ないで森を見るという言葉のように、どんな勉強をしているのか、常に学習対象の構造(体系)を理解しようと努力しなければなりません。組み込みシステムは「ハードウェア+ソフトウェア」であることをもう一度考えてみる必要があります。
2年以上開発しても組み込みシステムの開発能力が飛躍的に向上していない場合は、今やあなたの学習方法を根本的に変えてみてください。
「どんな分野でも10,000時間を投資すればその分野の専門家になる」という言葉があります。私も共感する言葉ですが、この文章を少し変えたいですね。そうです。 「どの分野でも効果的な方法で10,000時間を投資すれば、その分野の専門家になる」。
アセンブリ語学習の効果上記の利点に加えて、アセンブリを勉強しておくと、いくつかの利点があります。
まず、どんなソフトウェアだった1~5%程度のアセンブリコードは無条件に含まれます(その理由はアセンブリ語を勉強してみると分かります)。その固有のアセンブリコードまで理解すると、そのソフトウェアの100%完全な制御が可能になります。
第二に、アセンブリ言語で書かれているブートコード(ブートローダではない)を理解し、自分でコーディングできる基盤を作成します。
第三に、デバッグ(問題解決)ツール使用能力のスペクトルが広がり、深くなります
第四に、ソフトウェアを質的に改善してシステムのパフォーマンスを向上させ、メモリを効率的に活用できます。
第五に、どのハードウェアで動作するソフトウェアを他のハードウェアでも動作させることをポーティングと呼びますが、このときアセンブリーの使用能力は不可欠です。
第6に、C言語のポインタを簡単に理解できます。
このトレーニング(ARM Cortex-Mプロセッサプログラミング)では、これら2つ(アセンブリ、割り込み)を確実に扱います。
私はアセンブリ言語に興味がないと思う人はこのコースを無視してフィルタリングしてください。真の価値を理解してくださる方とだけ一緒に行きたいです。
オフラインARMプロセッサ教育では、個人的な信念で受講生の方々にこの内容をずっと強調してきています。このコースでは、組み込みシステムを別の視点で見つめる視点を提供したいと思います。 
上記はすべて今回の講義の重要なテーマです。さて、詳細を見てみましょう。
非整列アクセスを許可しなかった過去のARMプロセッサとは異なり、CORTEX-Mプロセッサではデフォルトで非整列アクセスを使用できるようになりました。非整列アクセスを使用することの得意と失望
組み込みソフトウェアを開発する際、ハードウェアは問題がないとあらかじめ決めておき、ソフトウェアを開発することになれば誰でもいつでも予期しない落とし穴に陥ることがあります。このような問題を見つけて解決するには、一定レベルのハードウェアの理解が必要です。メモリを含む個々のハードウェアデバイスには、それぞれ独自の動作特性があり、それについて理解しています。ハードウェアの理解を深めるために簡単にできる最初の実践は、アセンブリ言語の学習です。アセンブリ言語を通じてハードウェアを間接的に体験することが、ソフトウェアエンジニアがハードウェアについて理解できる開始点であることをもう一度申し上げたいと思います。
パイプラインプロセッサがパイプラインをサポートしていないプロセッサよりも効率的です。パイプライン技術を使用しないARMプロセッサを想像するのは難しいです。 CORTEX-Mプロセッサのパイプライン動作原理とその意味について勉強します
インラインアセンブリというのはどんなものでしょうか。簡単に言えば、アセンブリコードをC関数の形で作成することを意味します。インラインアセンブリの外観的な形式はC言語の関数の外観を持っていますが、実際の内容はアセンブリ命令です。アセンブリ命令は、C関数内のローカル変数とも緊密に連動します。 C言語で置き換えられないMSR、MRS命令の場合、インラインアセンブリで実装して使用すると、そのときインラインアセンブリの使用価値は光を放ちます。
STM32CubeIDEコンパイラは多くのソースを自動的に生成し、コンパイルに必要なメイクファイルを含むさまざまなファイルを自動化プロセスによって作成します。リンカスクリプトと呼ばれるファイルも自動生成されるファイルの1つとして、リンカは常にこのファイルを参照して、ユーザーが望む最終的な実行可能ファイルを作成します。リンカーの役割とリンカースクリプトの文法について学びます。
ARM7、ARM9、ARM11プロセッサの場合と異なり、CORTEX-Mプロセッサでは、割り込みコントローラユニットであるNVICをCORTEX-Mプロセッサの内部に組み込むことにより、より密接に接続性を持つように設計されています。 NVICの動作原理を理解することは、組み込みシステムで重要な役割を担う割り込みを理解する開始点でもあります。
ハードウェア割り込みを含む受付が発生したときに受付ハンドラが実行されるまでのプロセス。エクセプションハンドラコードの実行からエクセプションが発生する直前のプログラムコードに復元されるまでの全過程を説明します。
STM32 CORTEXプロセッサ内部でCORTEX-MコアをはじめとするAHB、APBインタフェースとなる様々なハードウェアデバイスにクロックを供給するデバイスであるクロックシステムの動作原理を学習し、実習過程を通じて直接システムクロック周波数を変えてクロック制御に対する自信を高めます。
CORTEX-Mプロセッサは、処理速度の効率を向上させるために、いわゆる「テールチェーン」技術をサポートしています。この技術が割り込み応答性の改善にどれくらいの貢献をするのか、動作原理を学んで実習してみます。また、割り込みのネストも一緒に調べます。
どのソフトウェアのブートコードを理解するための努力は、組み込みシステムソフトウェアの全体的な構造を理解するのにも役立つでしょう。ブートコードを実際に使用するだけではなく、ブートコードに含まれている意味を解釈することで、私たちがより発展的なソフトウェアの方向を引き出すことができます。もちろん、これはブートローダやRTOS移植などの作業に必要な先行知識の重要性も持っています。
皆さんの時間を私の時間のように大切に考えて講義を作りました。
14年の間に総受講者数1000人以上を対象にARMプロセッサの現場講義をしてきた積み重ねの経験で、より多くの学習者と出会うためにこんなにオンラインでも講義を作ることになりました。現場講義基準 5日分量の内容を15時間以内に最適化したオンライン講義で皆さんを探していきます。
組み込みシステム
入門者
すでにCORTEX-M
使用していますが、
体系的な整理
必要な方
組み込みソフトウェアへ
理解度を高める
ハードウェア開発者
成功したRTOS移植と
運用のため
マイコンの知識
必要な方
📢選手の知識を確認してください!
主な履歴
その他
Q. C言語を知らない人が受講してもいいでしょうか?
C言語を知らないと、授業中の実習に関わる部分については理解しにくいかもしれません。
Q. 中級者もこの講義を受講してもよいでしょうか?
組み込みシステムの開発に入門したい方はもちろん、すでにCORTEX-Mをお使いの中級者の方までもカバーできるよう講義を企画しています。 14年間、サムスン電子、SKハイニックス、ハンコムアカデミー、韓国電波振興院、KEA、モトローラ半導体、ポリテック(仁川)などでARMプロセッサ講義をした経験で、それなりにARMプロセッサ内蔵プログラミングで特に厳しい部分、重要なテーマを深く取り上げています。
Q. 実習のためのSTM32ボードの種類が多様ですが、何でも構いませんか?
映像では現在STM32F429I-DISC1ボード基準で授業を行います。
さらに、NUCLEO-F103RB 、 NUCLEO-F401REボードもサポートしています。ボード以外の追加サポートプランはありません。このトレーニングのために新しいボードを購入する方は、 STM32F429I-DISC1ボードを強くお勧めします。
📢受講前に確認してください! (ライセンス)
学習対象は
誰でしょう?
組み込みシステム入門
組み込みシステムの最適化について悩んでいる方
すでに CORTEX-M を使用していますが、体系的な整理が必要な方
ハードウェア開発者が組み込みソフトウェアの理解を深めたい場合
成功的な RTOS の移植および運用にマイコンの知識が必要な方
ARM アセンブリ言語を学習したい方
インライン アセンブリ、リンカー スクリプト、ブート コードの学習が必要な方
専門的な組み込みシステムソフトウェアのデバッグ手法が必要な方
前提知識、
必要でしょうか?
C言語
3,325
受講生
235
受講レビュー
270
回答
4.7
講座評価
5
講座
인하대학교 공과대학에서 전자공학 학사 학위를 받았으며 임베디드 시스템용 소프트웨어 개발자로써 수년간의 경력을 쌓았습니다. 임베디드 시스템 및 프로그래밍을 위한 전문 강사로도 활동 중입니다. 아이폰 3GS 등장과 같은 시기에 맥(북)에 입문하였고, 그때부터 맥(북) 자동화에 관심을 갖게 되었습니다. '맥(북)에서 사용할 수 있는 시리 리모트', '키보드마에스트로를 이용한 구글번역기' 같은 오픈 소스를 깃허브(https://github.com/guileschool) 에 두고 개발 및 유지보수하고 있습니다. 오픈 소스 하드웨어 '비글본블랙' 에도 많은 관심을 가지고 있습니다. 맥(북) 자동화를 이용하여 생산성을 높일 수 있는 컴퓨터를 사용하는 모든 분야에 관심을 가지고 있고, 이를 필요로 하는 사람들을 돕고 있습니다.
강의 요청 및 기타 문의사항은 guileschool@gmail.com으로 보내주세요 :)
全体
111件 ∙ (15時間 10分)
講座資料(こうぎしりょう):
4. s202_LED 点滅させてみる
05:09
7. s205_THUMB2 コマンド
09:00
13. s211_AAPCS
14:29
14. s212_データ型とADD命令
04:14
15. s213_レジスタ基本構造
06:39
16. s214_xPSR レジスタ
27:54
17. s215_特殊レジスタ
26:43
20. s302_比較と分岐命令
11:51
21. s303_条件コード
14:27
22. s304_IT コマンド
10:03
24. s306_ループ文の作成
06:58
25. s307_多様なロードストア命令
15:20
33. s315_CBZ 命令とループ文
03:40
35. s317_REV コマンド
05:09
36. s318_CLZ コマンド
04:01
40. s322_ADR と ラベル
01:26
41. s323_ビット演算命令
05:52
42. s324_比較コマンド
09:27
43. s325_BRANCH 命令
04:19
44. s326_シフト命令
06:31
45. s327_乗算命令
02:53
46. s328_飽和演算命令
11:49
48. s330_除算命令
03:57
49. s331_並列演算命令
02:49
51. s333_特殊コマンド
05:40
52. s334_LDR, STR 命令
16:25
54. s336_非整列アクセスの得と失
13:25
55. s337_インラインアセンブラー
21:49
全体
41件
4.9
41件の受講レビュー
受講レビュー 4
∙
平均評価 5.0
5
※1行まとめ:何も心配しないで、ただ無条件に聞いてください。受講料が100万ウォンになっても無条件に入らなければなりません。 <埋め込みスケッチ>、<埋め込みレシピ>本を読んだ後、ARMの内容を整理します&実習するための目的で、ホン・ヨンギ先生の講義を決済後、完講まで7日かかりました。 ◆メリット - あまりにもよく説明してくれて理解しやすいです。 - 馬と馬の間の間隔の編集、待つプロセスの編集、ボード映像の編集などで受講するのがとても楽です。 - 特に最後のチャプターリンカースクリプトとブートローダーを一行一行説明していただくのが一番良かったです。 ◆ヒント - 質問に本当に親切に答えてくれ、追加で読めば良い資料も紹介してくれます。一講の受講するたびに質問掲示板をご確認ください。 - PM0214、RM0090 2つのdatasheet開いたまま講義聞くと良いです。
頑張りましたね^^。映像を最後までご覧いただきありがとうございます。お疲れ様でした。足りない点も多いのですが、講義に対する良い評価もありがとうございます。書いてくださった詳しい受講評の内容は、今後この講義の受講を検討している多くの方々にとって良い参考になります。埋め込まれたジュンさん明けましておめでとうございます。
受講レビュー 2
∙
平均評価 5.0
受講レビュー 1
∙
平均評価 5.0
受講レビュー 3
∙
平均評価 5.0
5
"組み込みのインフラ技術、ARM動作原理を簡単に知りたい方におすすめしたい講義です。 コンパイルエラーが起きると心理的に萎縮し、それがC文法ではなく初めて見る奇妙な命令ならさらにストレスを受けます。この講義を受講しながら、そのようなエラーをもっと余裕で処理できるようになりました。 コア内容を短く分けて実習と一緒に説明してくれるので理解しやすいです。実務でARM命令を直接扱わなくても、講義で学んだプロセッサの基盤技術を知っているため、問題解決にもっと多様な観点からアクセスできるようです。 講義を作ってくれてありがとう^^
こんにちは。 Taewan Sungさん! この講義が役に立ったのは私がもっと感謝したことです。今後もより有益で多様な講義の制作に努めます。講義の良い評価ありがとうございます :-)
受講レビュー 5
∙
平均評価 5.0
期間限定セール
¥84
29%
¥19,304
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!