1

プロジェクトにPICマイクロコントローラーを使用していました。次に、ARM ベースのコントローラーに移行したいと思います。Linux を使用して (C を使用して) ARM を起動したいと考えています。しかし、Linux を使い始める方法がわかりません。どのコンパイラが最適か、私が勉強しなければならないすべてのことは、多くの混乱のようです。それについて私を助けてもらえますか?私のプロジェクトには通常、UART、IIC、LCD などが含まれます。RTOS は使用していません。皆さん、私を助けてくれますか?

下手な英語でごめんなさい

4

5 に答える 5

1

Linux のような重い OS をデバイスに搭載すると、それが提供するハードウェアからの抽象化のレベルにより、チップが何であるかはほとんど無関係になります。特にARMについて何かを学びたい場合、Linuxを使用することはまさにそれを回避する方法です!

さらに、PIC から ARM + Linux へのジャンプは非常に大きなものです。Linux は、4Mb 未満の RAM と、かなり多くの不揮発性ストレージでベッドから出ることはありません。これは最低限のことです。ARM チップは広範囲をカバーしており、ローエンドの部品は Linux をサポートすることさえできません。Linux を価値のあるものにするには、MMU をサポートする ARM パーツが必要です。これには、ARM7 および Cortex-M パーツの広い範囲が含まれていません。

非常に小さなフットプリントで効率的な (そしてハード リアルタイムの) スケジューリングと IPC を実行できる、ARM 用のより小さなオペレーティング システムがたくさんあります。それらは、FreeRTOS などの単純なスケジューリング カーネルから、eCOS などの標準デバイス サポートとネットワーキングを備えたより完全なオペレーティング システムにまで及びます。単純なスケジューラを使用する場合でも、ネットワーク、ファイルシステム、USB などをサポートするために利用できるライブラリがたくさんあります。

コンパイラに関するあなたの質問に対する答えは、ほぼ間違いなく GCC です。これは、Linux が構築されているコンパイラです。カーネル自体をビルドするにはクロスコンパイラが必要ですが、十分なリソースを備えた ARM プラットフォームがあれば、Linux をその上で実行すると、ターゲットはコンパイラをネイティブにホストできます。

私のアドバイスに反して Linux on ARM を本当に使いたいのであれば、それを行うための最も低コストで労力の少ない方法は、おそらく Raspberry Pi を使用することです。これは、箱から出してすぐに Linux を実行できる ARM11 ベースのボードであり、ますます広くサポートされており、900MHz までオーバークロックできます。

于 2013-01-16T23:07:01.450 に答える
0

ARM Linux コンパイラとビルド ツールチェーンは、多くのベンダーから提供されています。以下は、私が知っているあなたのオプションです:

1.製品DS-5の形でARM自身。

2.Mentor Graphics が取得した Codesourcery。ARM Linux 用の codesourcery ツールチェーンを入手してインストールする手順については、こちらを参照してください

3.最初にARM(C、アセンブリ)を使用してプログラミングを開始するには、ARM LinuxツールチェーンのこのWindows-Cygwinバージョンが非常に役立ちます. ここに。これらは、Windows の Cygwin (A Posix シェル層) で動作するビルド済みの実行可能ファイルです。

4. 別のオプションは、選択した ARM ターゲット用に Linux で gcc/g++ ツールチェーンをクロス コンパイルすることです。検索とウェブには、それがどのように行われるかに関する情報があります。しかし、これは少し複雑で、時間のかかるプロセスになる可能性があります。

ARM'ingをお楽しみください。

于 2013-01-24T11:32:49.930 に答える
0

Beagle Bone 開発ボードを使用して試すこともできます。まず、UART I2C などの機能がほとんどなく、ハードウェア用のデバイス ドライバー モジュールの開発を試すこともできます。

于 2013-01-27T10:03:08.577 に答える
-1

まず、アセンブリ言語を本当にプログラミングする必要があるかどうかを自問する必要があります。最新のコンパイラのほとんどは、最適化されたコードの生成に関しては非常に優れています。

次に、本当に必要であると判断した場合は、インライン アセンブラーを使用して作業を簡単にし、この wikipediaの記事に示されているように、コンパイラーにグルー コードを記述させることができます。

次に、使用するコンパイラ: 無料のコンパイラの場合、実際にはgcc またはclangの 2 つの選択肢しかありません。

5年前に私が最後に試したとき、当時のgccよりも約30%高速なコードを生成したarmからの非フリーツールチェーンもあります。それ以来、私はそれを使用していません。このコンパイラの最新バージョンは、ここにあります。

スタンドアロンのアセンブラー コードを.sファイルに記述することもできます。gcc と clang はどちらも、またはファイルをコンパイル.sする.oのと同じ方法でコンパイルできます。.c.cpp

于 2013-01-16T08:14:38.577 に答える