Rust na Cortex-M

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pátek Říjen 13 07:36:11 CEST 2017


Dekuji za vysvetleni, asi jsem si to mohl precist sam, ale takhhle je to 
aspon v kostce pro vsechny ;-)

Dne 12.10.2017 v 22:39 Jan Waclawek napsal(a):
>> Proc je v tom prikladu vlastne LDREX? Jestli to chapu dobre, STREX dava
>> do R0 predchozi stav, to by nestacilo?
> Nie, to nechapete dobre.
>
> V tom texte je link
> http://infocenter.arm.com/help/topic/com.arm.doc.dui0553a/BABHCIHB.html
> kde je ten mechanizmus vysvetleny.
>
> LDREX okrem precitania premennej zo zadanej adresy (tu do registra R0) tiez
> nastavi interne jeden bit, tzv. tag.
> STREX ulozi hodnotu (v tomto pripade z registra R1) na tu istu adresu (to
> je poziadavka, inak je vysledok nezaruceny) len vtedy, ked je ten tag
> nastaveny; v tom pripade ho vynuluje a do R0 vlozi 0. Ak ten tag v okamihu
> vykonavania STREX nebol nastaveny, hodnota z R1 sa neulozi a do R0 sa
> vlozi 1.
>
>> Mezi LDREX a STREX se to muze zmenit, ne?
> Ano moze, ak nastane prerusenie. Ale - ako sa dozviete z toho vysvetlenia -
> vchod do aj vychod z prerusenia ten tag nuluje, takze program sa *dozvie*,
> ze nastalo prerusenie, a teda ze ta hodnota sa medzicasom *mohla* zmenit -
> ten STREX vrati 1.
>
>
>> A neni to spis pro vicejadrove
>> procesory, kde zakaz preruseni nic neresi?
> To tiez, ale aj u architektur, kde zakazanie, presnejse povolenie,
> preruseni moze znamenat pomerne velke zdrzanie.
>
>
> wek
>
>
> ----- Original Message ---------------
>
>> Proc je v tom prikladu vlastne LDREX? Jestli to chapu dobre, STREX dava
>> do R0 predchozi stav, to by nestacilo?
>> Mezi LDREX a STREX se to muze zmenit, ne? A neni to spis pro vicejadrove
>> procesory, kde zakaz preruseni nic neresi?
>>
>>
>> Dne 12.10.2017 v 21:28 Jan Waclawek napsal(a):
>>> Len aby nedoslo k omylu: Tie operacie medzi ldrex a strex nie su zamknute v
>>> zmysle ze nikto iny ich nemoze prerusit, ale skor v zmysle ze sa pri
>>> pokuse o strex da zistit, ze ich niekto (mozno) prerusil, a daju sa
>>> napriklad vykonat znova.
>>>
>>> Toto je mechanizmus na vytvorenie semaforov, vhodny na ochranenie atomicity
>>> premennych zdielanych medzi vlaknami v multitaskingu (a nahradza to
>>> instrukcie typu XCH pouzivanych u skutocnych jednocipov a u niektorych
>>> procesorov).
>>>
>>> Atomicitu premennych zdielanych s preruseniami je stale asi vhodnejsie
>>> riesit pomocou zakazania/povolenia preruseni - nie zeby to semaformi
>>> neslo, ale je to zbytocne tazkopadne.
>>>
>>> wek
>>>
>>>
>>>
>>> ----- Original Message ---------------
>>>
>>>> ®e se k tomu vracím. Ten rust zamyká kde co, tak jsem koukal jak to
>>>> vlastnì dìlá. A objevil jsem zajímavou vlastnost jader Cortex-M3,4 o
>>>> které jsem nevìdìl, protoµe èlovìk pøejde z osmibitù a má z nich
>>>> osmibitové návyky - zamknout atomickou operaci mezi "cli" a "sti". Tady
>>>> jde zamknout operaci mezi dvojici ldrex a strex. Viz tøeba
>>>> http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0553a/BABFFBJB.html
>>>> .
>>>> Tøeba to nìkdo vyuµije, ale myslím, µe zase nosím døíví do lesa. Druhá
>>>> vìc je, µe jsem doposud dìlal spí± s jádrem M0, které tuto vlastnost
>>>> prostì nemá.
>>>>
>>>> Mrazík
>>>>
>>>> Dne 27.9.2017 v 15:24 Miroslav Mraz napsal(a):
>>>>> Hele, chce si to vyzkou±et. Ten rust vùbec není ±patný. ...
>>>>> Dne 27.9.2017 v 10:09 konfera na efton.sk napsal(a):
>>>>>> No a pocitacova veda hovori, ze u super-duper jazykov riesia tieto
>>>>>> odporne hw zalezitosti vratane tych fuj fuj preruseni operacne systemy
>>>>>> a kniznice, a tie nech si pise kto chce v com chce. Vid Cube/HAL. A
>>>>>> pan programator sa moze nerusene venovat svojej vysoko efektivnej
>>>>>> ezotericky abstraktnej cinnosti.
>>>>>>
>>>>>> wek
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list