XC8 a data ver Flash

Jan Smrz jan.smrz na email.cz
Čtvrtek Červen 20 14:16:46 CEST 2013


On 06/20/2013 09:41 AM, Jan Waclawek wrote:
> vystupu prip. linker map by toto malo byt jasne. Aj ked sa to zrejme bude zdat 
> ze to predsa takto v C nemoze fungovat, kupodivu je to vsetko presne podla 
> normy; diskutovali sme tu o tom uz prednedavnom. Pointre, ich vnutorna 
> reprezentacia a nakladanie s nimi su vysostna zalezitost prekladaca. Treba si 
> to cim skor a cim silnejsie natlct do hlavy: POINTER NIE JE ADRESA. Bodka. :-) 
> Ak vsak trvate na explicitnej konverzii na adresu, myslim si, ze jedine 
> schodne riesenie je schovane v nasledujucej vete z 5.4.5.2.1: If assembly code 
> references a C pointer, the compiler will force that pointer to become [...] a 
> 24-bit mixed target space pointer, for PIC18 programs. T.j. to pretypovanie 
> musi prejst skutocnym pointrom, ktory je pouzity (aspon naoko) aj v asembleri. 
> Bohuzial to zrejme znamena aj datovy priestor pre ten pointer, a tipujem, ze 
> to vygeneruje aj nejaky kod naviac. Mimochodom, z predchadzajuceho obsahu tej 
> kapitoly vyplyva, ze 21.bit (ktory pre PIC18 rozlisuje ci ide o datovu alebo 
> programovu pamat) bude vynulovany. wek 
Muzete prosim uvest kousek kodu, jak tedy spravne prevest pointer na adresu? Ne 
zcela jsem pochopil doporucovany postup.


Dekuji,

J.S.



Další informace o konferenci Hw-list