マニュアル-----はじめに開発するLinuxの組み込みエンジニア

なぜ、これらのブログを持っています

彼女は、我々はすぐに、彼は多くのことと、自分の連絡先を開発し、その後STM32 ARM + LinuxへのArduinoから、組込み関連開発の当初から、大学に入っていることをストロークの秋に直面するだろう、今ジュニア次の学期に入ろうとしていましたこれらの結論に自分の過去の知識にブログを書くことがあり、それが再入国が自分を書くために他の人を見てから、すべてゼロから、あなたに学生をいくつかの助けを提供するために埋め込むことができると期待されている共有ですプロセス。
あなたは要約が特に重要ではないと感じるかもしれないが、私は、組成系の知識が埋め込まれた、特にために、必要かつ有益であると言いたい、私は静かに、あなたは、関係する何かが確かに多くのと複雑な組込み、言うことができますベアメタルからオペレーティングシステムへのアセンブリからオブジェクト指向へのネットワークへのドライブからハードウェアからソフトウェアまでの知識の多くの側面に接触し、、、多くの知識組織化されていない場合、システムにそれらを入れていない、基本的には忘れ学ぶために読んでください規範。

組み込みどんなニーズ

仕事の分類

組み込みハードウェア、マイクロコントローラ開発(ベアメタル)、組み込みドライバー(Linux)の、RTOS組込み開発、Linuxが組み込み:すべての埋め込みの最初は仕事の卒業生は、カテゴリに分けることができるため、一般的に言えば、比較的広い概念でありますスタイルの開発

  • 組み込みハードウェア
    これは根本的に有利になるように偏ったハードウェアをより重視、知識のインターフェース面であれば、この事実とハードウェアエンジニアは、ほぼ、回路図、PCBの描画、高速インターフェースのアライメントの最適化、ボードのトラブルシューティングする能力を必要とします
  • MCU開発(ベアメタル)
    SCMベアメタル開発は、私たち一人一人が、埋め込まれたマイクロコントローラとの接触を持っていると信じて、また大きな市場ですが、ベアメタルの開発は、通常、フロント、それほど単純ではありませんし、バックオフィスシステムやステートマシンのスケジュール、密接に連携し、製品の使用と位置決めを行います。
  • 組み込みドライバー(Linux)の
    埋め込まれた駆動システム、ハードウェアへのブリッジを構築するために主にあるほとんどのLinux用の開発を推進し、より多くの開発の20年後の駆動フレームとLinuxの開発プロセスを成熟さに形成されているが、大きな仕事セクションでは、IC工場で完成され、同社が唯一の要件を重視した製品のほとんどは、ドライブが、元にまたは大企業のICの開発ニーズをします根底にしているアップ実行したり、特定の基本的な最適化とパッケージングを駆動できるということですドライブのエンジニアは、より多くの需要があり、より多くのあなたは良いドライバーのエンジニアが唯一のドライバを書くの枠組みの中で行われてはいけませんになりたい、カーネルのいくつかの知識を持っていることがより重要なのは、カーネルがメカニズムを理解するだけでなく、インターフェイスおよびハードウェアを習得します知識はFBIと通信するために、ハードウェア・エンジニアで行うことができます
  • 組込みRTOSを開発
    、彼のニーズのコストを押し上げ、以上のようなもの機器のインターネットのようなリアルタイム要件、飛行制御などのために、このような製品は、RTOSのシステムを使用して開発され、多くの製品が順番にLinuxの裸の金属を達成することはできません一般的なものは、オープンソースのFreeRTOSが含まれていますが、商用料、国内の陸上収入新星RT-スレッド、Huawei社LiteのOSなどUCOS最も豊富な情報。組み込み開発者のためのRTOSは、RTOSのも、様々な使用の経験を持っている必要があり、最高のは、重要な社内の研究(プロセス管理、割り込み処理、同期管理、など)のメカニズムだけでなく、プロトコルスタックライブラリのいくつかを理解することがあったかもしれません使用(LWIP、MQTTなど)は、いくつかの仕事も、UIインターフェイスの開発に(のemWin、柿など)を理解する必要があり
  • 組込みLinux開発
    組込みLinux開発者のが通常のLinuxオペレーティングシステムのアプリケーション層でのいくつかの開発作業を行い、C言語ベース、およびいくつかのも必要なC ++、Linux製品は、一般的にオーディオに実行され、ビデオ処理の需要が高くなっています開発は今、もちろん、それが行われている場合は特にそう高い要求をプログラミングマルチスレッドプログラミングやネットワークプログラミングのLinuxシステム上で、その後、グラフィカルインタフェースはQTの開発経験を持っている必要があります、一つ以上のグラフィカルインタフェースを必要とするネットワークの要件、企業の多くは、グラフィカルインタフェースを行うためのAndroidを使用しているが、より高い私は、根本的なAndroidの開発や難しさを理解して基礎となるLinuxベースのAndroidフレームワークの必要性とこれを行うには、学生を卒業の祝福を持っても過言ではありません

