ARM Cortex-M0+ a rozdil LDM a LDR

Hynek Sladky econf na centrum.cz
Středa Červenec 8 13:16:28 CEST 2015


Ano, presne takto se to chova.

r5 = 0x50000000
LDR r0,[r5,#0]
r0 = 0x685555A5 (spravna hodnota z GPIOA->MODER)

r5 = 0x50000000
r0 = 0x00000001
LDM r5!,{r0}
r5 = 0x50000004
r0 = 0x00000000

Prijde mi, ze LDM pouziva jiny pristup ke sbernici, takze nejde nacist 
hodnoty z HW registru...

Hynek


Dne 8.7.2015 12:05, Jan Waclawek napsal(a):
>> 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.
> To ste krokovali? V r5 pred instrukciou bola spravna a spravne zarovnana
> adresa, a v pamati na tej adrese bola nenulova hodnota, a v r0 bola
> nenulova hodnota; a po kroku bolo v r0 nula?
>
> wek
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150708/5ad540cb/attachment.html>


Další informace o konferenci Hw-list