RTV forum PL | NewsGroups PL

Jak umieścić stałe w pamięci EEPROM Atmega8 za pomocą WinAvr?

zaprogramować eeprom

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak umieścić stałe w pamięci EEPROM Atmega8 za pomocą WinAvr?

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 Smile

elektroda NewsGroups Forum Index - Elektronika Polska - Jak umieścić stałe w pamięci EEPROM Atmega8 za pomocą WinAvr?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map