參考資訊:
https://www.microchip.com/en-us/product/attiny13#Documentation
https://nerdathome.blogspot.com/2008/04/avr-as-usage-tutorial.html
DDRB(I/O方向)、PORTB(I/O輸出)
main.s
.equ PINB, 0x16 .equ DDRB, 0x17 .equ PORTB, 0x18 .org 0x0000 rjmp main .org 0x0010 main: sbi DDRB, 1 loop: sbi PORTB, 1 rcall delay cbi PORTB, 1 rcall delay rjmp loop delay: ldi r24, 0xff ldi r25, 0x80 d0: sbiw r24, 1 brne d0 ret
編譯和燒錄
$ avr-as -mmcu=attiny13 -o main.o main.s $ avr-ld -o main.elf main.o $ avr-objcopy --output-target=ihex main.elf main.ihex $ sudo avrdude -c usbasp -p t13 -B 1024 -U flash:w:main.ihex:i avrdude: set SCK frequency to 500 Hz avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.20s avrdude: Device signature = 0x1e9007 (probably t13) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: set SCK frequency to 500 Hz avrdude: reading input file "main.ihex" avrdude: writing flash (38 bytes): Writing | ################################################## | 100% 4.51s avrdude: 38 bytes of flash written avrdude: verifying flash memory against main.ihex: avrdude: load data flash data from input file main.ihex: avrdude: input file main.ihex contains 38 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 4.26s avrdude: verifying ... avrdude: 38 bytes of flash verified avrdude: safemode: Fuses OK (E:FF, H:FF, L:6A) avrdude done. Thank you.
完成