[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