XC8 a data ver Flash
Tomáš Hamouz
hamouz na alsoft.cz
Čtvrtek Červen 20 09:25:31 CEST 2013
Dobrý den,
JS> On ten linker vůbec funguje prapodivně. Např. pokud napíši
JS> const unsigned char pdata1[1000]= { .. zde jen 50 inicializačních dat
JS> Pak rezervuje pro proměnnou 1000 bytů. Pokud ale napíši
JS> const unsigned char pdata1[1000] @0x3000= { .. zde jen 50 inicializačních dat
JS> Tak proměnná je sice umístěna na adresu 0x3000, ale velikost má již jen
JS> 50 bytů a zbytek je obsazen jinými proměnnými/programem.
Mně to přijde jako správné chování.
Pokud určíte adresu proměnné, znamená to že nehodláte využít služeb
linkeru a umísťujete si proměnné dle vlastního uvážení. Můžete
proměnné umisťovat zcela libovolně, mohou se i překrývat. Není pak jediný
důvod aby linker blokoval více prostoru než je určeno inicializací.
Dokonce bych se vůbec nedivil kdyby prostor určený touto proměnnou
zcela ignoroval a použil ho na ostatní proměnné.
Buď se svěříte linkeru nebo si to musíte vyřešit sám, ale kompletně.
Tomáš
Další informace o konferenci Hw-list