[elektro] Nuvoton Cortex-M0
Info
info at kiralyelektronika.hu
Thu Nov 10 18:03:38 CET 2011
> Az optimalizálás szempontjából teljesen mindegy mit csinál a
> forditó, ha az NVIC vagy WIC automatikusan menti az első négy
> regiszert + R12,LR,PC és SP-t, ezen csak ronthat futási időben, de
> kódban nem :-)
> A CORTEX mag esetén az ASM vagy C programból nem
> megkülönböztethető a IT vagy függvényhívás, az utomatikus regiszter
> mentés miatt. (Nem feltünő ez elején a PUSH és végén a POP). Ha nem
> használsz más regisztert a fenti 8-on kivül akkor bármely függvény
> lefut mint IT :-) Elvileg a legtöbb perifériánál még az IT
> nyugtázást is megoldja az NVIC....
No most légy szíves ne terjeszd a butaságot :)
Tőled idézek:
"Ha nem használsz más regisztert a fenti 8-on kivül..."
tehát benne a HA szócska
aztán pedig:
"bármely függvény lefut mint IT"
Szóval magad is tudod, hogy a fordító használhatja a többi regisztert
amit nem feltétlen ment le a fordító/linker. Például van kapcsoló
arra, hogy egyáltalán ne mentsen: általában __task néven. Ha írok egy
taszkot ezzel kezdem, így megspórolom a push-pop párost a kódból.
Továbbra is fontosnak tartom, hogy a fordítóval tudatni kell mely
funkció fogja félbeszakítani a fő kódot az optimalizálások miatt. Nem
véletlenül van ez a __interwork vagy __irq kapcsoló.
Az eredeti szálhoz visszatérve nem biztos, hogy ez a hiba, csak
felvetettem. És mint oly soxor bánom, hogy megszólaltam :)
More information about the Elektro
mailing list