Arduino with Assembly?


12

マイクロプロセッシングへの私のベンチャーのために、私は利用可能な膨大なリソースのためにAtmel AVRと行くことに決めました。また、Arduinoにも多くの機能があるようです。言うまでもなく、スターターキットは「自分のレベルで」のようです

問題は、最初にアセンブリで学習し、次にC / C ++またはw / e Arduinoを使用したいのですが、ArduinoがAVRアセンブリを受け取らないと聞いたことですか?これは本当ですか?それを回避する方法はありますか?

ありがとう

編集:ATMEL STK500を使用しますが、最初のタイマーは非常に複雑に見えますか?8ビットのAVRを入手してブレッドボードに載せて実験することができない理由はありますか?(私はそれらをそのようにインターフェースする方法を理解する必要があると思います....)

edit2:これは私が考えていたことです

http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193


調子はどうだい?では、どのソリューションを検討しましたか?Arduino Uoを購入し、アセンブラーでも開発する方法を探していました
-sll

回答:


5

Arduinoボードはアセンブリでプログラムできます。必要なのは、ボードに書き込むためのICSPケーブル(In Circuit Serial Programmer)ケーブルとAVRツールチェーン(ATMELなし)です。その後、オンボードデバッグの利点が得られます。

提案したように、ブレッドボードにATMELチップをたたいて、町に行くことができます。

参照したキットは、出発点として最適です。チップをボードから取り出して、独自のブレッドボードに貼り付けることができます(電源が正しく調整されていて、クロックを考慮している場合)。


ええ、私は自分のブレッドボードにそれを置いていないことに固執したいです

@サウロン-ハハ-どちらの方法も良い。あなたが夢中になるものは何でも!良い点は、個々のチップがかなり安いことです(数ドル程度)。
RQDQ


2

私の知る限りではそこにそれは難しいあなたがの.hexファイルを所有アップロードすることがあり代わりにC.ザ・ArduinoのIDEの組み立て使用してからあなたを防ぐことができArduinoのブートローダについて何も具体的なことが、Arduinoのブートローダは次のように見えるはずですSTK500互換性がありますので、 avrdudeで使用できるはずです。


はい、実際には、Arduino IDE自体はavrdudeを使用してアップロードを実行します。
クリスストラットン

1

Arduinoボード(とにかくUnoとDuemilanove)には、AVR Studioを介してAtmelプログラマーとデバッガーによってサポートされる標準AVRプログラミングコネクターがあります。StudioはアセンブラーとCをサポートします。適切なプログラマーはAVRISP MkIIです。AVRDragonはプログラミングとデバッグの両方を提供します。私は後者を手に入れます、それは50ドルでより高価ですが、デバッグ機能は非常に貴重です。また、ブレッドボードまたはPCBに接続された標準のAVRチップ(Arduinoではない)でこれらのツールを使用することもできます。


1

Arduinoは、ハードウェアとIDEの2つの部分で構成されています。IDEは、主に(完全ではないにしても)CとC ++に制限します(開発者が処理/ Javaに少し似たものにするために開発者が投入した構文上の砂糖を使用)。IDEは、標準のスケッチ(.pde)と同じディレクトリにある.sまたは.Sファイルを認識する可能性がありますが、私はそれを試してみません。

ハードウェアに関して特別なことは何もありません。これは、µC初心者が好む多くの気の利いた機能を備えた、すてきでフレンドリーなボードですが、ISPヘッダーを介してAVRをプログラムしたいだけなら、それもできます。Atmel AVRISP mkIIのようなもの、またはArduinoボード上の2x3行コネクターで動作する他のプログラマーが必要です。アプリケーションのアップロードに使用するavrdudeプログラムと互換性のあるものを探します。AdafruitのUSBtinyISPに近づかないでください。私はそれで恐ろしい運があり、私がリンクしたAtmelをMouserから40ドル以下で購入することになりました。


1
奇妙なことに、私はAtmel IDEとusbtinyで良い経験しかありませんでした。また、buspirateは多くの異なるプラットフォーム、素晴らしい小さなツールのispとしても倍増します
-crasic

1

まったく難しくありません。

http://www.dwelch.com/arduino/

私のページでser.cを見て、どのカードを選ぶかを見る必要があります。いくつかはデフォルトで異なるシリアルポート速度を使用し、異なるリセットスキームを使用してプログラミングモードに入ります。arduinoファームウェアを見ると、avrプログラミングコマンドはほとんどサポートされていないことがわかります。とにかくそれらを本当に必要としないでください。


1

Aruduinoは絶対にアセンブリでプログラムできます。そして、あなたはそれをするためにICSPケーブルさえ必要としません!

さて、公平に言うと、これはゼロから純粋なアセンブリでプログラミングするのと同じではありません

しかし、Cでアセンブリをインライン化することはできます。つまり、インラインアセンブリを持つArduinoにコードをロードし、実行することができます。ArduinoがNTSC / PALをテレビに出力できるようにするTVOutライブラリを検討してください。

このライブラリは非常に時間に敏感です(テレビに出力するため、各スキャンラインは適切なタイミングで書き込む必要があります)。したがって、インラインアセンブリを使用してプロセスを高速化します。ライブラリのこのファイルの89行目を見ると、著者は自分が書いたアセンブリマクロのいくつかを使用しています

今。彼はデフォルトのArduino IDEを使用してそれらを書いていないのではないかと思う。しかし、このライブラリは、インラインasmコードを必要とします。このコードは、インターフェースを介して誰でもインポート、コンパイル、実行できます。

幸運を祈ります!


2
実際には、アセンブリソースファイルも実行できます。ArduinoIDEをスキップして、avr-gcc(またはアセンブラとして使用するもの)やavrdudeなどのバックエンドツールと直接やり取りするだけです。
クリスストラットン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.