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.