dotaz na pointer

Vláďa Anděl vaelektronik na vaelektronik.cz
Úterý Listopad 18 22:52:32 CET 2014


Dobrý večer,

poprvé se snažím něco dělat v 8051 (Silabs) s pointrem a asi jsem to 
chybně zapsal, nevím co s tím. Program jsem krokoval, díval jsem se co 
to dělá v asm a vypadá to že se přepíše návratová adresa, na konci 
funkce to skáče na adresu 0000.

U tohoto procesoru C8051F531 je posledních 512 bajtů code paměti 
přístupných jako XDATA (jako EEPROM pro konstanty) a má to být přístupné 
přes pointer. Může mi někdo poradit co tam dělám špatně?

void Ctenikonst(void)
{
byte i;

int xdata *data Pread=0x1F00;    // initialize FLASH write pointer od 1F00
                                                        // tady se 
správně do R6, R7 vložila adresa 1F00
i=1;
do
   {
   Kortepl[i]=*(Pread+i);              // tady překladač dělá nějakou 
hrůzu, vypsal jsem si to a je to na celou stránku
                                                       // moc to nechápu 
a je tam i MUL AB. Tak jestli to místo pointeru nepochopilo
                                                       // jako násobení. 
Taky to zmrší návratovou adresu a skáče to na 0000. Má to
                                                       // zapsat do 
Kortepl[i] obsah z té adresy 1F00+i
   i++;
   }
while(i-4);
}

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20141118/7da8848d/attachment.html>


Další informace o konferenci Hw-list