[Brmlab] codenights

David Klusacek klusacek at atrey.karlin.mff.cuni.cz
Fri Dec 13 01:48:27 CET 2013



> > funkci) je tam resena velmi elegantne.
> 
> Ja bych zajem mel. Napriklad by me zajimalo, jak funguje michani s Thumb/Thumb-2
> instrukcemi.

O thumbu jsem tedy puvodne moc mluvit nechtel, chtel jsem popisovat jen to
co ma v sobe tu puvodni eleganci. Ale kdyz bude zajem tak o nem taky neco
muzu rict. IMHO se zase tak moc nevyplati ho pouzivat krome pripadu ze
program bezi s FLASHe ktera je 2* pomalejsi nez takt CPU -- pak pomuze ze
instrukce maji polovicni delku.


> > Napsal jsem v tom takovej primitivni mikrokernel, takze muzu zminit i nektere
> > pokrocilejsi triky.
> 
> Tohle by taky bylo zajimavy. Vim, ze pro ARMy existuji ruzne implementace RTOS,
> ale nikdy jsem je nemel cas zkouset.

No ja taky ne, ja jsem si jen napsal svuj. Ale muzu treba rict jak se prepina
kontext a na co je treba davat pozor a jak to udelat rozumne rychle.


> > Byla by to spis kratsi prednaska, ARM je jednoduchej takze za chvili nebudu
> > mit co rikat.
> 
> U ARMu obcas clovek narazi na zakernosti jako Imprecise bus error, kdy preruseni
> nastane az nekolik tiku po vadne instrukci. ARM az tak jednoduchej neni :-)

Tady nevim presne o cem mluvis... Myslis to, ze z ruznych vyjimek se clovek
musi vracet ruznym zpusobem, jako treba ze z vyjimky `nedefinovana
instrukce' se vraci pomoci SUBS R15,R14,#4 kdezto ze `software interrutput' pomoci
MOVS R15,R14? Nebo ze prefetch abort nemusi nastat i kdyz se na instrukci
jejiz precteni by vyvolalo page-fault hrabne (ale ta vyjimka by se vyhodila
az v okamziku kdyz by se instrukce vykonavala a kdyz pre ni byl skok jinam
tak se nevykona a tudiz nesmyslna prectena data se tise zahodi a k vyjimce
nedojde)?

V kazdym pripade, ja pouzivam ARM na mikrokontroleru bez strankovane pameti,
takze tam to problem neni a ani jsem o tom nechtel moc mluvit.

Abych to upresnil, znam ARM jen po `architecture version 5'. Takze o tom co
mate v mobilu vim jen mlhave -- na urovni aplikacniho programatora je to 
sice skoro totez (krome pridanych FPU a vektorovych instrukci), ale
systemovy programator se musi potykat s necim mnohem slozitejsim, i kdyz asi
porad jeste jednodussim nez u x86.




More information about the Brmlab mailing list