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