目次
ステップ 1: Linux ツールとプロジェクトのレイアウト" >ステップ 1: Linux ツールとプロジェクトのレイアウト
步驟2:引導序列、時脈系統、記憶體和序列介面" >步驟2:引導序列、時脈系統、記憶體和序列介面
ホームページ システムチュートリアル Linux 組み込み Linux プロジェクト開発のいくつかの手順

組み込み Linux プロジェクト開発のいくつかの手順

Feb 05, 2024 pm 12:51 PM
linux Linuxチュートリアル Linuxシステム Linux オペレーティング システム Linuxコマンド シェルスクリプト メモリ使用量 システムバージョン Linuxツール 埋め込みLinux 良い約束 Linux を始める Linux学習

マイクロコントローラー メーカーが提供する開発ボードと関連ソフトウェア プロジェクトのサンプルは、多くの場合、エンジニアが新しい設計を開始するときに非常に役立ちます。ただし、設計プロジェクトの初期段階が完了した後、メーカーが提供するソフトウェアでは、さらに設計を進めるときに問題が発生する可能性があります。

リアルタイム オペレーティング システムをアプリケーション コードのプラットフォームとして使用する設計には、多くの課題もあります。たとえば、さまざまな並列タスクに機能を効果的に割り当てる方法、信頼性の高いプロセス間通信を設計する方法、ハードウェア上でソフトウェア パッケージ全体をテストする方法などの問題があります。

ますます多くの OEM メーカーが、上記の問題を回避する最善の方法は、実証済みで拡張性があり、さまざまなハードウェア プラットフォームで実行できるオープン ソース ベースの Linux オペレーティング システムを使用して新しい設計を開始することであると認識しています。さまざまなコンピューター ハードウェア プラットフォームへの Linux オペレーティング システムの移植数も他に類を見ません。

Linux 派生製品は、ネットワーク ルーター、携帯電話、ビルディング オートメーション制御、テレビ、ビデオ ゲーム コンソールなど、さまざまな組み込みシステムですでに使用されています。

Linux は広く使用され、成功を収めていますが、それが使いやすいという意味ではありません。 Linux には 100 万行を超えるコードが含まれており、初心者にとっては慣れるまでに時間がかかるかもしれない、独特の「Linux 方式」で動作します。

したがって、この記事の目的は、Linux 組み込みオペレーティング システムのバージョンであるμClinux を使用した新しい設計プロジェクトの開始を支援することです。このガイドは 5 つのステップに分かれています。このガイドを説明するために、μClinux プロジェクトは STMicroelectronics の STM32F429 マイクロコントローラに実装されています。このマイクロコントローラは、最大周波数 180MHz の ARM Cortex-M4 コアを使用し、Emcraft の STM32F429 Discovery Linux Board Support Package (BSP) を使用します。

ステップ 1: Linux ツールとプロジェクトのレイアウト

すべての組み込みソフトウェアの設計は、適切なツールを選択することから始まります。

ツール チェーンは、相互に接続 (またはリンク) された一連のソフトウェア開発ツールです。これには、GNU Compiler Collection (GCC)、binutils (リンカー、アセンブラ、およびオブジェクト ファイル用のその他のツールのセット) などのツールが含まれます。開発ツール) および glibc (システム コールと基本関数を提供する C 関数ライブラリ)、場合によっては、コンパイラやデバッガなどの他のツールも含まれる場合があります。

組み込み開発に使用されるツール チェーンはクロス ツール チェーンであり、一般的にはクロス コンパイラとして知られています。

GNUBinutils は、組み込み Linux ツール チェーンの最初のコンポーネントです。 GNUbinutils には 2 つの重要なツールが含まれています:

●「as」アセンブラーは、アセンブリ コード (GCC によって生成された) をバイナリ コードに変換します

●「ld」、コネクタ、個別のターゲット コード セグメントをライブラリまたはフォーム実行可能ファイルに接続します

