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