[elektro] Nuvoton Cortex-M0
Bali Zoltan
eltexto at freemail.hu
Sun Nov 20 16:01:39 CET 2011
Hali!
Megint kérdeznék. Ha jól olvasom az M0-ás mag mindkét endian módban tud
működni.
A NuvoTon prociknál csak little endian módot lehet választani. Ez a
NuvoTon-ék
által bővített perifériák miatt rögzített ? Ha igen, akkor további
kérdésem, miért preferálják
ezt a little endian módot ? Van ennek valami előnye ? A networknál
emiatt nem lehet a fejlécekre
struktúrát illeszteni.
Köszi
Üdv. Zoli
2011. 11. 11. 14:03 keltezéssel, Bali Zoltan írta:
> >Megjegyzem, attól, hogy valami volatile még nem lesz taszkbiztos !!!!
>
> A NuvoTon-os AppNote alapján csináltam.
> Megjegyzem, közben meglett a hiba.
> Az AppNote-ban sz at rul van megirva az SPI DMA kezelés.
> Mondjuk, elindulni jó volt. De megint a doksi olvasásnál jöttem
> rá hol hibáztak. Persze az AppNote-ban nem volt több IT, úgy
> jó volt.
>
> Köszi
>
> Üdv. Zoli
>
>
> 2011. 11. 11. 12:38 keltezéssel, Info írta:
>
>>> __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