AVR GCC, umiestnenie premennej na zadanu adresu
Butrus Damaskus
butrus.butrus@gmail.com
Sobota Srpen 16 14:41:56 CEST 2008
2008/8/16 Jan Waclawek <konfera@efton.sk>
>
> > Jedine co chcem dosiahnut je to, ze ked pouzivam premenne v EEPROM,
> > napriklad
> > char str_prog[] PROGMEM = "Retazec vo FLASH";
>
>
> Tak v EEPROM alebo vo FLASH? ;-)
>
> > tak aby v pripade zmeny retazca alebo pridani dalsich compiler
> > neprepisal to urcene miesto. Viem ze zapisat alebo citat mozem lubovolnu
> > adresu, ale to compileru nezabrani na tu adresu nieco umiestnit a to je
> > prave to co chcem osetrit.
>
> Linker postupuje zdola nahor, takze bud tu premennu (alebo miesto pre nu)
> deklarujete ako prve (a mate len jeden zdrojak alebo sa linkuje ako prvy);
> alebo si ho jednoducho "rucne" umiestnite na vrch FLASH alebo EEPROM.
>
> PS. GCC MA pamatove segmenty ale nema pamatove triedy, t.j. napr. k
> premennej a ktora je inde ako v RAM sa neda pristupit jednoducho ako napr. b
> = a, ale len cez "zaobalovacie" funkcie napr. b = eeprom_read_byte(&a).
JeštÄ› doplnĂm dokumentaci k segmentĹŻm:
• http://www.nongnu.org/avr-libc/user-manual/mem_sections.html
Jinak co se týče EEPROM, tak sice je moĹľnĂ© ze zdrojákĹŻ pĹ™Ămo (elegantnÄ›)
generovat proměnné v EEPROM, ale zas tak často se to nedělá a hlavně se to
neděje automaticky, alébrž je to nutné ručně nastavit v Makefile při
generovánĂ objektĹŻ. TakĹľe rozhodnÄ› se nenĂ tĹ™eba bát, Ĺľe by zrovna v pĹ™ĂpadÄ›
EEPROM tam kompilátor něco hodil automaticky...
> wek
>
>
------------- daląí část ---------------
HTML pĹ™Ăloha byla odstranÄ›na...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20080816/44be01bf/attachment-0002.htm
Daląí informace o konferenci Hw-list