より良い組み込みプログラマーであるために、Linuxの心のフレームを持つのを助けますか?

StackOverflow https://stackoverflow.com/questions/5483129

  •  14-11-2019
  •  | 
  •  

質問

は疑問に思っていた - Linuxの生活やLinuxアーキテクチャーを知っていれば、特に彼らにいくつかの種類のOSを持っているときに、組み込み機器でのプログラミングのためのより良い心のフレームを与えるでしょう。
私が主なことを見逃していなかったことを確信したいだけです。)

注:
私はWindowsの背景から来て、CとC ++でプログラムできます。
情熱的で、ついに組み込みプログラミングに入りたいです。私は家で典型的な趣味プロジェクトをすることから始めたいと思います。

誰もが私のための出発点としてビーグルボードについてもコメントするならばいいでしょう。

役に立ちましたか?

解決

はい、いいえ。ほとんどはい。

Lundinは「埋め込まれた2つの世界」を正しく説明しました(それらの間の境界は非常にファジーですが)。

Androidなどの「高埋め込み」やLinuxを実行するその他のデバイスのために書いている場合は、Linuxに関する専門知識の知識が大きくなるでしょう。あなたはまだいくつかの "Bare Bones"を知っておく必要があります。毎日の使用のためのあなた自身のカーネル、あなたがtarballsからソフトウェアを構築するでしょう、それが役に立ちます。現代のLinux - Gnome、Gonfエディタ、シナプス、そして好きなことは多くのヘルプではありません。

次に、あなたがOSなしでデバイスをプログラミングしている場合は、中央領域で、Cプログラムを実行するのに十分な速くて強いですが、OSではなく、まだLinuxが必要です。クロスコンパイルだからです。実際のLinuxは必要ありません。 Cygwinはそのために大丈夫です。 MingWで十分であるかもしれません。それでも、あなたはおそらくあなた自身のクロスコンパイラ(GCCに基づく)、リンカ、デバッガ、作業ツール、そしてIDEの残りの「バックボーン」を構築することができるでしょう。チップサプライヤーが素晴らしいと、IDEとの完全なツールチェーンを提供しない限り。

あなたが小さなプロセッサに入っているときにのみ、Linuxは必要ありません。カーアラームリモコン、クリスマスライトブリンク、カータイヤの圧力センサー、バッテリーレベルのモニター - 16バイトのRAM、1KB EEPROM、および一致するCPUの残りの部分を持つことができるものは、このCPUで動作するIDEを使用する必要があります。 、No OS、Cコンパイラ、Linuxにリモートで近接していません.IDEは、Windowsベースになる可能性が最も高いです。

他のヒント

「埋め込み」はファジー単語です。 2つのカテゴリがあります:

リアルタイム組み込みシステム:マイクロコントローラ/マイクロプロセッサアプリケーションは、ハードウェアと直接低い抽象化レベルで直接通信しているアプリケーションです。典型的な用途は、制御システム/自動化、産業用、自動車、MEDTECH、家庭用電子機器、データ/テレコム通信などです。

、ふわふわの組み込みシステムがあります:さまざまなラップトップ:ISHコンピュータ、埋め込みLinux、埋め込みウィンドウ、電話、および偽造手術システム、インターネット、人間の機械の羽ばたきなどを含むものなど。

両方のカテゴリーで働いている人々は、彼らが組み込みシステムを使って働いているとしっかりと述べていますが、後者の種類はデスクトップアプリケーションの別の風味をしているだけです。どのカテゴリを目指しているかに応じて、Linuxはメリットであるかもしれません。たとえば、テレコムブランチはこれらのカテゴリの両方と重なっています。

どちらの場合でも、* NIXを開発プラットフォームとして使用することができるので、それを傷つけないことを知っています。

あなたが本当にLinuxを組み込みプログラミングのために知る必要がないと思います。組み込みソフトウェアを開発する多くの企業はWindows上でそれを行い、他のOSと連絡がない。

しかし、もっと知っていることを知っていること、そして一般的な知識はあなたをより良いエンジニアにします。これには他の多くのものとして異なるOSが含まれます。

ビーグルボードに関しては、興味のあるアプリケーションの種類によって異なります。 ローレベルを理解したい場合は、より単純なプロセッサで起動し、周辺機器、ハードウェア割り込み、デバウンスシグナルの使用方法を学習します。

私はそれをスキップしてARM-A8とおそらく埋め込みOSで始めることもできます。

私が言っていることは炎の戦争を引き起こすかもしれませんが...

LinuxはWindowsよりもはるかに生産的な開発環境であることを発見しました。私の以前の仕事では、組み込みLinuxオペレーティングシステムを実行した管理スイッチと産業用オートメーション機器用のファームウェアを開発していました。ユーザーインターフェイスソフトウェアがWindows上でのみRANのみされるように、すべての開発者はWindowsボックスとLinuxボックスの両方を持っていました。私たちは皆、単に簡単だったので、私たち全員が開発するためにLinuxを使用しました。

