14

私はソフトウェア開発者です。私は数年間、高級言語でプログラミングを行ってきました。

ハードウェアのプログラミングに最初の一歩を踏み出す方法を知りたいです。それほど複雑ではありませんが、普通の CE デバイスでしょうか? PCBをさまざまなコンポーネントと一緒に配置する必要はなく、小さなCPUをプログラムするだけだと仮定しますか?

どのくらい低レベルに行く必要がありますか? ASM? C? レジスタ操作?または、開発キットは現在非常に高レベルですか? Java は絵の中にさえありますか? ハードウェアのオブジェクト指向コーディング、それは夢ですか、それとも現実ですか? 実態調査が必要です。

また、チュートリアル形式で書かれた本やサイトでよりよく学ぶ傾向があります. シンプルなものからより複雑なものへと私を導いてくれるもの。推奨事項はありますか?今日入手可能な一般的なハードウェア (マイクロプロセッサ/マイクロコントローラ) を紹介してくれるものでしょうか?

どうもありがとうございました。

4

6 に答える 6

9

実際のプログラミングは大したことではありません。もどかしい、厄介な部分は、開発環境をセットアップし、ツールを機能させることです。ここまでできたら、半分終わりです。

USB が組み込まれており、選択した OS で動作する開発キット (「開発キット」) を購入することをお勧めします。それを機能させれば、半分は完了です。

知識が不足している場合は、プロセッサーの仕組みの基本を知ることも重要です。他のどのプログラミングよりもはるかに低いレベルでプログラミングすることになるため、基本はもう少し重要です。

于 2010-01-25T19:23:34.203 に答える
2

私は約 16 年間、趣味と職業の両方で C でコーディングしてきましたが、常にユーザーランド コード (つまり、カーネルやドライバーではなくプログラム) を対象としていました。私の仕事のほとんどは高水準言語に関係していました (私は Perl と Ruby のプログラミングを数多く行い、その間に Java、Python、およびシェル スクリプトを作成することもありました)。私は MS-DOS 向けに多くの開発を行いましたが (これはおそらく x86 マシンで行うのと同じくらいベアメタル プログラミングに近いものでした)、私の最後の仕事は Perl と Ruby on Rails の Web 開発に 5 年間関わっていました。

そうは言っても、私は現在組み込み Linux 開発のシニア エンジニアであり、 Blackfinプラットフォーム上のuClinux用のドライバー (カーネル モジュール内の従来のシンプルなマイクロプロセッサのエミュレーターを含む) を開発しています。ハードウェア関連の問題 (ピンのプルアップ/プルダウンがないために信号レベルが変動するなど) の経験不足が邪魔になることもありましたが、ほとんどの場合、非常に楽しくスリリングな体験でした。他の人が述べたように、ツールを理解することは不可欠です。uClinux の場合、それはGNU Toolchainを意味します。幸いなことに、FOSS テクノロジのバックグラウンドがあるため、私はすでに精通していました。

Blackfin はエントリーレベルのマイクロプロセッサとは言えません (特に、Linux 開発に影響を与えるMMUはありません) が、既に述べたように、必要なすべてのアクセサリを備えたBeagleboardを約 200 ドルで購入して、すぐに始めることができます。ほんの数日でそれをいじります。よりシンプルなものが必要な場合は、多くのArduinoオプションがありますが、実際の開発経験がある場合は、開発環境が少し制限されていることに気付くと思います (私は知っています)。

ツールに慣れてきたら、インサーキット エミュレーター(または ICE) にいくらかお金をかけたいと思うかもしれません。これらは通常、(ターゲット アーキテクチャと開発環境の両方の点で) プラットフォームに大きく依存しますが、ボタンを押した後に LED が点滅する通常の例以外の場合は強くお勧めします。

数か月後には、 Buildrootを使用してハッキング可能な顧客デバイス用のカスタム イメージを構築し、大いに楽しんでいることに気付くでしょう。私が言えることは、それは中毒性が高く、最近では特に費用がかからないということです。

于 2010-01-25T20:34:33.593 に答える
2

C の知識がある場合は、ツール チェーンの手順を理解してコードをダウンロードするだけです。

簡単に始められる場所 (安価なハードウェア/ソフトウェア) http://www.arduino.cc/en/Guide/HomePage

于 2010-01-25T19:23:18.727 に答える
0

また、 Microsoft Robotics Studioも検討する必要があります。これらはかなり多くのハードウェア ボード (CE を含む) をサポートしており、小さなロボットを簡単に起動して実行できます。そして、組み込みプログラミングを学ぶプロジェクトがさらにクールなのは何ですか?

これらはすべて Visual Studio (express) にうまく統合されており、開発キットには無料の Express エディションも付属しています。

于 2010-01-25T19:29:18.987 に答える
0

自分が何をしているのかを知りたければ、プロセッサのアセンブリ言語とプロセッサのアーキテクチャを理解する必要があります。

マイクロコントローラーで有能になるには、C を学ぶ必要があります。それを回避する方法はありません。

組み込みシステムには VM レベルの言語がいくつかあります。携帯電話で Java のメモリ不足の例外がときどき見られます (これは、VM レベルの組み込み言語について私に強い意見を与えるのにも役立ちます)。

ARM は、ハードウェア レベルの Java バイトコードをある程度サポートしています。

最善の策は、PIC や Atmel チップなどを手に入れて、それらを使ってハッキングを開始することです。

既存のハードウェアでそれを行いたい場合は、PC 用のハイパーバイザーを入手して、基本的なカーネルの作成を開始してください。

于 2010-01-25T19:46:30.113 に答える
0

ビーグルボードを入手してください。安価で、多くのユーザー (コミュニティ サポートが鍵となります)、多くの OS オプション。http://beagleboard.org/

于 2010-01-25T19:43:20.527 に答える