組み込みシステム、プログラミング言語、効率的なツール、その他のコンテンツの基本的な知識を要約します。
最近、友達がとても良いことを言うのを聞いた:
iPhoneはOSで走る埋め込み腕であり、CUDAは異種の埋め込みとしても理解できます。
この観点から、コンピューターサイエンスを埋め込みから分離し、マイクロコントローラー、アーム、FPGAなどのテクノロジーを呼び出し、狭い技術分野のみを学習することにより、どのようにして優れた組み込みエンジニアになることができますか?
技術文書と学習記録:
組み込みシステムの基本:
機械学習:
プログラミング言語:
環境構築とツール:
理論的根拠:
このウェアハウスは、コンテンツの埋め込みフィールドに関連する知識を更新します。著者の研究ノートと経験の一部は、毎日の仕事の一般的なスキルであり、さまざまな方法で収集された埋め込み知識です。あなたが持っている知識を要約して洗練することにより、あなたは常により有用なスキルを学ぶことができます。
最近、埋め込まれたエンジニアのポジショニングに関する新しい見解があります。
エレクトロニクス専攻の卒業生は、マイクロコントローラーやマイクロコンピューターの原則などのマシンレベルから学習を開始し、C言語やPythonなどの言語レベルに移動し、データ構造とアルゴリズムを学習します。このルートはかなり良く、始めるのに適していますが、このルートには深刻な問題があります。
埋め込まれた作業で遭遇する問題はしばしば包括的です。つまり、言語レベルまたはアルゴリズムレベルから始まることは、多くの場合問題を解決できず、時にはマシンレベルに深く入る必要があります。問題は、組み込みシステム全体にどのレベルがあるか、またはコンピューターシステム全体にどのレベルがあるかということです。ナレッジシステムフレームワーク全体とあなたの位置を理解するには、コンピューターの構成原則をより深く理解する必要があります。
ここでお勧めする本は、Randal E. BryantとDavid R. O'Hallaronによって書かれた「コンピューターシステムの詳細な理解」の第3版です。対応できるコースは、MOOCプラットフォームでYuan Chunfeng教授が教えた「コンピューターシステムの基本」コースです。これにより、コンピューターシステムの抽象化レイヤー全体の理解を確立し、埋め込まれた問題を解決する包括的な能力を高めることができます。

埋め込まれたエンジニアは、技術的な蓄積に十分な深さを持っている必要があります。
数年にわたるエンジニアリング開発の後、私はさまざまなプロセッサと接触し、単純な16ビットCPUを自分で設計および実装しました。特定のCPUの使用は最も重要な知識ではないことに徐々に気付きましたが、より重要なコンテンツはコンピューターの構成とコンピューターアーキテクチャ(X86 ARM RISC-V)の原則です。コンピューターの基本的な知識を深く理解することで、新しいコンピューティングハードウェアを学習するときに同じサイズを理解することができ、GPU、TPU、NPUなどの新しい不均一なコンピューティングテクノロジーを学ぶのはそれほど難しくありません。
さまざまなプログラミング言語は、新しいプログラミング言語を常に学習する必要があるかどうかを言うように求められた場合、答えはイエスでした。しかし、最も重要なことは、プログラミング言語自体ではなく、該当するシナリオであると思います。プログラミング言語の背後にあるものを理解し、新しい言語を学び、使用することが非常に簡単になります。
迅速なポジショニングシステムの問題は、すべての組み込みエンジニアにとって必要な機能です。それを効果的にデバッグする方法は?私はかつてこの問題を本当の専門家の同僚と話し合ったが、彼は言った:私は主に考えに頼っていると言えますか?この答えは明らかに短すぎますが、デバッグは実際に思考に基づいていることを認めなければなりません。
最近、私は「それを解決する方法」と呼ばれる本を読みました。それは私にいくつかのインスピレーションを与えてくれました。
エンジニアがデバッグ機能を改善したい場合、彼らはしばしばこの問題について考える必要があります。このソリューションは実行可能であり、正しいように思えますが、どのようにそのような解決策を考えることができますか?この実験は実現可能であるように思われますが、それは事実のようですが、この事実はどのように発見されましたか?そして、どうすればそれらを考えたり、自分で発見したりできますか?職場では、さまざまなバグの解決策を理解するために最善を尽くすだけでなく、この解決策の動機とステップを理解し、これらの動機と他の手順を説明するために最善を尽くしなければなりません。