コメント
- 調子はどうですか?では、どのソリューションを検討しましたか? Arduino Uoを購入し、アセンブラーで開発する方法も探していました
- アセンブリ言語には89c51(8051)コントローラーを使用することをお勧めします
回答
Arduinoボードはアセンブリでプログラムできます。必要なのは、ボードに書き込むためのICSPケーブル(インサーキットシリアルプログラマー)とAVRツールチェーン(ATMELから無料)だけです。次に、オンボードデバッグの利点を活用できます。
提案したように、ブレッドボードにATMELチップをたたいて、町に行くことができます。
参照したキットは素晴らしい出発点。チップをボードから取り出して、自分のブレッドボードに貼り付けることができます(電力が正しく調整されていて、クロックを考慮している場合)。
編集:アセンブリプログラムをロードするのにICSPは必要ないようです。詳細については以下のコメントを参照してください。
コメント
- Ya I ' d prollyは固執したい今は自分のブレッドボードに載せないでください笑私はそれほど素晴らしいとは言えません回路。
- @ Sauron-ハァッ-どちらの方法でもいいです。夢中になれるものは何でも!良い点は、個々のチップがかなり安いことです(数ドル程度)。
- この答えは実質的に誤解を招く可能性があります: ISPは必要ありません。Arduinoで使用されるブートローダーはArduinoプロジェクトよりも前のものであり、ロードされるファイルがコンパイラまたはアセンブラのどちらで作成されたものかはまったくわかりません。' Arduinoのブートローダーという誤解を永続させるハードウェアを対象とするプログラムの作成方法とは何の関係もありません。これは、任意の起源のコードをチップに取り込むための便利なメカニズムです。
- @ ChrisStratton-フィードバックに感謝します。 'フィードバックを組み込むために回答を更新しました。
回答
Arduino IDEは、アセンブリコードに対応するように「修正」できます。 wikiは次のとおりです: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods
コメント
- URLが壊れているようです
回答
私が知る限りCの代わりにアセンブリを使用できない可能性があるArduinoブートローダーについては特に何もありません。ArduinoIDEでは独自の.hexファイルのアップロードが困難になる場合がありますが、Arduinoブートローダーのように見えます STK500と互換性があるので、avrdudeで使用できるはずです。
コメント
- はい、実際には、ArduinoIDE自体です。 avrdudeを使用してアップロードを実行します。
回答
まったく難しくありません。
http://www.dwelch.com/arduino/
選択するには、私のページのser.cを確認する必要があります。どのカード。デフォルトで異なるシリアルポート速度を使用し、プログラミングモードに入るために異なるリセットスキームを使用するものもあります。 arometファームウェアを見ると、avrプログラミングコマンドが実際にサポートされていることはほとんどありません。とにかく本当にそれらを必要としないでください。
回答
arduinoはGCC-AVRインラインアセンブラを使用してアセンブリでプログラムできますこのリンクをチェックしてくださいGCC-AVRインラインアセンブラクックブック
http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf
回答
Arduinoボード(とにかくUnoとDuemilanove)には、AVRStudioを介してAtmelプログラマーとデバッガーによってサポートされる標準のAVRプログラミングコネクターがあります。 StudioはアセンブラとCをサポートします。適切なプログラマーはAVRISP MkIIであり、AVRドラゴンはプログラミングとデバッグの両方を提供します。私は後者を手に入れます、それは50ドルでより高価です、しかしデバッグ機能はかけがえのないものです。ブレッドボードまたはPCBに接続された標準のAVRチップ(Arduinoではない)でこれらのツールを使用することもできます。
コメント
- 'は確かにICSPヘッダーがありますが、'は使用する必要はありません。ブートローダーは、どのようなプログラム作成手段でも同様に機能します。実際、Arduino IDEでさえ、既存のコマンドラインユーティリティプログラム
avrdude
に依存してブートローダーを操作します。
回答
Arduinoは、ハードウェアとIDEの2つの部分で構成されています。 IDEは主に(完全ではないにしても)CとC ++に制限します(開発者がProcessing / Javaに少し似せるためにいくつかの構文上の糖衣構文を使用しています)。 IDEが標準のスケッチ(.pde)と同じディレクトリにある.sまたは.Sファイルを認識する可能性はありますが、私はそれに帽子をかぶることはしません。
何もありません。ハードウェアについては特別です。µCの新人が喜ぶ、気の利いた機能がたくさんある、素敵でフレンドリーなボードですが、ISPヘッダーを介してAVRをプログラムするだけの場合は、それも可能です。 Atmel AVRISP mkII のようなもの、またはArduinoボードの2x3行コネクタで動作する他のプログラマーが必要です。互換性のあるものを探してください。アプリケーションのアップロードに使用するavrdudeプログラム。 AdafruitのUSBtinyISPには近づかないでください。運が悪かったので、リンクしたAtmelをMouserから40ドル未満で購入しました。
コメント
- 奇妙なことに、私は' Atmel IDEとusbtinyで良い経験しかありませんでした。また、buspirateは多くの異なるプラットフォームのISPとしても機能し、すばらしい小さなツールです
- ' ICSPアダプターは必要ありません。ブートローダーは、プログラムの作成者としてのあらゆる手段で正常に機能します。
回答
Aruduinoはアセンブリで絶対にプログラムできます。そして、それを行うのにICSPケーブルさえ必要ありません!
わかりました、公平に言えば、これはゼロから純粋なアセンブリでプログラミングすることと同じではありません。 / p>
ただし、Cでインラインアセンブリを使用できます。つまり、インラインアセンブリを含むArduinoにコードをロードして、実行することができます。 TVOutライブラリを検討してください。 。これにより、ArduinoはNTSC / PALをTVに出力できます。
このライブラリは非常に時間に敏感です(TVに出力するため、各スキャンラインは右側に書き込む必要があります)。時間。)したがって、インラインアセンブリを使用してプロセスを高速化します。ライブラリからこのファイルの行89 を見ると、作成者は
アセンブリマクロ。
今、彼はデフォルトのArduino IDEを使用してそれらを書いていなかったと思います。しかし、このライブラリは彼のインラインを必要とします。誰でもインターフェイスを介してインポート、コンパイル、実行できるasmコード。
幸運を祈ります!
Comm ents
- 実際には、アセンブリソースファイルも実行できます。ArduinoIDEをスキップして、avr-gccなどのバックエンドツール(またはその他のツール)を操作するだけです。アセンブラとして使用)およびavrdudeを直接使用します。
回答
ホストプラットフォームとしてLinuxを使用していますが、これらのツールはWindowsの種類でも利用できると思います。
16進コードへのアセンブリには" avra "を使用しますコンバーター(コンパイラー)
次に、USBTinyプログラマーと" avrdude "プログラミングツールを使用してチップをプログラムします。
これらのツールはどちらもオープンソースだと思います。