Ahoj,
myslite, ze by byl zajem o assembler ARMu? Na uceni assembleru IMHO nejvhodnejsi procesor, protoze prakticky neobsahuje zbytecnosti a spousta veci (jako treba volani funkci) je tam resena velmi elegantne.
Napsal jsem v tom takovej primitivni mikrokernel, takze muzu zminit i nektere pokrocilejsi triky.
Taky celkem vim jak ty stare (ARM7TDMI a ARM9) funguji po obvodove strance, takze bych mohl zminit i to, kdyby byl zajem.
Byla by to spis kratsi prednaska, ARM je jednoduchej takze za chvili nebudu mit co rikat.
David
On 12/12/2013 10:46 PM, David Klusacek wrote:
myslite, ze by byl zajem o assembler ARMu? Na uceni assembleru IMHO nejvhodnejsi procesor, protoze prakticky neobsahuje zbytecnosti a spousta veci (jako treba volani funkci) je tam resena velmi elegantne.
Ja bych zajem mel. Napriklad by me zajimalo, jak funguje michani s Thumb/Thumb-2 instrukcemi.
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.
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 :-)
OM
na to by som sa pozrel i ja dajte to pls. na doodle.com ?
dik
~pB~
2013/12/13 Ondrej Mikle ondrej.mikle@gmail.com
On 12/12/2013 10:46 PM, David Klusacek wrote:
myslite, ze by byl zajem o assembler ARMu? Na uceni assembleru IMHO
nejvhodnejsi
procesor, protoze prakticky neobsahuje zbytecnosti a spousta veci (jako
treba volani
funkci) je tam resena velmi elegantne.
Ja bych zajem mel. Napriklad by me zajimalo, jak funguje michani s Thumb/Thumb-2 instrukcemi.
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.
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 :-)
OM _______________________________________________ Brmlab mailing list Brmlab@brmlab.cz http://brmlab.cz/cgi-bin/mailman/listinfo/brmlab
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.
On 12/13/2013 01:48 AM, David Klusacek wrote:
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.
... no a este setri misto, co sa pri -Os oplati, ci ani ne?
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.
... no a este setri misto, co sa pri -Os oplati, ci ani ne?
No jenze jen tak o 20% az 30%. Sice instrukce jsou v Thumb dlouhe 16 bitu misto puvodnich 32, ale zase jsou jen 2 adresove a bez problemu lze pristupovat jen k prvnim 8mi registrum. Takze ve vysledku pro stejny vypocet je jich potreba daleko vic. Takze se to hodi maximalne tak na nejakou pomalou ridici logiku programu jehoz casti ktere pocitaji jsou napsane v 32 bit ARM kodu. Kdyz o tom tak premyslim tak ale jeste vetsi hustoty kodu by se dalo dosahnout treba tak, ze bych si tam dal interpretr FORTHu, highl level logiku ridil z nej vypocetne intezivni veci mel v 32bit ARMu.
Proto tvrdim ze jediny ospravedlnitelny pripad pouziti Thumb je pomala pamet kodu -- kdyz nacte 32bitu za 2 takty a nejaky pridavny HW mi je rozdeli na 2 16bitove casti (kazdy takt vyplivne jednu) tak jelikoz jdou instrukce hlavne za sebou tak procesor muze pracovat plnou rychlosti.
Lepsi je to v Thumb-2 kde nektere instrukce jsou 16bitove a jine 32bitove, takze je to srovnatelne rychle s puvodnimi ARM instrukcemi a ma to i nektere navic, jako treba bitove manipulace.
vyborne tesim se na přednášku :)
Dne 13. prosince 2013 2:19 David Klusacek <klusacek@atrey.karlin.mff.cuni.cz
napsal(a):
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.
... no a este setri misto, co sa pri -Os oplati, ci ani ne?
No jenze jen tak o 20% az 30%. Sice instrukce jsou v Thumb dlouhe 16 bitu misto puvodnich 32, ale zase jsou jen 2 adresove a bez problemu lze pristupovat jen k prvnim 8mi registrum. Takze ve vysledku pro stejny vypocet je jich potreba daleko vic. Takze se to hodi maximalne tak na nejakou pomalou ridici logiku programu jehoz casti ktere pocitaji jsou napsane v 32 bit ARM kodu. Kdyz o tom tak premyslim tak ale jeste vetsi hustoty kodu by se dalo dosahnout treba tak, ze bych si tam dal interpretr FORTHu, highl level logiku ridil z nej vypocetne intezivni veci mel v 32bit ARMu.
Proto tvrdim ze jediny ospravedlnitelny pripad pouziti Thumb je pomala pamet kodu -- kdyz nacte 32bitu za 2 takty a nejaky pridavny HW mi je rozdeli na 2 16bitove casti (kazdy takt vyplivne jednu) tak jelikoz jdou instrukce hlavne za sebou tak procesor muze pracovat plnou rychlosti.
Lepsi je to v Thumb-2 kde nektere instrukce jsou 16bitove a jine 32bitove, takze je to srovnatelne rychle s puvodnimi ARM instrukcemi a ma to i nektere navic, jako treba bitove manipulace.
Brmlab mailing list Brmlab@brmlab.cz http://brmlab.cz/cgi-bin/mailman/listinfo/brmlab
Mam zajem. Diky za iniciativu! ;-)
-----Original Message----- From: brmlab-bounces@brmlab.cz [mailto:brmlab-bounces@brmlab.cz] On Behalf Of David Klusacek Sent: Thursday, December 12, 2013 10:47 PM To: brmlab@brmlab.cz Subject: [Brmlab] codenights
Ahoj,
myslite, ze by byl zajem o assembler ARMu? Na uceni assembleru IMHO nejvhodnejsi procesor, protoze prakticky neobsahuje zbytecnosti a spousta veci (jako treba volani funkci) je tam resena velmi elegantne.
Napsal jsem v tom takovej primitivni mikrokernel, takze muzu zminit i nektere pokrocilejsi triky.
Taky celkem vim jak ty stare (ARM7TDMI a ARM9) funguji po obvodove strance, takze bych mohl zminit i to, kdyby byl zajem.
Byla by to spis kratsi prednaska, ARM je jednoduchej takze za chvili nebudu mit co rikat.
David
_______________________________________________ Brmlab mailing list Brmlab@brmlab.cz http://brmlab.cz/cgi-bin/mailman/listinfo/brmlab