ARM Cortex-M0+ a rozdil LDM a LDR

Hynek Sladky econf na centrum.cz
Středa Červenec 8 11:04:19 CEST 2015


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/ade2ca87/attachment.html>


Další informace o konferenci Hw-list