Witam,
Kupiłem niedawno na ebayu płytkę AVR Camera Rev 4.2 wraz z wyświetlaczem i kamerą. Po rozpakowaniu przesyłki i podłączeniu zasilania (usb) zestaw od razu działał w ten sposób, że na wyświetlaczu pojawiał się obraz z kamery a po naciśnięciu przycisku zapisywał go w pamięci eeprom.
Dostałem wraz z nim rzekomo kod źródłowy - zamieszczam w załączniku.
Chciałem poczynić jego zmiany (między innymi dodać obsługę kart microSD), ale napotkałem problem - po skompilowaniu za pomocą WinAvr (w programie Programmers Notepad) kodu źródłowego i zaprogramowaniu kontrolera płytka nie działa (na wyświetlaczu krzaki).
Co więcej przy programowaniu uC nie przechodzi weryfikacji - sama kompilacja przebiegła bez błędów (log z programowania za pomocą Programmers Notepada):
Na szczęście przed modyfikacjami zgrałem program który był tam fabrycznie - waży 11,262kB. Po przywróceniu go na płytkę wszystko działa ok jak poprzednio.
Mój skompilowany hex waży 10,526kB, a sprzedawca zarzeka się, że jest to dokładnie ten kod źródłowy który był 'fabrycznie' na płytce.
Jedyne co zmieniłem przed kompilacją to plik Makefile, a dokładnie 2 linijki dotyczące programatora (posiadam tylko usbasp, domyślnie był stk500 na com1):
Fusebitów nie zmieniałem (są tak jak były domyślnie).
Czy jest możliwość, że rzeczywiście program który był domyślnie w mikroprocesorze jest wynikowym dokładnie tego źródłowego który dostałem tylko 'inaczej' skompilowanym ? Może zawiniła zmiana programatora w Makefile ?
Co powinienem zrobić aby skompilować go poprawnie ?
Z góry dzięki za pomoc.
Pozdrawiam !
Kupiłem niedawno na ebayu płytkę AVR Camera Rev 4.2 wraz z wyświetlaczem i kamerą. Po rozpakowaniu przesyłki i podłączeniu zasilania (usb) zestaw od razu działał w ten sposób, że na wyświetlaczu pojawiał się obraz z kamery a po naciśnięciu przycisku zapisywał go w pamięci eeprom.
Dostałem wraz z nim rzekomo kod źródłowy - zamieszczam w załączniku.
Chciałem poczynić jego zmiany (między innymi dodać obsługę kart microSD), ale napotkałem problem - po skompilowaniu za pomocą WinAvr (w programie Programmers Notepad) kodu źródłowego i zaprogramowaniu kontrolera płytka nie działa (na wyświetlaczu krzaki).
Co więcej przy programowaniu uC nie przechodzi weryfikacji - sama kompilacja przebiegła bez błędów (log z programowania za pomocą Programmers Notepada):
> "make.exe" program
avrdude -p atmega32 -P usb -c usbasp -U flash:w:main.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9502
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 "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (10526 bytes):
Writing | ################################################## | 100% 3.21s
avrdude: 10526 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 10526 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 2.92s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x247a
0x7a != 0xff
avrdude: verification error; content mismatch
avrdude done. Thank you.
make.exe: *** [program] Error 1
> Process Exit Code: 2
> Time Taken: 00:06Na szczęście przed modyfikacjami zgrałem program który był tam fabrycznie - waży 11,262kB. Po przywróceniu go na płytkę wszystko działa ok jak poprzednio.
Mój skompilowany hex waży 10,526kB, a sprzedawca zarzeka się, że jest to dokładnie ten kod źródłowy który był 'fabrycznie' na płytce.
Jedyne co zmieniłem przed kompilacją to plik Makefile, a dokładnie 2 linijki dotyczące programatora (posiadam tylko usbasp, domyślnie był stk500 na com1):
AVRDUDE_PROGRAMMER = usbasp
# com1 = serial port. Use lpt1 to connect to parallel port.
AVRDUDE_PORT = usb # programmer connected to serial deviceFusebitów nie zmieniałem (są tak jak były domyślnie).
Czy jest możliwość, że rzeczywiście program który był domyślnie w mikroprocesorze jest wynikowym dokładnie tego źródłowego który dostałem tylko 'inaczej' skompilowanym ? Może zawiniła zmiana programatora w Makefile ?
Co powinienem zrobić aby skompilować go poprawnie ?
Z góry dzięki za pomoc.
Pozdrawiam !
