Skip to content

Instantly share code, notes, and snippets.

@buyoh
Created July 6, 2018 06:38
Show Gist options
  • Save buyoh/29bed60585f55d430de90d1dcd1d147c to your computer and use it in GitHub Desktop.
Save buyoh/29bed60585f55d430de90d1dcd1d147c to your computer and use it in GitHub Desktop.

arduino asm

1

目標

コンパクトなarduinoアプリを制作できるようにする.

参考サイト

IDEに依存しないコンパイル環境など. 英語記事含め他も探しては見たが,(site:2)が特に親切だった.

  1. https://playground.arduino.cc/Linux/Ubuntu

  2. http://olfash.hateblo.jp/entry/arduino_helloworld

  3. https://balau82.wordpress.com/2011/03/29/programming-arduino-uno-in-pure-c/

  4. https://www.arduino.cc/en/Hacking/Bootloader

  5. http://cammy.co.jp/technical/2016/10/05/arduino%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%9F%E3%82%B9%E3%82%B1%E3%83%83%E3%83%81%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E4%BD%BF%E7%94%A8%E9%87%8F%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B/

環境

  • windows 10 (2018/07)
  • arduino IDE
  • bash on ubuntu

2 コンパイル済みのバイナリファイル

準備

bash on ubuntu(以下 bash)を開き,

sudo apt update
sudo apt install gcc-avr avr-libc binutils-avr

Blink のコンパイル済みデータを見る

  • IDE起動
  • ファイル, スケッチ例, 01 Basics, Blink.
  • 適当な場所に名前をつけて保存.
  • arduino micro を選択.
  • スケッチ, コンパイルしたバイナリを出力.
  • テキストファイル Blink_copy.ino.micro.hexBlink_copy.ino.with_bootloader.micro.hex が出来ている.
  • レコードを見てもよくわからないので,逆アセンブルする.
  • bash に構築した avr-objdump を使う.
    • 普通のIDEにも入っているらしい (site:5)
    • でもストア経由でインストールするとアクセス出来ない領域(WindowsApps)にセットアップされてしまう.
  • avr-objdump -m avr -D -z Blink_copy.ino.micro.hex > Blink_copy.asm
    • -m avr で avr をターゲットにする
    • -D は disassemble all
    • -z は0埋めブロックをスキップしない

構築

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment