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