sikurasaka
Guest
Thu Aug 31, 2006 4:36 pm
Witam!
Czy WinAvr może jakoś wygenerować plik hex dla eeproma?
Czy w kodzie źródłowym mozna jakoś kompilatorowi powiedziec aby umieścił w
eepromie takie a takie bajty pod kolejnymi adresami?
Chodzi mi o umieszczenie w eepromie Atmegi8 dużej ilości stałych.
Obecnie ręcznie edytuje plik HEX i ręcznie go wysyłam do pamięci rom
(isprog), ale widze ze kompilator winavr'a automatycznie generuje plik
eeprom.hex, tylko ze on zawsze jest pusty....;(
--
Pozdrawiam
Paweł
Grzegorz Kurczyk
Guest
Thu Aug 31, 2006 5:12 pm
Użytkownik sikurasaka napisał:
Quote:
Witam!
Czy WinAvr moe jako wygenerowa plik hex dla eeproma?
Czy w kodzie ródowym mozna jako kompilatorowi powiedziec aby umieci w
eepromie takie a takie bajty pod kolejnymi adresami?
Chodzi mi o umieszczenie w eepromie Atmegi8 duej iloci staych.
Obecnie rcznie edytuje plik HEX i rcznie go wysyam do pamici rom
(isprog), ale widze ze kompilator winavr'a automatycznie generuje plik
eeprom.hex, tylko ze on zawsze jest pusty....;(
Musisz zadeklarować te bajty w sekcji __attribute__((section(".eeprom")))
Podrawiam
Grzegorz
Grzegorz Kurczyk
Guest
Thu Aug 31, 2006 5:16 pm
Użytkownik Grzegorz Kurczyk napisał:
Quote:
Musisz zadeklarować te bajty w sekcji __attribute__((section(".eeprom")))
No może zbyt lakonicznie to opisałem. Najlepszy będzie przykład.
Osobiscie robię to tak:
// najpierw prosta definicja coby nie klepać tego __attribute....
#define eepromseg __attribute__((section(".eeprom")))
// i przykładowa definicja tablicy bajtów
char tablica[10] eepromseg = {2, 4, 7, 4, 3, 7, 146, 255, 0, 128};
Pozdrawiam
Grzegorz
antek
Guest
Thu Aug 31, 2006 6:20 pm
Quote:
Użytkownik Grzegorz Kurczyk napisał:
Musisz zadeklarować te bajty w sekcji __attribute__((section(".eeprom")))
No może zbyt lakonicznie to opisałem. Najlepszy będzie przykład.
Osobiscie robię to tak:
// najpierw prosta definicja coby nie klepać tego __attribute....
#define eepromseg __attribute__((section(".eeprom")))
Taka definicja już jest w avr-libc w avr/eeprom.h Sekcja nazywa się EEMEM.
sikurasaka
Guest
Thu Aug 31, 2006 6:54 pm
Quote:
Użytkownik Grzegorz Kurczyk napisał:
// najpierw prosta definicja coby nie klepać tego __attribute....
#define eepromseg __attribute__((section(".eeprom")))
// i przykładowa definicja tablicy bajtów
char tablica[10] eepromseg = {2, 4, 7, 4, 3, 7, 146, 255, 0, 128};
Ha! Idealnie ...dzieki
Teraz to można programować....;)
--
Pozdrawiam
Paweł
Grzegorz Kurczyk
Guest
Thu Aug 31, 2006 7:09 pm
Użytkownik antek napisał:
Quote:
Taka definicja już jest w avr-libc w avr/eeprom.h Sekcja nazywa się EEMEM.
Oj... to tyle czasu żyłem w niewiedzy ;-)
Pozdrawiam
Grzegorz
Grzegorz Kurczyk
Guest
Fri Sep 01, 2006 7:37 am
Użytkownik antek napisał:
Quote:
Użytkownik Grzegorz Kurczyk napisał:
Musisz zadeklarować te bajty w sekcji
__attribute__((section(".eeprom")))
No może zbyt lakonicznie to opisałem. Najlepszy będzie przykład.
Osobiscie robię to tak:
// najpierw prosta definicja coby nie klepać tego __attribute....
#define eepromseg __attribute__((section(".eeprom")))
Taka definicja już jest w avr-libc w avr/eeprom.h Sekcja nazywa się EEMEM.
I sprawa się wyjasniła. W WinAVR-20050214 takiej definicji nie ma.
Pozdrawiam
Grzegorz
antek
Guest
Fri Sep 01, 2006 6:45 pm
Quote:
Taka definicja już jest w avr-libc w avr/eeprom.h Sekcja nazywa się
EEMEM.
I sprawa się wyjasniła. W WinAVR-20050214 takiej definicji nie ma.
Tak dodali to bodajże w przedostatniej z kolei