私の会社は、アセンブリ コードのマイクロコントローラーから C に移行しています。マイクロチップ、アトメル、レナサスなどを検討しています。アル。Cコードを使用する将来のプロジェクトのために。エンジニアが C に慣れるための適切なトレーニング リソースはありますか? セミナー、インストラクター、クラスなど。エンジニアの経験レベルは、トレーニングを受けていないものからある程度の知識があるものまでさまざまです。
11 に答える
80年代へようこそ。:)古典的なK&R Cの本か、私のお気に入りのC:Harbinson&Steelによるリファレンスマニュアルを見つけたら、それから始めましょう。私はPICを扱っていますが、PICプログラミングに関する役立つ本がいくつかあります。私はすでにPCの使用からCに精通しており、その点で有用だとは思いませんでした。
Cを使用すると、アセンブリに近づけることができ、ほとんどのコンパイラにインラインで含めることができるため、他の高級言語と同じようにアセンブラに近づきます。あなたは幸せで、家にいるのはかなり早いはずだと思います。
数十年先に進むことに興味がある場合;>)マイクロチップCコンパイラを検討することをお勧めします。これについてはすぐに調べます。C/C++の実用的なステートチャートに関する優れた本があります。
良いニュースは、エンジニアがアセンブリのバックグラウンドを持っている場合、ポインタや配列などの「C」言語の概念のいくつかを理解するのは難しくない(そしてうまくいけば習得する)ことです。
組み込みCトレーニングに関する具体的な質問に関して、Netrinoには、CおよびC ++での組み込みコードの記述を含む、組み込みトレーニングに関する多数のコースがあります。
また、組み込みシステム会議(数週間前にボストンで開催されたばかりで、次の会議は来年の春にシリコンバレーで開催されると思います)は、組み込み開発とさまざまな言語に関するコースで常にいっぱいです。しかし、おそらく6か月待つ余裕はありません。
あなたのスタッフがより「本の学習者」タイプであるならば、これらの本は興味があるかもしれません:
それはあなたに少しの間噛むのに十分なはずです。
なぜ16ビットに言及するのですか?
8 ビットが 20 世紀らしいと思っているからだとしたら、その通りです。しかし、16 ビットも同様です。今日の 32 ビット コントローラ (特に ARM) は、16 ビット コントローラよりも強力で、多くの場合安価です。一部の 16 ビッターは旧式のプロセスを使用し、フィーチャ サイズが大きく、ダイが大きくなるため、安価です。
実際、一部の 8 ビット コントローラーは、16 ビット コントローラーよりも寿命が長いと思います。16 ビットまたは 32 ビットのコントローラーに対する前者の利点は、サイズです。ARM コントローラを 2.9x1.3 mm SOT23 パッケージに入れる方法はありません。また、小型の 8 ビット コントローラでも、最小の ARM よりも安価です。
私にとって 16 ビット コントローラを使用する唯一の理由はインストールされたコードですが、あなたが「検討中」のブランドについて言及しているので、現時点ではそれらを使用していないと思います。
ARMを検討してみます。ARM7TDMI は安定しており、複数のサプライヤから多数の構成で入手できます。NXP LPC2000をお勧めします。約 1.50 米ドルから始まり、32 ビット コントローラーとしては悪くありません。
エンジニアが C に慣れるための適切なトレーニング リソースはありますか?
手始めに、 Bruce Eckel の「Thinking in C」マルチメディア コース (ダウンロード サイズは約 100 メガバイトで、コース自体はフラッシュ ファイルです)によって、プログラミング言語の C ファミリーの非常に優れた完全な紹介が無料で提供されています。 .
手始めに、Microchip の MPLAB と C コンパイラの「Student」バージョンをお勧めします。
C コンパイラは、有効期限後、最適化なしで実行されます。
MPLAB には、プログラムを実行するためのシミュレータが組み込まれています。出力ピンをビット操作して、物事の動きを確認できます。
msp430 は、C 向けの最高のマイクロプロセッサの 1 つです。しかし、最善の策は ARM を使用することです。残りの競争はすぐになくなります。Microchip は競合するために 32 ビット コアを手に入れましたが、最終的には競合他社になると思います。32 ビットの ARM が使い古された 8 ビットのマイクロプロセッサ (PIC、8051、z80 など) の価格に匹敵し、打ち負かされているため、msp を除いて、32 ビットのコアより下のもので停止することは避ける必要があります。
これは最高でも最も効率的なコンパイラーでもありませんが、価格は適切であり、gcc ほど多くのサポートを提供するコンパイラーは他にありません。多くのプラットフォーム用にビルド済みの gcc をビルドまたはダウンロードするのは比較的簡単です。メーカーの IDE とツールを必要とするものに夢中になることは避けたいと思います。これらのツールは問題なく、場合によってはマイクロを使い始める必要がありますが、長期的には、代替手段の長所と短所を調べたいと思うかもしれません.
Cの学習に関しては、アセンブラを含む他のどの言語よりもアセンブラを知っていれば、単なる構文です。必要なものはすべて、Google を使用してオンラインで見つけることができると確信しています。評価ボードとマイクロ (stellaris にはいくつかの優れた機能があります) を選択したら、まずサンプル プログラムを調べてから、Google を使用して他のサンプル プログラムを見つけ、そこから進みます。特にマイクロ コントローラーの場合は、一般的に、どの言語の奇抜な機能も避けて、単純で基本的なもの、つまりどのプログラミング言語でも同じものに固執する必要があります。あなたが経験するコンパイラ、特にマイクロ向けに構築されたコンパイラは、gcc、microsoft、borland などのコーナーケースを処理しません。これにより、コードを他の micros や他の言語に移植できるようになります (ただし、asm と C より上のものは避けますが、特にマイクロの場合)。本が必要な場合は、K&R など、代わりに使用されているものを入手してください。K&R C は、初版本からそのまま出てきたものであり、実際にはどこにもコンパイルされないことに注意してください。しかし、それは基本を守り、言語の問題領域からあなたを遠ざけます.
Linux デバイス ドライバーは非常に高レベルです (ほぼアプリケーション レベルで、コードの大部分は「金属」とは何の関係もありません)。マイクロで Linux を実行するつもりはありません。ARM マイクロでさえもです。オペレーティング システム、特に Linux と Windows をどうしても避けたい、オペレーティング システム以外の C プログラミングを学びたい。WINARM の例を見てください。(これには RTOS が含まれます)。
16ビットのマイクロチップの写真には、
http://www.amazon.com/Programming-16-Bit-PIC-Microcontrollers-Technology/dp/0750682922
IIRC はまあまあでしたが、チップごとに 1 つのことを行うことに重点を置いています。私たちのアプリは多くの I/O を多重化しているため、この本の例/ケーススタディ (排他的な使用を想定) を実践するのは困難でした。
このアーキテクチャを使い始めたとき、簡単に作成できるサンプル ボード (Microchip 製、50 ドルから 100 ドルの範囲) があると、特にサンプル ボードとほぼ同じバリアントをターゲットにする場合に非常に役立ちました。
これは、サンプル ボード上で実行することにより、問題がハードウェア関連なのかソフトウェア関連なのかを簡単にチェックできるためです。
英国の Feabhas や米国のNetrinoなど、組み込みシステム向けの C 教育を専門とする企業があります。ウェブを見回してください。
他の投稿で言及されているプロセッサに加えて、ST の STM32 ファミリも一見の価値があります。それらは 32 ビットで、非常に費用対効果が高く、多種多様なパッケージで提供されます。
ST は、 STM32 Circleのような開発用ハードウェアを考案して、人々が自社製品をすぐに使い始められるように真剣に取り組んでいるようです。
特にあなたが言及したアーキテクチャについては、Cプログラミングの学習に関する本がたくさんあります。「マイクロコントローラ」を検索して、Amazon をチェックしてください。
また、Microchip には、特定のコンパイラとチップに関するセミナー/クラスが多数あります。これらは通常安価であり、米国中にいくつかのトレーニング センターがあります。多くのエンジニアがトレーニングを受ける必要があるため、マイクロチップ社に直接連絡して、社内トレーニングの費用を確認することを検討してください。
-アダム
最初に思い浮かぶのは、Linux デバイス ドライバーの作成に関するドキュメントです。これはあなたが興味を持っていることと大まかに関連していますが、16 ビット デバイスのコーディングについては、ドライバー プログラミングに関する O'Reilly の本で説明されています。一般に、少なくとも多くの有用なコーディング スタイル規則が存在するはずです。