コンパイラは、ツール チェーンの 2 番目に重要なコンポーネントです。 Embedded Linux では GCC と呼ばれ、さまざまな種類のマイクロコントローラーとプロセッサー アーキテクチャをサポートします。

次はC関数ライブラリです。 Linux の従来の POSIX アプリケーション プログラミング インターフェイス (API) を実装しており、ユーザー空間アプリケーションの開発に使用できます。システムコールを通じてカーネルと連携し、高レベルのサービスを提供します。

エンジニアには、いくつかの C 関数ライブラリのオプションがあります:

●glibc は、オープン ソースの GNU プロジェクトによって提供される、利用可能な C 関数ライブラリです。このライブラリはフル機能を備え、移植性があり、Linux 標準に準拠しています。

#●Embedded GLIBC (EGLIBC) は、組み込みシステム向けに最適化された派生バージョンです。コードは合理化されており、クロスコンパイルとクロステストをサポートしており、ソース コードとバイナリ コードは GLIBC と互換性があります。

●uClibc は、フラッシュ スペースが限られている場合やメモリ フットプリントを最小限に抑える必要がある場合に使用できるもう 1 つの C 関数ライブラリです。

ターゲット マシン上で実行されているアプリケーションをデバッグする場合、クロス デバッガーが必要となるため、通常、デバッガーもツール チェーンの一部です。組み込み Linux の分野では、GDB が一般的に使用されるデバッガです。

上記のツールは非常に不可欠ですが、これらが単独で動作すると、Linux ソース コードをコンパイルして最終イメージ (イメージ) に統合するのに時間がかかりすぎます。幸いなことに、Buildroot は完全な組み込みシステムを構築するプロセスを自動化し、次のタスクの一部またはすべてを生成することでクロスコンパイルを簡素化します。

#クロスコンパイルツールチェーン

●ルートファイルシステム

●カーネルイメージ

#ブートイメージ

對嵌入式系統設計師來說,還可以方便地使用一種工具(utility)聚合工具,如BusyBox,這種工具將通常最需要的工具整合在一起。根據BusyBox的資訊頁面介紹,「它將許多常用UNIX工具的微型版本整合成一個小的可執行檔。它提供了對大多數你通常會在GNUfileutils和shellutils等工具中看到的工具的替代。BusyBox裡的工具通常比其全功能GNU對應版本的選擇少;但所包含選項所提供的預期功能和行為則與對應的GNU所提供的幾無差別。對任何小或嵌入式系統來說,BusyBox提供的環境都是相當完整的。」

最後一個重要工具是一款BSP,是為搭載了專案目標MCU或處理器的主機板專門做的。

BSP包含預先配置的工具,以及將作業系統載入到主機板的引導程式。它也為核心和裝置驅動器提供原始碼(見圖1)。

組み込み Linux プロジェクト開発のいくつかの手順

步驟2:引導序列、時脈系統、記憶體和序列介面

#典型的嵌入式Linux啟動順序執行如下:

1)引導程式韌體(範例專案裡的U-Boot)運行於目標MCU內建快閃記憶體(無需外部記憶體),並在上電/重設後,執行所有必需的初始化工作,包括設定串列埠和用於外部記憶體(RAM)存取的記憶體控制器。

2)U-Boot可將Linux映像從外部Flash轉移到外部RAM,並將控制交接到RAM中的核心入口點。可壓縮Linux映像檔以節省快閃記憶體空間,代價是在啟動時要付出解壓縮時間。

3)Linux進行開機並安裝基於RAM的檔案系統(initramfs)作為根檔案系統。在專案建置時,Initramfs被填入以所需的檔案和目錄,然後簡單地連結到核心。

4)在Linux核心下,執行/sbin/init。 /sbin/init程式依照/etc/inittab中設定檔的描述對系統進行初始化。

5)一旦初始化程序完成運行級執行和/sbin/init裡的命令,它會啟動一個登入程序。

6)殼初始化檔案/etc/profile的執行,標誌著啟動過程的完成。

