• ベストアンサー

ATtiny2313でプログラミングしてコンパイルしてできるアセンブラを編集できる?

アトメルのマイコン ATtiny2313でC言語プログラミングをして、コンパイルした際にlssファイルという、C言語プログラムをどうやってアセンブラコードになおしたかを確認できるファイルが出力されるのですが、この中に書かれているアセンブラコードを編集して再コンパイルすればこのコードの編集がHEX実行ファイルに反映されるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • goosyu
  • ベストアンサー率58% (36/62)
回答No.1

 ご存知のとおり,lssファイルはC言語ソースをコンパイルした結果がアセンブラコードとしてどのように生成されたか確認する為のものです。この為,lssファイルを編集してもCコンパイラは受け付けません。  この為,再コンパイルしてもコードの編集がHEXファイルに反映されません。  また,アセンブラにlssファイルを渡してもアセンブラに不要な情報を含んでいるので失敗します。アセンブラコードを生成するためにはコンパイラのオプションで”/S”を付加することで実現できますが,それをコンパイルまたはアセンブルできるかは未確認です。

関連するQ&A

  • ATTiny2313のプログラミングについて

    AVRマイコンを始めたばかりの初心者です。AVRStudioを使ってプログラミングをしています。 私は今、ATTiny2313を使って、タクトスイッチを押すとドレミファ……と各スイッチごとに1音でるピアノみたいなものを作っているのですが。 「ド(低音)レミファソラ」まではマイコンにプログラムを書き込めるのに、全く同じように「シド(高音)」のプログラム(図でいうと緑色の字の部分)を付け加えると、Buildはできるんですがマイコンに書き込もうとすると、 「The contents of the HEX file does not fit in the selected device」 と表示され、プログラムを書き込めません。 どうしたら解決できますか?AVRマイコンに詳しい方おられましたら、ぜひ教えてください。

  • ATtiny2313のEEPROM領域の設定で使うインテルHEXファイルを編集できるソフトはある?

    アトメル社製のマイコンATtiny2313のプログラミングで、ATtiny2313の内蔵EEPROM領域を使いたくなったところ、マイコンへの書き込み時には、インテルHEXフォーマットのテキストファイルで書かなければならないことが分かり、インテルHEXファイルフォーマットのファイルを編集できるソフトを探してみたところ、 http://www.vector.co.jp/soft/winnt/util/se222578.html?site=n xedit162 というソフトを見つけて、ダウンロードして開こうとするとエラーが起きて全く編集できません。 手書きでもかけるのですが、チェックサムがあっていないようで、 :1000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 このように書いてみるとチェックサムがあっていないとプログラマツールに怒られてしまいます。 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF これを16進電卓で足していったら”F1”となるのですが、怒られます。 このインテルHEXファイルで使えるエディタをご存じの方いらっしゃいましたらご教授宜しくお願い致します。

  • GDL(GCC DEVELOPER LITE)のコンパイルについて

    H8/3048Fマイコンのプログラミングをやりはじめた初心者です. これから、秋月製のコンパイラ、アセンブラ、リンカではなくGDLを使用しようと思って、今日から使用し始めたのですが、GDLはリンクまでを一気に行ってしまうのですね。 例えば、A.c,B.c,C.cの三つのC言語ソースファイルをコンパイルして3つをリンクさせようとする場合はどのようにしたらよいでしょうか? 一つ一つコンパイルしてオブジェクトファイルを作成する方法がよくわかりません(マニュアルやヘルプの説明が短い・・・)。 3048Fマイコンを買ったときについてきたサンプルプログラムをコンパイル、リンクしようと考えてるのですが、そこでつまづいています. 3つのC言語ソースファイルを1つにしてやったらできましたが、.MOT形式の出力ファイルがもともと存在していたファイルとサイズがぜんぜん違っているので、何かおかしいのではないかと考えています. 何かわかることがありましたら、何でも良いので教えてください.

  • アトメルマイコンATtiny2313でエミュレータとマイコンの通信が正常にできない。

    アトメル社製のマイコンATtiny2313を実装した基板をアトメルのICEエミュレータ”AVRATJTAGICE_MKII”を接続してコンパイルしたプログラムをダウンロード使用としているのですが、マイコンことの正常な通信を確認するために”Read Signature”を実行してみたら、 WARNING : Signature does not match selected device! と表示されます。 上に表示されるヘクサの値が 0x1E, 0x91 0xFF この値が”Read Signature”を実行する度にころころ別の値に変化してしまいました。 また、Fuses設定でもマイコンの内部オシレータを自分の設定した値に設定することもできません。 この場合、どのように対処したら良いのでしょうか。 ご存じの方いらっしゃいましたらご教授よろしくお願いいたします。

  • コンパイルしたらマシン語になる?

    基本的な質問かもしれないのですが: ●プログラミング言語をコンパイルしたらマシン語になるのでしょうか? ●マシン語になるとしたら、なぜ、Windowsのgccでコンパイルした実行ファイルはUnix上で動かないのでしょうか? C言語などのプログラミング言語は人間が理解できる言葉で書かれていて、これをマシン(例えばIntelのCPU)が理解できる言葉に変換するのが「コンパイル」だと今まで私は理解していました。だから、IntelのCPU上でコンパイルした場合、他のCPUでは動かないのだと納得していました。 しかし、IntelのCPUが理解する言葉になるのであれば、WindowsでコンパイルしてもUnixでコンパイルしても IntelのCPUの言葉になっている点で変わりがないような気がします。しかし、Windowsでコンパイルした実行ファイルはUnixでは動かないですよね。私は根本的な勘違いをしていると思うのですが、それが何かを教えて頂けると幸いです。

  • IAR社のAVRマイコン用の無償版コンパイラ

    最近、AVRマイコンを使用し始めたのですが、 訳あってIAR社のコンパイラを使用しようと考えています。 試しに、IAR社のAVRマイコン用の無償版コンパイラを ダウンロードしました。 コンパイルすると、実行形式ファイルが、3個生成されました。 test.hex(おそらく本体), test_data.hex, test_eeprom.hexです。 ISPを使用してダウンロードしようとしたのですが、 ファイルを3つもダウロードできないようです。 試しにtest.hexをダウンロードしましたが、 動作しませんでした。 何か、実行形式ファイルの出力設定などがあるのでしょうか? また、簡単なサンプルプログラムなどお持ちの方いらっしゃらないでしょうか? マイコンは、Atmega128です。 ご存知の方がいらっしゃいましたら、ご教授お願い致します。

  • ATtiny2313でsleep_mode()関数でパワーダウンモード機能はステートマシンでは使えない?

    C言語プログラミングでアトメル社製ATtiny2313マイコンでプログラミングをやってます。 ATtiny2313のパワーダウンモード機能を使って割り込み入力端子、INT0、INT1端子を使って、入力の組み合わせでLEDを数パターンの点滅させるステートを作り、入力がない場合は、パワーダウンモードのステートで消費電流を節約するようにし、次の割り込みを待つようなプログラムを作っています。 ただ、パワーダウンモードのステートに入って、きっかけである”sleep_mode();”関数を使うと、割り込み入力でウェイクアップさせようとしてもLEDの点灯ステートに行っていないようで、完全にマイコンが動作停止してしまいます。 この時の状態をyoutubeに動画投稿しましたので参照をお願いします。 現在このプログラムは https://sourceforge.jp/projects/midicv/svn/view/trunk/LED_FLASHER/?root=midicv このサイトで”Download GNU tarball”をクリックでダウンロードできるようになっております。 この問題の原因がわかるかたいらっしゃいましたら是非ご教授よろしくお願い致します。 ちなみに、このプログラムファイル”LED_FLASHER.c”の224行目のsleep_mode();関数をコメントアウトすると、このステートマシンはちゃんと動作できていることを確認しております。こちらも動画で掲載しております。

  • プログラミングに適したフリーのテキストエディターはないでしょうか?

    フリーソフトなどで、C言語プログラミングを行いやすいテキストエディターなどはありませんでしょうか。 たとえば、 enum{ test1, test2, test3, } このようなエイリアス数値などを宣言していて、プログラミング中にステート状態などで#defineしている数値を使ったときに、マウスを当てれば、いくつの数値の別名なのかが表示されたり、変数名などが何で宣言したものなのかがすぐにわかるものとか、 それと、私はマイコンのプログラミングでC言語を使っているのですが、マイコン用のコンパイラを設定して、そのテキストエディタでコンパイルもできるようなソフトというのはないでしょうか?

  • ライントレーサ

    ライントレーサで、黒色・灰色・白色をセンサ一つで識別するプログラムを教えてください。プログラミング言語は、Cです。センサの出力は32ビットで、実行ファイル形式です。ターゲット環境は、マイコンです。よろしくお願いします。

  • C言語について

    最近C言語でプログラミングを試みようとしてるのですが、コンパイルの時点でよく分かりません。 どのようなソフトでどのようにインストール・設定し、どのようにコンパイルするかなど、C言語でのプログラムのコンパイルから実行までを詳しく教えてください。