ARM Cortex-M0+ a rozdil LDM a LDR
Zuffa Jan
ZuffaJ na cgc.sk
Středa Červenec 8 11:18:23 CEST 2015
V tom prvom pripade inkrementujete po pouziti premennu v pointeri
v tom druhom pointer.
j.
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Hynek Sladky
Sent: Wednesday, July 08, 2015 11:04 AM
To: HW-news
Subject: ARM Cortex-M0+ a rozdil LDM a LDR
Na procesoru STM32L05x potrebuju neprimo pristupovat k nekterym HW registrum. Cast kodu pro pristup je zapsana takto:
unsigned long *ptr;
test_send (*ptr++, 4);
Tento pristup vygeneruje instrukci
LDM r5!,{r0}
Vysledkem operace je vzdy hodnota 0.
Pokud pouziju jiny zapis:
test_send (*ptr, 4);
ptr++;
tak se vygeneruje instrukce
LDR r0,[r5,#0]
a data se nacitaji spravne...
Snazil jsem se najit nejaky popis rozdilu techto instrukci, proc by k takovemu chovani melo dochazet, ale nic jsem nenasel... (DDI0419C od ARM a PM0223r1 od ST)
Tak nevim, jestli to je treba nejake omezeni Cortex-M0+ jadra nebo konkretniho cipu...?
Rad bych pochopil, proc k tomu dochazi - nevite nekdo?
Diky,
Hynek Sladky
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150708/2e47838e/attachment.html>
Další informace o konferenci Hw-list