[elektro] Nuvoton Cortex-M0
Info
info at kiralyelektronika.hu
Fri Nov 11 12:38:10 CET 2011
> __interwork
> Van ennek valami speciális hatása is ?
> Úgy olvasom a Cortex-M család csak
> Thumb módban megy.
> Jól értelemezem, hogy az interwork code
> az amikor mixelve van az arm és a thumb code ?
Igen jól.
Két jellemzője van a mixelt kódnak:
- a konstansokat amit a kódszegmensbe pakol PC-relatíc címként tölti
be, azaz nem közvetlen rámutatva
- a változókat szintén relatív címmel éri el, azaz lesz egy kinevezett
regiszter amiben az adatszegmensed kezdőcíme (vagy más) van és
hozzáadással állítja elő az indirekt címet
No előkerestem az eredeti leveled:
>volatile változó 1-be rakásával jelzem a főprogramnak,
Megjegyzem, attól, hogy valami volatile még nem lesz taszkbiztos !!!!
Szóval a main()-ban __disable_interrupt() és enable között érd el. Nem
kell annak volatilének lennie, az multiprocesszoros dologhoz való.
Amikor it()-ből éred el - és mivel az is félbeszakítható - oda is
kellene ugyanez.
A másik megoldás amit ilyenkor szoktam/szokás használni a kettős
memóriaterület. Tehát egy dword/int az it->main jelzésnek és egy
visszafele. Azért, hogy teljesüljön a "csak egyik rutinban lesz írási
hozzáférés, összes többiben olvasás lehet" definíció.
> 2011. 11. 10. 16:27 keltezéssel, Info írta:
>>> TMR1_IRQHandler:
>>> 0x8be6: 0xb580 PUSH {R7, LR}
>>>
>> Ennek nem __interwork attribútum kéne ?
>> Azért nem menti az R0-R1-et.
Jézus, én írtam ezt a baromságot ? Na én meg jól elküldtem szegény
hg12345-öt mert nem hittem el neki :D
More information about the Elektro
mailing list