FMUSER Wirlessはビデオとオーディオをより簡単に送信します!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->アフリカーンス語
sq.fmuser.org ->アルバニア語
ar.fmuser.org ->アラビア語
hy.fmuser.org ->アルメニア語
az.fmuser.org ->アゼルバイジャン
eu.fmuser.org ->バスク
be.fmuser.org ->ベラルーシ語
bg.fmuser.org ->ブルガリア語
ca.fmuser.org ->カタロニア語
zh-CN.fmuser.org ->中国語(簡体字)
zh-TW.fmuser.org ->中国語(繁体字)
hr.fmuser.org ->クロアチア語
cs.fmuser.org ->チェコ
da.fmuser.org ->デンマーク語
nl.fmuser.org ->オランダ語
et.fmuser.org ->エストニア語
tl.fmuser.org ->フィリピン人
fi.fmuser.org ->フィンランド語
fr.fmuser.org ->フランス語
gl.fmuser.org ->ガリシア語
ka.fmuser.org ->グルジア語
de.fmuser.org ->ドイツ語
el.fmuser.org ->ギリシャ語
ht.fmuser.org ->ハイチクレオール
iw.fmuser.org ->ヘブライ語
hi.fmuser.org ->ヒンディー語
hu.fmuser.org ->ハンガリー語
is.fmuser.org ->アイスランド語
id.fmuser.org ->インドネシア語
ga.fmuser.org ->アイルランド
it.fmuser.org ->イタリア語
ja.fmuser.org ->日本語
ko.fmuser.org ->韓国語
lv.fmuser.org ->ラトビア語
lt.fmuser.org ->リトアニア語
mk.fmuser.org ->マケドニア語
ms.fmuser.org ->マレー語
mt.fmuser.org ->マルタ語
no.fmuser.org ->ノルウェー語
fa.fmuser.org ->ペルシア語
pl.fmuser.org ->ポーランド語
pt.fmuser.org ->ポルトガル語
ro.fmuser.org ->ルーマニア語
ru.fmuser.org ->ロシア語
sr.fmuser.org ->セルビア語
sk.fmuser.org ->スロバキア
sl.fmuser.org ->スロベニア語
es.fmuser.org ->スペイン語
sw.fmuser.org ->スワヒリ語
sv.fmuser.org ->スウェーデン語
th.fmuser.org ->タイ
tr.fmuser.org ->トルコ語
uk.fmuser.org ->ウクライナ語
ur.fmuser.org ->ウルドゥー語
vi.fmuser.org ->ベトナム人
cy.fmuser.org ->ウェールズ
yi.fmuser.org ->イディッシュ語
アプリケーション開発の場合:C言語、データ構造、JAVAなどをよく学ぶ必要があります。 組み込みアプリケーション開発やPCでのアプリケーション開発において特に注意すべきことはありません。 組み込みシステムを最適化する必要があると言うかもしれませんが、そうです、最適化する必要がありますが、最適化されていないプログラムはPCでのプログラム開発と同じです。 さらに、最適化する能力がある場合、あなたはもはやこの質問をすることに慣れていません。 開発インターフェイスなどの特定の例では、PCでVCを使用します。 組み込みLinuxでは、QTとAndroidを使用する場合があります。 この時点で、QTとAndroidプログラミングを学ぶ必要があります。 しかし、基盤はまだCまたはJAVAであり、これに基づいて、それらのインターフェースに精通します。 VCを習得した場合、それらのクラスとコントロールを理解するには時間がかかります。
基礎となるシステムを学びたいのであれば、これは私の専門ですが、少し言えます。
この質問に答える前に、私に答えさせてください:多くの人々が私に尋ねます、それは運転することを学ぶことですか、それとも適用することを学ぶことですか? それは興味に基づいているとしか言えず、ドライバーとアプリケーションは完全に分離されているわけではありません。
1.ここで説明しているドライバーは、ハードウェア操作だけでなく、オペレーティングシステムの原則やプロセスのスリープとウェイクのスケジューリングなどの概念も含まれます。 優れたアプリケーションを作成し、アプリケーションで発生する問題をより適切に解決したい場合は、この知識を理解する必要があります。
2.アプリケーション、特に現在のANDROID、純粋なJAVAに対する障壁が低い。 個人的には、アプリケーション開発パスはビジネスに堪能だと思います。 たとえば、通信業界、IPTV業界、携帯電話業界では、業界のニーズを理解しています。 したがって、リーダーである人々は主にアプリケーションです。
3.運転される。 実際、私はそれを「ドライバーであること」とは呼びたくありませんが、「低レベルのシステムであること」と呼びたいと思います。 一度行われると、これはすべての産業を殺します。 私は数年働いて携帯電話、IPTV、会議用テレビを作っていますが、私は最下層しかやっていないので、これらの製品は私には何の違いもありません。 彼らの仕事は私とは何の関係もありません。 アプリケーションに問題があり、解決できない場合は、カーネルの観点からアイデアを出し、ツールを提供します。 個人的には、最下層の開発方向の技術専門家だと思います。
4.実際、最下層を実行することとアプリケーションを実行することの間に境界はありません。 最下層の経験がある場合は、アプリケーションを実行するときに非常に安心できます。 ビジネス経験があれば、最下層を知ることができ、すぐにチームを結成できるようになります。
学ぶ方法の質問に戻ります。 組み込みLinuxの基盤となるシステムには何が含まれていますか? 心配しないでください、あなたは例を与えることによってそれを知るでしょう。
1.コンピュータの電源を入れたときに、誰がそれらのインターフェイスを表示しますか? それはBIOSです、それは何をしますか? いくつかのセルフチェックを行ってから、ハードディスクからウィンドウを読み取って起動します。 同様に、このBIOSは組み込みLinuxのブートローダーに対応します。 このブートローダーは、Flash上のLinuxカーネルを読み取って起動する必要があります。
2.ウィンドウを起動する目的は何ですか? もちろん、それはオンラインチャットか何かです。 これらのインターネットおよびチャットツールはどこにありますか? CドライブとDドライブ。 したがって、ウィンドウは最初にCドライブとDドライブを識別する必要があります。 Linuxではこれをルートファイルシステムと呼びます。
3. WindowsはCドライブとDドライブを認識できるため、ハードドライブの読み取りと書き込みができる必要があります。 関係するものはドライバーと呼ばれます。 もちろん、ハードディスクだけでなく、ネットワークカードやUSBなどもあります。 組み込みLinuxはFlashからアプリケーションを読み取って実行でき、Flashドライバーも必要です。 もちろん、フラッシュだけではありません。
最初にそれについて話しましょう。組み込みLinuxには、ブートローダー、カーネル、ドライバー、ルートファイルシステムのXNUMXつの主要な部分が含まれています。
XNUMXつ、ブートローダー
これは少し複雑なベアボードプログラムです。 しかし、このベアボードプログラムを理解して作成するのは簡単ではありません。 Windowsで使用できる便利なツールは、プログラミング能力を弱めます。
多くの人は、埋め込みでプレイするとすぐにADSとKEILを使用します。 これらの質問に答えてくれますか?
1.電源がオンになると、CPUは実行のために命令をどこでフェッチしますか?
回答:通常、命令はフラッシュからのものです。
2.ただし、Flashは読み取りのみが可能で、直接書き込むことはできません。 グローバル変数を使用する場合、これらのグローバル変数はどこにありますか?
回答:グローバル変数はメモリ内にある必要があります
3.では、誰がグローバル変数をメモリに入れますか?
回答:ADSとKEILを長い間使用している友人に回答できますか? これには「再配置」が必要です。 ADSまたはKEILでは、再配置コードはこれらのツールを作成する会社によって作成されます。 あなたはそれを読んだことがありますか?
4.メモリが非常に大きいのですが、「元々Flashに保存されていたコンテンツ」をメモリに読み込むアドレスをどのように知ることができますか?
回答:このアドレスは「リンクスクリプト」によって決定されます。ADSにはスキャッターファイルがあり、KEILにも同様のファイルがあります。 しかし、あなたはそれを研究しましたか?
5.再配置とは、プログラムをフラッシュからメモリにコピーして、このプログラムがフラッシュを読み取れるようにすることだとおっしゃいましたか? 回答:はい、Flashを操作できる必要があります。 もちろん、これらだけでなく、システムをより高速に実行するための時計の設定などもあります。 ここで最初に質問して答えましょう。ベアボードプログラムであるブートローダーには、実際にはXNUMXつの主要なポイントがあります。
1.ハードウェアの操作
2.ARMシステムプロセッサの理解
3.プログラムの基本概念:再配置、スタック、コードセグメント、データセグメント、BSSセグメントなど。
ハードウェアの操作については、回路図とチップのマニュアルを参照する必要があります。 これには、ある程度のハードウェアの知識が必要です。 ハードウェアを設計できる必要はありませんが、少なくともそれを理解する必要があります。 アナログ回路を理解できる必要はありませんが、デジタル回路を理解する必要があります。 私は学校でこの能力を学びました。 XNUMX冊の本(私が忘れた本のタイトル)で十分です。 しかし、私はあなたがこれらのXNUMX冊の本を読み終える忍耐力を持っているとは思えません。 もっと速い本があるかどうかはわかりません。 速くしたい場合は、最初にこれを手放し、理解できない場合は、Googleに質問して投稿してください。
さらに、チップのマニュアルを読む必要があります。中国語を探すのではなく、英語だけを見てください。 最初はとても苦痛でしたが、後で文法や語彙に慣れれば、どんなチップマニュアルも読みやすくなります。
ARMシステムプロセッサの理解については、DuChunleiのを参照してください。 組み立て手順、例外モード、MMUなどについて説明します。これらの3つのコンテンツだけを理解する必要があります。
もちろん、プログラムの基本的な概念は、コンパイルの原則を見ることです。 残念ながら、このタイプの本は間違いなく天国の本のレベルです。 あなたが超天才でない限り、それを見ないことをお勧めします。 ただ見てください私が最初に書いたビデオは、心配しないで、お金をかけないでください。 ビデオに続いてハードウェア関連の実験を行うと、これらの概念が明らかになります。 私はこれらの概念について話している本やビデオのXNUMX番目のセットを見つけていないので、盲目的にそれについて自慢することができます。 ブートローダーについては、勉強中に最初に見た後、自分でプログラムを作成し、GPIO、クロック、SDRAM、UART、NANDなどのさまざまなハードウェアですべての実験を行いました。 それらを明確にすれば、グループ化することでu-bootを理解しやすくなります。 要約すると、ハードウェアの回路図とチップのマニュアルを理解するには、自分で情報を見つける必要があります。 残りの部分については、の章リストに従ってください。 そして学ぶべきビデオの最初の段階。
二、カーネル
始めたい人は、最初にカーネル学習をスキップして、ドライバーを直接作成する方法を学ぶ必要があります。
マスターになるには、カーネルが深く理解している必要があります。 私が理解について話していることに注意してください、私はカーネルを書くという贅沢な希望を持っていません。
内部のスケジューリングメカニズム、メモリ管理メカニズム、ファイル管理メカニズムなどを理解する。
XNUMX冊の本をお勧めします:
1.読み通し、薄い本を読んでください(浮遊社会はスピードを重視します)
2.読むことを選択し、どのセクションをどのセクションで読むかを知りたい
三、ドライブ
ドライバーは、ハードウェア自体の操作とドライバーのフレームワークのXNUMXつの部分で構成されます。
再びハードウェアです。 回路図とチップマニュアルを理解する必要があります。 もっと練習しましょう。 ドライバーフレームワークと言えば、それを紹介する本がいくつかあります。 外国人が書いた本LDD3は、多くの概念を紹介しており、読む価値があります。 ただし、その役割は概念の導入に限定されています。 基本的には、始める前に概念を理解し、始めたら捨てるために使用しました。
ドライバーのより包括的な紹介はSongBaohuaのものでなければなりません。 正直、カタログしか読んでいません。 多くの人がそう言った、私はここでそれをお勧めします。
特定の領域を深く理解したいのであれば、それは間違いなくスーパー5つ星の推奨事項です。 あなたはそれを読むことを期待していません、1,800ページ以上、上下2.4巻。 特定のエリアがわからないときは、調べてみます。 この本のどの部分もXNUMXページからXNUMXページをカバーすることができ、それは非常に詳細です。 そして、特定の目標を持ってカーネルソースコードを分析するためにあなたを連れて行きます。 例としてLinuxXNUMXを取り上げますが、原則は同じであり、他のバージョンのLinuxにも適用できます。 他の紹介はありますか? もちろん、Wei Dongshan LinuxVideoの第XNUMX号もあります。 「組み込みLinuxアプリケーション開発の完全なハンドブック」では、ドライバーについてはあまり説明されておらず、十分に詳細ではありません。
開発ボードに含まれるすべてのハードウェア用のドライバーを作成してみてください。 問題がある場合は、最初に「痛々しいほど考える」必要があります。 思考の過程で、あなたは多くの無関係な知識を結びつけ、最終的にそれを通り抜けます。
第四に、ルートファイルシステム
これらのXNUMXつの質問について考えたことはありますか。
1. Linux製の製品は、監視用、携帯電話用、タブレット用などがあります。 では、カーネルの起動後、ルートファイルシステムのマウント後、どのアプリケーションを起動する必要がありますか?
回答:カーネルは、どのユーザープログラムを開始する必要があるかを知らないか、気にしません。 / sbin / initに対応するinitアプリケーションのみを起動します。
明らかに、このアプリケーションは構成ファイルを読み取り、構成ファイルに従ってユーザープログラム(監視、手動インターフェイス、タブレットインターフェイスなど)を起動する必要があります。 この質問は、ファイルシステムのコンテンツに/ sbin / initなどのいくつかの規則があり、構成ファイルが必要であることを思い出させます。
2.自分が書いたhelloおよびworldプログラムで使用されるprintfを誰が実装したかについて考えたことはありますか?
回答:この関数はあなたが実装するのではなく、ライブラリ関数によって実装されます。 実行するときは、ライブラリを見つける必要があります。
この質問は、ファイルシステムにまだライブラリが残っていることを思い出させてくれます。 ここに簡単な質問と回答があります。 詳細を知りたい場合は、busyboxのinit.cを調べて、initプロセスの機能を確認できます。 もちろん、ルートファイルシステムの構築に関する章もご覧ください。 。
私の学習経験
1.私は学校に通っていたとき、物理学と電子工学を専攻していました。 実際、私はこのコースで回路の設計方法を教えていませんでしたが、電子回路についての知識しか教えていませんでした。 PCBの設計は、研究室で私自身が教えました。 私は2層のボードしか設計していませんでしたが、今ではほとんど忘れています。 ただし、回路図とチップのマニュアルを読むことはできます。
2.ソフトウェアの学位を取得し、ソフトウェアの設計に非常に興味がありますが、C言語とデータベースしか学びませんでした。 私は興味を持ってたくさんの競争の質問をしました。 コンテストに参加することはできませんが、C言語の練習はしっかりしています。
3.研究室では、最初の会社で、いくつかの簡単なPCIカードを設計し、Windowsドライバーを作成しました。
4. 51番目の会社では、XNUMX個のシングルチップマイクロコンピューターを自動車電話として使用し、純粋なソフトウェアの道を歩み始めました。
5.シングルチップマイコンの欠点を感じ始めました。 私は半年間辞任し、Red Hatの操作方法から始めて、密室でLinuxを学びました。 ステップは、最初にそれを見て、次にハードウェアを操作するためのベアボードプログラムを作成し、次にu-bootを分析することです。 同時に、私はLINUXフレームワークについてある程度理解しています。
ベアボードを作成するときは、割り込みについての理解を深めることをお勧めします。 カーネルは割り込みを使用してさまざまな機能を完了します。
6. u-bootを分析した後、簡単なドライバープログラミングを開始します。 現時点では、能力はまだ非常に弱いです。
7. ZTEで働き始め、2年間働き、あらゆる種類のドライバーを作成し、あらゆる種類の問題(運転の問題、アプリケーションの問題の特定を支援)を解決し、能力を強化しました。
|
サプライズを取得するには、メールアドレスを入力してください
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->アフリカーンス語
sq.fmuser.org ->アルバニア語
ar.fmuser.org ->アラビア語
hy.fmuser.org ->アルメニア語
az.fmuser.org ->アゼルバイジャン
eu.fmuser.org ->バスク
be.fmuser.org ->ベラルーシ語
bg.fmuser.org ->ブルガリア語
ca.fmuser.org ->カタロニア語
zh-CN.fmuser.org ->中国語(簡体字)
zh-TW.fmuser.org ->中国語(繁体字)
hr.fmuser.org ->クロアチア語
cs.fmuser.org ->チェコ
da.fmuser.org ->デンマーク語
nl.fmuser.org ->オランダ語
et.fmuser.org ->エストニア語
tl.fmuser.org ->フィリピン人
fi.fmuser.org ->フィンランド語
fr.fmuser.org ->フランス語
gl.fmuser.org ->ガリシア語
ka.fmuser.org ->グルジア語
de.fmuser.org ->ドイツ語
el.fmuser.org ->ギリシャ語
ht.fmuser.org ->ハイチクレオール
iw.fmuser.org ->ヘブライ語
hi.fmuser.org ->ヒンディー語
hu.fmuser.org ->ハンガリー語
is.fmuser.org ->アイスランド語
id.fmuser.org ->インドネシア語
ga.fmuser.org ->アイルランド
it.fmuser.org ->イタリア語
ja.fmuser.org ->日本語
ko.fmuser.org ->韓国語
lv.fmuser.org ->ラトビア語
lt.fmuser.org ->リトアニア語
mk.fmuser.org ->マケドニア語
ms.fmuser.org ->マレー語
mt.fmuser.org ->マルタ語
no.fmuser.org ->ノルウェー語
fa.fmuser.org ->ペルシア語
pl.fmuser.org ->ポーランド語
pt.fmuser.org ->ポルトガル語
ro.fmuser.org ->ルーマニア語
ru.fmuser.org ->ロシア語
sr.fmuser.org ->セルビア語
sk.fmuser.org ->スロバキア
sl.fmuser.org ->スロベニア語
es.fmuser.org ->スペイン語
sw.fmuser.org ->スワヒリ語
sv.fmuser.org ->スウェーデン語
th.fmuser.org ->タイ
tr.fmuser.org ->トルコ語
uk.fmuser.org ->ウクライナ語
ur.fmuser.org ->ウルドゥー語
vi.fmuser.org ->ベトナム人
cy.fmuser.org ->ウェールズ
yi.fmuser.org ->イディッシュ語
FMUSER Wirlessはビデオとオーディオをより簡単に送信します!
お問い合わせ
カテゴリー
ニュースレター