第 2 回 MacOSX での開発

本日の内容


2-1. 本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

2-2. Macintosh における開発

Macintosh 上の OS MacOSX でも、この演習を行うことができます。 但し、 Atmel Studio が用意されているというわけでは無いので、同等ではあ りません。

環境構築

avrdude のインストール CrossPack for AVR® Development
the GNU compiler suite, a C library for the AVR, the AVRDUDE uploader and several other useful tools.
Mac app Store でのAVRAのインストール
Install avra on Mac OSX

Atmel Studio との互換性

Atmel Studio 付属のアセンブラと AVRA では仕様が異なります。

AVRAのホームページは http://www.webring.org/l/rd?ring=avr;id=46;url=http%3A%2F%2Fwww.suprafluid.de%2Favra%2Fpp にあります。

アセンブリ言語を書く場合は次の点に注意します。

  1. .device ディレクティブはありません
  2. .inc ファイルは /usr/local/include/avr にあります。 #include "m328Pdef.inc"と指定する。
  3. コメントは ; (セミコロン)から行末までです

flash.asm


.include "m328Pdef.inc"
.cseg
.org	0x0000
	rjmp	reset
.org	INT_VECTORS_SIZE
reset:
        ldi     r16,high(RAMEND)
        out     SPH,r16 
	ldi	r16,low(RAMEND)
	out	SPL,r16
	ldi	r16,1<<pb5
	out	ddrb, r16

.equ	time = 10
main:
	sbi	portb,pb5
	rcall	wait
	cbi	portb,pb5
	rcall	wait
	rjmp	main

.def	wreg0 = r20
.def	wreg1 = r21
.def	wreg2 = r22
wait:
	ldi	wreg0,time
wait0:
	ldi	wreg1,0
wait1:
	ldi	wreg2,0
wait2:
	nop
	dec	wreg2
	brne	wait2
	dec	wreg1
	brne	wait1
	dec	wreg0
	brne	wait0
	ret
.exit

Makefile


all: flash.hex

install: flash.hex
	avrdude -c avrispmkII -p attiny2313 -U flash:w:$< -F

flash.hex: flash.asm
	avra $<

clean:
	rm -f *.hex *.eep.hex *.obj *.cof

program.sh


#!/bin/sh
/usr/local/CrossPack-AVR/bin/avrdude -p m328p -c arduino -P $1 -D -U flash:w:"$2":i

これを program.sh というファイル名でセーブし、 chmod +x program.sh と実行可能にしておく

使用方法

  1. make と打つと、 flash.hex が作られる(エラーがでた 場合は適宜修正し、 make を繰り返す)
  2. ls /dev/tty.usb* と打ち、 arduino の接続デバイス名を 取得する
  3. ./program.sh /dev/tty.usb(上で出た文字列) Hexファイル名 と打つと、書込が行われる。

坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科