msp430に関しては、それは優れたアーキテクチャであり、mspgcc、mspgcc4、llvmといったかなり優れたツールがあります。パッチを適用しないbinutils。あなたはその価格で5ドル未満のランチパッドをいくつか購入することができます(最終的には何かをブリックするか、ショートさせて溶かし、この価格でスペアを用意します)...
ツールをダウンロードします。すべて無料で、数行のコードを記述し、リンク方法を学び、バイナリの大きさを確認し、埋め込みの感触を確認し、コード行をROMサイズに変換します。
プロはそれをどのように行うのですか?想像できるほぼすべての方法:
一部の企業では、権限が高まっているため、辞める以外にあなたにできることはありません。そして、そのプラットフォームが選ばれた理由をあなたは決して知らないかもしれません。
請負業者/お気に入りの顧客がプラットフォームを指示する場合もあれば、教育/交渉できる場合もありますが、できない場合もあります。
一部の人々は、何でも好きな、未知への恐れを持っています。一部の人々が1つのブランドの車しか購入しないのと同じ理由で、私の父がその前に彼の父が購入したので、それが全体の理由である可能性があります。
一部の人々はツールに焦点を当てています。ここにもブランドの忠実な人々がいて、好きなコンパイラ会社と彼らがサポートするあらゆるターゲット、または好きなオープンソースツールとそれがサポートするものに限定されています。お気に入りの組み込みオペレーティングシステムとサポートするターゲットへの制限。
場合によってはツールについてですが、別の方法では、ベンダーとの年間サポート契約(たとえば、arm、xilinx、またはMotorolaなど)に多額の投資を行ってきた可能性があり、それらのサポートが気に入った可能性があります変更したくない、またはあなたが知っている悪魔はあなたがしない悪魔よりも優れています。または、社内の他の5つのアクティブなプロジェクトがこれを使用しており、すでにサポート契約を結んでおり、毎年その代金を支払うため、これらのベンダーソリューションのいずれかを選択する必要がある場合もあります。
時にはそれはミリペニーを救うことです。このパーツはそのパーツより1.5%安く、このパーツで動作します。NREを気にせず、製造コストの削減について考えます。
時にはそれはネガについてです。あるベンダーが何らかの方法で会社を台無しにした可能性があります。アドバタイズされた部品の供給を満たしていないため、製品の遅延またはキャンセルが発生している。餌とスイッチの詐欺(ソフトウェアの$ 50,000の料金には、ライセンスのロックを解除するために必要なドングルの$ 1200の料金は含まれていませんでした。これは追加のコストアイテムです。ああ、それはフローティングライセンスのユーザーあたりの料金です)。プログラマーのリファレンスマニュアルまたはリファレンスデザインガイドを参照するためにNDAに署名すると、エンジニアリングがどれほどひどいかがわかり、すべての製品を一生ブラックリストに載せることができます。恐ろしい技術サポートのある過去の歴史。理由がいくつもあると、営業担当者が正面玄関に入るのを決して許可しないか、二度と彼らのウェブサイトを見ることができなくなります。
時々、それはパフォーマンスやインターフェースなどに関係しています。ワイヤードオアでプルアップが必要なインターフェースがある場合の例として、部品あたり$ 3のマイクロコントローラーブランドXYZには、使用できるI / Oピンのセットがあります。他の外部ハードウェアが必要ない場合、ABCブランドには3ドルのパーツがあり、最低でも動作させるために外部トランジスタと抵抗が必要になります。あなたのmsp430の例は、それが電力消費についてであると言う場合、パートAはユーザーが1つのAAAバッテリーを使用して数か月だけ実行することを必要とし、パートBは2つのAAAバッテリーを必要とし、数週間実行される可能性があります。
すべての最もまれなケースは、実際にエンジニアリングを行い、すべてのベンダーを調査し、消費電力の計算を行い、製品の単位あたりの価格を計算し、ROMの大きさをどれだけ必要とし、チップを実行する頻度を、接着ロジック、オンとオン。通常、誰か(ボス/顧客/シニアエンジニア)は、長年の経験を積み、ヒップ(多くの場合、上記の1つ以上を使用)から撮影してパス(多くの場合、スケジュールとコストを大幅に節約できる優れたパス)を選択します。エンジニアリングは、選択されたプラットフォームを微調整するために一度行われます。
私の個人的な推奨は柔軟であることです。何らかの形またはファッションのほとんどのマイクロコントローラーブランド/ファミリは、50ドル未満で評価ボードに搭載できます。Sparkfun、olimex、またはベンダーからの直接(msp430またはstellarisのtiなど)。それぞれを1つ以上試して、共通点と相違点、ツール、ローダー、ブロック解除の難しさなどの感触をつかんでください。これから少なくとも2つのことを得ることができます。1つは、パスを強制されたときです。高いところや顧客の上から実行することができます。次に、プラットフォームを選択する番になると、そこにあるものとないものについてよりよく教育され、問題に基づいて適切な(ロードされた単語)プラットフォームを選択できます。解決する。
外出してハードウェアにそのようなお金を費やすことができない場合でも、ほとんどの場合、ダウンロードできるツール(無料)があります。マイクロチップのような場合は、Cコンパイラ(以前はハイテクでした)を入手できますが、購読する必要があります(メールアドレスをあきらめる)。gccが好きか嫌いか、将来的にはデスクトップか組み込みかを問わず、手を汚してクロスコンパイラとして使用する方法を学びます。llvmも試してみてください。しばらくすると、gccに深刻な競争が発生します。とにかく、いくつかのエミュレータを書き込んだり見つけたりします。mameにはたくさんあり、gdbにはいくつかあります。githubにあるthumbulatorと呼ばれるもの、ARMサムモードのみ、thumb2をサポートしていないことを除いてcortex-m3と同じものを書きました(まだかなり学ぶことができます)また、ハードウェアのみに切り替える前に、両方でプログラムを実行します。私はmsp430エミュレーターを作成しましたが、少し行き詰まりました。命令セットは非常に小さいため、作業の大部分は夕方またはおそらく土曜日のプロジェクトです。同じことはPIC、長い午後にもあてはまり、あなたは組み込みを練習するための命令セットシミュレータを持っています。他に何もない場合は、プログラムを作成してコンパイルし、リンクして、それを行う方法とプログラムがどれほど大きくなるか、プログラムを調整してよりタイトなコードを生成する方法などの感触をつかむことができます。
Cとアセンブラーに関しては、一部の命令セットはCとの親和性が高く、そうでないものもあります。一部のコンパイラーは中程度であり、一部は本当に悪くてほんのわずかです(そして、通常、使用するのに1回または1年に数千ドルかかります)。どこでもどこでもパフォーマンスをプッシュしたいのであれば、高級言語(Cとだけしましょう)とアセンブラーの混合が必要になる場合があります。つまり、スキルはアプリケーション全体をアセンブラーで作成するのではなく、タイミング/パフォーマンスを満たさない原因となっているコードを特定し、C、コンパイラーオプション、適切なコンパイラーの選択、またはアセンブラーの作成を通じてそれを解決する方法を理解することです。
組み込みの場合のように、それについて他に読める知識がない場合は、頻繁に逆アセンブルすることをお勧めします(パフォーマンスの問題がどこにあるのかを把握しながら)。多くのプラットフォームでは、いずれにしても、起動コードにいくつかのアセンブラが必要または望まれます。
ユニットあたりの価格を10〜20%節約し、より安価な/遅いマイクロコントローラーまたは発振器、または64KBフラッシュパーツの代わりに32Kbフラッシュパーツを購入し、開発コストを販売量で賄うことができる場合、およびおそらく、アセンブラーで高速に、低電力で、低コストで、幸せな顧客にすべてを書くためにあなたが選択するかもしれない他のものの長いリスト。
これまでの背景にもよりますが、すべてのアセンブラーでの書き込み、マイクロコントローラーの組み込み、回路図の読み取り、オープンコレクター、トライステート、プッシュプル、pwm、adc、dac、およびa他の用語の長いリストとそれらの使用方法。i2c、spi、mdio、dallas one wireなどのビットバンギング。スコープをソフトウェアデバッガとして使用。スコープは今日のために物事を強調することができますが(追加コストの項目)、強調表示なしでi2cとspiと他のいくつかのプロトコルを目撃できるはずです。
また、プレイするプラットフォームごとに、他の誰かのサンドボックス(たとえば、Arduino ide /プログラミング環境)から抜け出すことをお勧めします。プロセッサーをリセットからmain()プログラムに取り込むブートコードを記述します。シェルフローダーであっても、独自のローダーの書き込みが必要になるまでフラッシュをロード/プログラムする方法をできるだけ理解します。そこ。それはすべて個人的な教育に関するものであり、より多くのことを理解し、あなたのバックポケットから引き出し、より多くのコントロールを使用して、あなたのキャリアをコントロールし、給与の数字の終わりのゼロを増やすことができます。
何をするにしても、絶対にしないでください。デスクトップで最初のアセンブラとしてx86を学び、他のほとんどすべてを選択して、ARM、THUMB、MSP430、PIC、AVR、6502、8051でさえもクロスコンパイルしてシミュレートしてください。x86は恐ろしい命令ですセットとその結果、マイクロコード化されているのではなく、マルチコアで、さまざまな方法でモーフィングおよび整形されています。x86を高水準言語とかさばるオペレーティングシステムに保ちます。テキストエディターやコンパイラーに使用して、他のものをターゲットにしてください。
長い回答で申し訳ありません...それが役に立てば幸いです。