[elektro] PIC32 IT prioritás kérdés

F-I flaist at gmail.com
Tue May 15 21:35:46 CEST 2012


Szia!

Sikerült összehozni a következö definiciokkal:


Ezt a config byte-ok definiálásához.

#pragma config FSRSSEL  = PRIORITY_6    //IT Shadow reg assign level-6



Ezeket pedig az ISR rutinok elé, bár lehet, hogy bárhol lehetnének.

__attribute__ ((interrupt(IPL7SOFT)))        //A 7-es IT mentse az összeg 
reg.-t mert nincs shadow funkcio

__attribute__ ((interrupt(IPL6SRS)))       //A 6-os IT ne mentse az összeg 
reg.-t mert itt él shadow funkcio

Köszi a segítséget üdv. István



----- Original Message ----- 
From: "Andras Kadinger" <bandit at surfnonstop.com>
To: <elektro at tesla.hu>
Sent: Sunday, May 13, 2012 3:35 AM
Subject: Re: [elektro] PIC32 IT prioritás kérdés


A doksi itt van:
http://ww1.microchip.com/downloads/en/DeviceDoc/51686B.pdf, pg. 48,
3.3.2.1 INTERRUPT ATTRIBUTE

Szóval vagy hagyod, hogy futásidőben kitörpölje a CPU az IPLnAUTO-val,
hogy shadow vagy nem, vagy explicit előírhatod az IPLnSRS (shadow) ill.
IPLnSOFT (egyenkénti) segítségével.

2012.05.13. 3:19 keltezéssel, Andras Kadinger írta:
> Szerintem az ötleted jó, viszont valószínűnek tartom, hogy a fordító nem
> a pragma configból veszi vissza, hogy melyik rutinhoz kell egyenkénti
> mentést generálnia illetve melyikhez kell shadow-ba mentést generálnia,
> hanem vagy a függvénydefinícióból magából, vagy valamilyen más, a
> fordítónak szóló direktívából. Még az is lehet, hogy a GUI által
> nyújtott projekt konfigurációs opciókban megtalálod ezt a beállítási
> lehetőséget.
>
> Szerintem szánj rá egy fél napot és olvasd végig alaposan a fordító ill.
> a rutinkönyvtárak doksijának ide vonatkozó fejezeteit, én még csak a
> 24-eseknél tartok (eddig nem kellett nagyobb), de ott nagyon megtérült
> az a hétvége, amit erre szántam.
>
> 2012.05.11. 1:24 keltezéssel, F-I írta:
>> Szia!
>>
>> Igazából ami nekem kellene:
>>
>> Van több IT, ezekből  A. és B. nagy prioritású mérő IT rutin, azonnal
>> futniuk kell.
>> Az A. IT sűrűn jön, ezért itt a shadow regisztert is kell használni.
>>
>>
>> A két nagyprioritású IT-ből csak az A. él mindig, a B.csak bizonyos
>> funkciókba.
>>
>> A B. ritkán jön nem kell neki shadow.
>> Ha viszont él a B. akkor ő a legnagyobb prioritású, azonnal kell 
>> szakítania
>> A-t is.
>>
>> ------------------------------------
>>
>> Találtam egy jónak tünö megoldást, de a compiler úgy tünik nem támogatja.
>>
>> 1. a sallang rutinok valami alsó prioritáson.
>>
>> 2. A. rutin IPL6
>>
>> 3. B. rutin IPL7
>>
>> 4. És ami fontos lenne, de nem megy.
>>
>> #pragma config FSRSSEL  = PRIORITY_6    //IT Shadow registers assign 
>> level-6
>>
>>    Elfogadja, de a disassemblert nézve, továbbra is a IPL7-t gondolja 
>> shadow
>> regiszteres működésűnek.
>>    Azaz a regiszter mentés nélküli IT ruitin állapot nem kerül át az IPL6
>> rutinra.
>>
>> Vagy valamit rosszul nézek!?
>>
>> Üdv. István
>>
>>
>>
>>     ----- Original Message -----
>>     From: Révész Károly
>>     To: elektronika, uC, dsp, wlan, programozas
>>     Sent: Friday, May 11, 2012 7:04 PM
>>     Subject: Re: PIC32 IT prioritás kérdés
>>
>>
>>     Hello
>> ----- Original Message -----
>> From: "Pipi"<lista at puzsar.hu>
>> To:<elektro at tesla.hu>
>> Sent: Friday, May 11, 2012 12:22 AM
>> Subject: Re: [elektro] PIC32 IT prioritás kérdés
>>
>>
>> 2012.05.10. 23:34 keltezéssel, F-I írta:
>>> Szia!
>>>
>>> Hát igen ua. IT vektorra nem tud két függvény címet definiálni.
>> megakadályozza valami hogy bármelyik itvektorból feltételtől függően 
>> meghívj
>> egyik v. másik rutint?
>>
>>
> -----------------------------------------
>            elektro[-flame|-etc]

-----------------------------------------
          elektro[-flame|-etc] 



More information about the Elektro mailing list