私の現在の仕事では、唯一の選択肢はWindowsを実行することですが、それをより生産的にすることは、 cygwin これはLinuxのような環境を提供します。 Windowsには特にないWindows上でソフトウェアを開発することは非常に困難です。

OSなしの組み込みシステムの開発については、 arduino が演奏しています。私はそれをWindowsとLinuxの両方からプログラムし、かなり類似した経験を見つけました。 Arduino自身のツールを使用すると、Windowsはもう少し滑らかに実行されているようですが、それをハッキングして興味深いものをしたいのであれば、Linuxを使うのが良いです。

個人的に(そしてこれはおそらく厄介なコメントを誘発する可能性があります)、Linuxは生産的な仕事をするのに最適であり、窓はゲームをプレイするのに最適です。

基本的に、これはすべてこれにゆっくりと沸騰します。プロジェクトを開発するためにLinuxを使ってみてください。あなたはおそらくそれがたくさんのより滑らかで生産的な経験であることを見つけるでしょう。あなたがそれを好きではない場合は、それを使用し続ける必要はありません。しかし、経験はおそらくその価値があるでしょう。

編集(質疑応答のため):Linux自体を実行していない組み込みプロジェクトをコーディングするときに「Linuxの生活の様子」を知ることはほとんど役立ちません。私がそれを理解しているように、UNIX哲学は約2つの主な問題です:

  1. 各工具は一つのことをするべきであり、それをよくやろうとしているのではありません。
  2. 可能な場合はいつでも、データはプレーンテキストであるべきです(プロセスを介した単純な配管やコンテンツの検索を可能にします)。

    オペレーティングシステムなしでシステムに取り組んでいる場合は、コンパイラのコードを書いており、任意の時点でフルシェルを使用していない可能性があります。また、ファイルシステムの種類があるとは異なります。そのため、これらのポイントの両方が起訴されています。 Linuxを学ぶことによって、具体的に具体的に関連していることに具体的には具体的に関連している可能性がありますが、確かに害を害することができませんでした: - )

埋め込み球について少し習得したいのであれば、OSを直接使用して始めてはいけません。小さな低レベルのプロジェクトに手を持つことを好むと、最終的なアプリケーションに本当に必要な場合はOSを追加します。

OSを組み込みデバイスに設定するとは思わないと思います。それはあなたにいくつかの機能をもたらします(私はあなたが本当に埋め込まれた学ぶ必要があることがわからないこと)が、OSポートの問題の場合には多くのハードデバッグ時間をもたらすでしょう。

現在、現在ネットワーキング機器およびそのApacheヘリコプターの前に10年間組み込みプログラミングを行っています。どちらの企業も、ターゲット上のPOSIXのようなオペレーティングシステムを作成しましたが、直接埋め込まれていません。私の現在の会社は、個々の開発者環境にほとんどWindowsを使用しています。しかし、私たちには特別な目的のためにぶら下がっているいくつかのLinuxボックスがあります。私の以前の会社は、WindowsとSun Solaris Unixのミックスを使用しました。それで、どこへ行っても、あなたはあなたの日々のコンピュータにUNIXまたはLinuxを使用しないかもしれませんが、あなたは少なくとも時々それに遭遇する可能性があります。

一方、埋め込みLinuxのLinuxでプログラムした開発者は、キャリア全体をターゲットにしています。小規模または新しい会社が企業よりもLinuxを使用する傾向があるため、本当に会社に依存しています。ただし、ターゲット上のウィンドウの埋め込み形式を使用することは私の経験では非常にまれです。私はデバイスがそこに出ているのを知っていますが、私は個人的に1つに働いていた開発者に会いました。

とにかく、Linuxは自由に使用でき、仕事に適している以外にも他の利点があります。あなたの時間のいくつかをあきらめること以外に、数ヶ月間試してみることは本当にありません。

Linuxは組み込みで成長しています...最新の研究を参照:
内蔵ソフトウェアとツール市場のトップ10トレンド2011年に - VDC Research
Androidは、米国のスマートフォン市場で番号1になりますシェア

Linuxのを知ることは間違いなく組み込みドメインのプラスになるでしょう。興味のあるアプリの種類は上記のリンクに含まれています。

埋め込みフィールドから始まる前にLinuxアーキテクチャについてはオーバー殺害(基本的な概要は良いです)

e.g。斧を発明する必要はありません - 斧を使って始めるだけで、徐々にax をシャープにすることができます

は、小さく始めるのが良いです - 時間の必要性と同じように特定の分野に焦点を当てます。あなたの仕事と仕事を念頭に置いて働きながら成長する

あなたは確かにはるかに速くなるでしょう、そして自己ループで立ち往生していないでしょう - R&DはR&D;)

Linuxを埋めたい場合にのみ!そして、約22年の組み込みシステム開発者として、私はLinuxが非常に大きな割合の組み込みシステムプロジェクトには不適切で不要であることを示唆しています。

RTOSの働きを理解し、リアルタイム優先順位に基づく事前停止スケジューリングとIPCメカニズムは、よりよく抑制されます。このの例。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top