透過啟用就地執行(ExecuteInPlace-XIP)可以大幅縮短啟動時間、提升整體效能,XIP是從快閃記憶體執行程式碼的方法。通常,Linux程式碼是從快閃記憶體載入到外部記憶體,然後從外部記憶體執行。透過從快閃記憶體執行,因不再需複製這一步,因此只需較少的記憶體,且只讀記憶體不再佔程式空間。

以上が組み込み Linux プロジェクト開発のいくつかの手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

VSCODEは拡張子をインストールできません VSCODEは拡張子をインストールできません Apr 15, 2025 pm 07:18 PM

VSコード拡張機能のインストールの理由は、ネットワークの不安定性、許可不足、システム互換性の問題、VSコードバージョンが古すぎる、ウイルス対策ソフトウェアまたはファイアウォール干渉です。ネットワーク接続、許可、ログファイル、およびコードの更新、セキュリティソフトウェアの無効化、およびコードまたはコンピューターの再起動を確認することにより、問題を徐々にトラブルシューティングと解決できます。

Apr 16, 2025 pm 07:39 PM

NotePadはJavaコードを直接実行することはできませんが、他のツールを使用することで実現できます。コマンドラインコンパイラ(Javac)を使用してByteCodeファイル(filename.class)を生成します。 Javaインタープリター(Java)を使用して、バイトコードを解釈し、コードを実行し、結果を出力します。

vscodeとは何ですか?vscodeとは何ですか? vscodeとは何ですか?vscodeとは何ですか? Apr 15, 2025 pm 06:45 PM

VSコードは、Microsoftが開発した無料のオープンソースクロスプラットフォームコードエディターと開発環境であるフルネームVisual Studioコードです。幅広いプログラミング言語をサポートし、構文の強調表示、コード自動完了、コードスニペット、および開発効率を向上させるスマートプロンプトを提供します。リッチな拡張エコシステムを通じて、ユーザーは、デバッガー、コードフォーマットツール、GIT統合など、特定のニーズや言語に拡張機能を追加できます。 VSコードには、コードのバグをすばやく見つけて解決するのに役立つ直感的なデバッガーも含まれています。

vscodeはMacに使用できますか vscodeはMacに使用できますか Apr 15, 2025 pm 07:36 PM

VSコードはMacで利用できます。強力な拡張機能、GIT統合、ターミナル、デバッガーがあり、豊富なセットアップオプションも提供しています。ただし、特に大規模なプロジェクトまたは非常に専門的な開発の場合、コードと機能的な制限がある場合があります。

vscodeの使用方法 vscodeの使用方法 Apr 15, 2025 pm 11:21 PM

Visual Studio Code(VSCODE)は、Microsoftが開発したクロスプラットフォーム、オープンソース、および無料のコードエディターです。軽量、スケーラビリティ、および幅広いプログラミング言語のサポートで知られています。 VSCODEをインストールするには、公式Webサイトにアクセスして、インストーラーをダウンロードして実行してください。 VSCODEを使用する場合、新しいプロジェクトを作成し、コードを編集し、コードをデバッグし、プロジェクトをナビゲートし、VSCODEを展開し、設定を管理できます。 VSCODEは、Windows、MacOS、Linuxで利用でき、複数のプログラミング言語をサポートし、マーケットプレイスを通じてさまざまな拡張機能を提供します。その利点には、軽量、スケーラビリティ、広範な言語サポート、豊富な機能とバージョンが含まれます

Linuxの主な目的は何ですか? Linuxの主な目的は何ですか? Apr 16, 2025 am 12:19 AM

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

GITの倉庫アドレスを確認する方法 GITの倉庫アドレスを確認する方法 Apr 17, 2025 pm 01:54 PM

gitリポジトリアドレスを表示するには、次の手順を実行します。1。コマンドラインを開き、リポジトリディレクトリに移動します。 2。「git remote -v」コマンドを実行します。 3.出力と対応するアドレスでリポジトリ名を表示します。

See all articles