これに上記の5つの方向は、もちろん、すべての行う必要はありませし、より細かいなしでは意味をなさない、1または2の綿密な調査を選択する必要があり、私にとっては、深耕のLinuxドライバ開発の私の現在のエリアですしかし、ドライブ、道路が非常に狭い場合にのみ、これもコンテンツ組込みLinuxの開発を学習し、トップアプリケーションに下から駆動するLinuxプラットフォームになるために努力することは、シニアエンジニア(長い道のり)を緩和することができます

リクルートのニーズ(必要な技術スタック)

あなたは、関連する仕事を見つけるためにスキルや方向を学ぶならば、あなたは一般的に、あなたが学ぶ必要があるかを理解することができます仕事を見てみましょう

  • 組み込みドライバー(Linuxの)
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
  • Linuxは開発組込み
    ここに画像を挿入説明
    ここに画像を挿入説明
    読むに我々は要約することができます上の写真
    などがエンジニアを駆動するのに必要なスキル:C言語、オペレーティングシステムの原則をより深く理解、共通の周辺機器のLinuxドライバフレームワークの熟練使用し、uboot +カーネル+ rootfsの+サードパーティのライブラリの移植手順、Linuxカーネルの一定の理解があり、あなたは、ハードウェア回路図読み取ることができ
    、より一般的な書き込みにオンデマンドで動員に組込みLinux開発エンジニアを、我々はまだいくつか要約することができます。熟練したCを使用するのに最適な言語とは、これらの二つのセクションのコンピュータ・ネットワークの基本的な知識やオペレーティングシステムの知識を持っている必要があり、C ++、データ構造、Linuxシステムのプログラミングを使用する
    心が出マップ描画する、我々は知識のすべての部分ブレークダウンを行います

分解スキルとマインドマップ

ときに我々はできる組込みLinuxエンジニアの分解に必要なトップスキルに下から。
注:多くの知識は簡単に分離することができないため、唯一の私の個人的な理解であること、異なる意見がある場合にも、そのことを歓迎

  • 基礎
    この基盤は、基盤となる、基本的な知識主導型、システム、アプリケーション、および関連ソフトウェアの独立したが、医師が把握しなければならないようです。含む:C(おなじみなど)、データ構造(リンクリスト、キュー、スタック、バイナリツリーなど(図需要少ない))、アルゴリズム(再帰的に、ソート、バイナリ検索、検索、ハッシュなど)、操作システムの基礎の基礎知識、コンピュータネットワーク
  • 底层
    底层这里涉及的就是一些电路相关的知识,比如如何去读原理图(简单的比如三极管的驱动电路)、以及某些外设接口的电路特性(IIC接口上拉),这部分的要求其实是比较少的
  • 驱动
    这部分对于驱动工程师来说是核心的内容,包含字符驱动框架、Platform设备驱动、IIC总线驱动、SPI设备驱动、GPIO和Pinctrl子系统、块设备驱动、Input子系统、Framebuffer子系统、驱动中的中断处理、驱动中的同步机制等,更加重要的是不仅仅要会改代码,而且要体会Linux内核驱动的框架与机制,从而可以通过学习几个子系统来举一反三
  • 系统
    我这里的系统并不仅仅指Linux而是指整个嵌入式系统层面的技术,这里首先包含uboot、Linux内核、rootfs的裁剪与移植,这个其实想要做到熟练是需要大量的项目经验的,我们也不需要去深入代码层次的理解,而是要体会系统启动的整个流程,熟知每个部分的作用,并能进行移植操作。
    还有一个就是对Linux内核的理解了,内核是特别深的,作为应届生想要有较深的理解其实是很难的,但是我们要尽自己所能的去了解和学习,对内核的学习我很赞成宋宝华老师的观点,先要有总体的认识然后在逐渐的深入,最后对每一块进行逐个的攻破
  • 应用
    应用层面主要包含:Linux系统编程(尤其是网络和多线程部分)、C++及面向对象的内容、QT开发

简单的思维导图如下
ここに画像を挿入説明
在接下来的博客中我争取对各个部分的知识进行一个总结,当然如果以前有写过不错的总结博客我就不会再写了,而是把以前博客的链接贴出来

公開された123元の記事 ウォンの賞賛597 ビュー340 000 +

おすすめ

転載: blog.csdn.net/a568713197/article/details/104282797