SW: přístup více úloh k jedné periférii.

Ladislav Vaiz spam na nagano.cz
Čtvrtek Březen 28 21:20:34 CET 2013


Ohledně x86 mi ještě v hlavě uvízl prefix LOCK. Mutex se pak dělá XCHG 
reg, mem a pak porovnáním registru, čímž poznáš, zda se ti povedlo 
zamknout.
Po lopatě: 0 v paměti = odemknuto, 1= zamknuto. Do registru dáš 1, 
provedeš LOCK XCHG. Pokud je v registru 0, tak před instrukcí byl mutex 
0 a nikdo ti ho nevyfouknul. Pokud přečteš 1, tak tě někdo předběhl a 
musíš počkat.
Tuším od 486 existuje CMPXCHG, která to umí dělat nějak dohromady.
Takto si pamatuju teorii, od školy jsem to nepotřeboval.
Pro ARM mi strýček G. našel 
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0008a/ch01s03s02.html 
, nic bližšího ti k tomu ale neřeknu, ARM asm neovládám.
L.

On 28.3.2013 20:54, Josef Štengl wrote:
> A jejky, já jsem smazal že se nejedná o žádný os. Mám tam napsaný jen 
> takový jednodušší netradiční plánovač s tím, že mohou nastat požadavky 
> na OS, přičemž pro cílově použití je OS typu FreeRTOS moc náročný 
> přičemž zase jiná skupina ho pravděpodobně bude preferovat. Tak mám 
> myšlenku z toho plánovač vynechat a zatím jsem nepřišel jak na to. 
> zakázání INT je možné, jen v ARM user modu je to navíc 9 instrukcí. 
> Jen mě zajímalo jestli to jde jinak. Mimochodem na multiprocesorových 
> architekturách toto stejně nebude fungovat.
>
> ced
>



Další informace o konferenci Hw-list