win8のAVR開発環境   

   2012年4月から所用ができてAVR電子工作は休止状態です。しかし、その間にOSがwin8に移行しました。今までXP環境でAVR工作をして来ましたが その環境がなくなりまたので新しくwin8の元に構築する必要があります。
 「プログラマ、ひと月経てば赤の他人」といわれるように少しの時間で自分のしたことがわからなくなります。今は、中止して1年と1ヶ月になりますから ほとんどが忘却の彼方です。相変わらず自由時間は少ないのですが少しずつ考えて行きたいと思っています。



 1 プログラマ(ライター)について 
 2 コンパイラと makefile について 
 3 hexファイルのアイコンについて 
 4 任意のフォルダでコマンドプロンプトを開く 







 1 プログラマ(ライター)について  2013.04.28

 少し時間ができたこと、メールでwin8対応のことを聞かれたのを機に 「win8で今までのライターが使えるのか」 をテストしました。 今までは慣れ親しんで無意識にしていた動作が今はありません。
senshuさんのサイトに勉強に出かけて avrdude-GUIではwin8環境で問題なく使える とのことを知り、avrdude-2013-RC14a.zip を ダウンロードしました。それを c:\avr2013 フォルダに解凍して、その中の \bin\setup.bat を実行して、avrdude-GUI に必要なファイルを c:\bin フォルダにコピーしました。そして、ここにパスを通しました。

 手持ちのライター、HIDaspxを接続して、とあるアプリ「60秒時計」のプログラムの読み出し、書き込みをしたところ素直に動作しました。が、 続けるうちにデバイスの読み出しもできなくなりました。色々とテストしたのですが改善されません。他のアプリでは正常な読み出しができる ことがテストの後にわかりました。幽霊はアプリのプログラム端子の接続不良にあることがわかるまでにかなりの時間が必要でした。横着な工作の せいかもしれません。

 結果として、今までよく使ってきた  HIDaspx pic18spx ft232rlビットバンライタ
の3機種は使えることがわかりました。 (一安心!)

なお、ついでに知ったことを...実験に使っていたライタの簡易コネクタが何箇所か導通不良になっていて、そのために多大な時間を弄しました。 1年余りの間使わずにたためでしょう。これからは安易なコネクタは考えねばなりません。




 2 コンパイラと makefile について  2013.05.03

 コンパイラはWINAVRが好きだったのですが現在は更新が止められているので使えません。 今はtoolchainに変更されているようです。 そこで、 avr-toolchain-installer-3.3.0.710-win32.win32.x86.exe で AVR Toolchain をインストール しました。 これにはavr-gcc (AVR_8_bit_GNU_Toolchain_3.3.0_364) 4.5.1が含まれています。 gccのバージョンが適切なものかどうかは 知りませんが、これでコンパイルしたhexファイルがテストケースでは動いた、ということです。他の方法があるのかどうかは知りませんが これからは使ってみようと思っています。

makefileは出所は定かでありませんがつぎのものでコンパイルでき ました。
複数の.cファイルを含むものでも SRC = $(PRG).c に付け加えるとコンパイルできるようです。 (まだ確認はしていません)

#-------- Makefile for 4.5.1   20111217 --------#
PRG            = main
################ Target file name (without extension). ##############################################
SRC            = $(PRG).c
################ List C source files here (with extension). #########################################
MCU_TARGET     = atmega48
################ MCU name ###########################    atmega8 atmega48 atmega88 atmega168 attiny2313
F_CPU          = 8000000
################ Processor frequency. without UL #####################################################
OPTIMIZE       = -Os
######################################################################################################
OBJ = $(SRC:%.c=%.o)
DEFS           = -DF_CPU=$(F_CPU)UL
LIBS           =
# You should not have to change anything below here.
CC             = avr-gcc
# Override is only needed by avr-lib build system.
override CFLAGS        = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
override LDFLAGS       = -Wl,-Map,$(PRG).map
OBJCOPY        = avr-objcopy
OBJDUMP        = avr-objdump
SIZE           = avr-size
all: $(PRG).elf lst text eeprom  size
$(PRG).elf: $(OBJ)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
clean:
	rm -rf *.o $(PRG).elf
	rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
#	rm -rf *.o $(PRG).elf *.eps *.png *.pdf *.bak
#	rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
lst:  $(PRG).lst
%.lst: %.elf
	$(OBJDUMP) -h -S $< > $@
# Rules for building the .text rom images
text: hex bin srec
hex:  $(PRG).hex
bin:  $(PRG).bin
srec: $(PRG).srec
%.hex: %.elf
	$(OBJCOPY) -j .text -j .data -O ihex $< $@
%.srec: %.elf
	$(OBJCOPY) -j .text -j .data -O srec $< $@
%.bin: %.elf
	$(OBJCOPY) -j .text -j .data -O binary $< $@
size: $(PRG).elf
	$(SIZE) -C --mcu=$(MCU_TARGET) $(PRG).elf
# Rules for building the .eeprom rom images
eeprom: ehex ebin esrec

ehex:  $(PRG)_eeprom.hex
ebin:  $(PRG)_eeprom.bin
esrec: $(PRG)_eeprom.srec

%_eeprom.hex: %.elf
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@
%_eeprom.srec: %.elf
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@

%_eeprom.bin: %.elf
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@
# Every thing below here is used by avr-libc's build system and can be ignored
# by the casual user.
JPEGFILES               = largedemo-setup.jpg largedemo-wiring.jpg \
                          largedemo-wiring2.jpg
JPEG2PNM                = jpegtopnm
PNM2EPS                 = pnmtops
JPEGRESOLUTION          = 180
EXTRA_CLEAN_FILES       = *.hex *.bin *.srec
#EXTRA_CLEAN_FILES       = *.hex *.bin *.srec *.eps
dox: ${JPEGFILES:.jpg=.eps}
%.eps: %.jpg
	$(JPEG2PNM) $< |\
	$(PNM2EPS) -noturn -dpi $(JPEGRESOLUTION) -equalpixels \
	> $@




 3 hexファイルのアイコンについて  2013.05.03

 .hexファイルは取り出しやすいように(見やすいように)今までは赤いバラのアイコンを使って来ました。XPでは フォルダオプションでファイルの拡張子ごとに自由なアイコンを使えて便利だったのですが、win8にはそのような機能は ないようです。
webで検索すると変更のできるソフトがありました。FileTypesManです。これを使っていままでの馴染みの赤いバラの アイコンとなりました。




 4 任意のフォルダでコマンドプロンプトを開く  2016.04.19
 win8.1で過去の方法(下記)を適用すると、任意のフォルダで(右クリックで)コマンドプロンプトを起動することができました。
記事を再掲します。
@スタートメニューから「ファイル名を指定して実行」を選び regedit を起動する。
AHKEY_CLASSES_ROOT→Directory→shellと進み、
Bshellを右クリックして「新規」→ 「キー」を選んで、consoleキーを作る。
Cconsole を選択して、右のペインの「(既定)」をダブルクリックして値のデータに Con&sole と入力して OKする。
Dconsole を右クリックして「新規」→ 「キー」を選んで、commandキーを作る。
Ecommandキーを選択して、右のペインの「(既定)」をダブルクリックして値のデータに
 cmd /f:on /k @cd /d %1 と入力して OKする。
Fregeditを終了して、フォルダを右クリックするとメニューに Console が表示される。(sにアンダーライン)
そのフォルダをカレントとしたコマンドプロンプトが起動される。

























工事中 inserted by FC2 system