Konfigurując po raz pierwszy środowisko Eclipse zauważyłem, że istnieje możliwość wyboru programatora, który poradzi sobie z bootloaderem Arduino.
Wyklepałem więc w Eclipse kod zgodny z Arduino UNO:
Kod: Zaznacz cały
/*
* main.c
*
* Created on: 7 lip 2016
* Author: Mariusz
*/
#include <avr/io.h>
#include <util/delay.h>
int main (void) {
while(1) {
PORTB = _BV(PB0);
_delay_ms(250);
PORTB = 0;
_delay_ms(250);
}
}
Następnie ustawiłem procesor i kwarc na zgodne w tym co na Arduino:
Kompiluję:
Flashuję Arduino:
Cały log z operacji:
Kod: Zaznacz cały
Launching D:\Mariusz\Zapisane\Eclipse-BlueBook-AvrDude\avrdude -pm328p -carduino -PCOM3 -Uflash:w:00_TEST_BLINK_LED.hex:a
Output:
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f
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: reading input file "00_TEST_BLINK_LED.hex"
avrdude: input file 00_TEST_BLINK_LED.hex auto detected as Intel Hex
avrdude: writing flash (176 bytes):
Writing | ################################################## | 100% 0.03s
avrdude: 176 bytes of flash written
avrdude: verifying flash memory against 00_TEST_BLINK_LED.hex:
avrdude: load data flash data from input file 00_TEST_BLINK_LED.hex:
avrdude: input file 00_TEST_BLINK_LED.hex auto detected as Intel Hex
avrdude: input file 00_TEST_BLINK_LED.hex contains 176 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 176 bytes of flash verified
avrdude done. Thank you.
avrdude finished
A mimo to, program w arduino nie działa.
Co dziwne, identyczny kod, skompilowany w AtmelStudio wgrywa się do Arduino, i działa na Arduino poprawnie.
Ciekawe, prawda?
Czyżby Eclipse miał problem z kompilacją dla ATmega328P ?