[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