[elektro] PIC32 Helix MP3 project.

flaist flaist at gmail.com
Sun Oct 28 22:20:45 CET 2012


Nem egészen, mert a mentés az ISR belépésénél van a vissza állítás pedig a végén a kilépésnél.

!void __ISR(_TIMER_2_VECTOR, IPL6SRS) _T2Interrupt(void)
!{
0x9D0101DC: RDPGPR SP, SP		;ISR belépés !!!!!!
0x9D0101E0: MFC0 K0, EPC
0x9D0101E4: MFC0 K1, Status
0x9D0101E8: ADDIU SP, SP, -40
0x9D0101EC: SW K0, 36(SP)
0x9D0101F0: MFC0 K0, SRSCtl
0x9D0101F4: SW K1, 32(SP)
0x9D0101F8: INS K1, ZERO, 1, 15
0x9D0101FC: ORI K1, K1, 6144
0x9D010200: SW K0, 28(SP)
0x9D010204: MTC0 K1, Status
0x9D010208: MFLO V0			//Mentés !!!!!!
0x9D01020C: LUI S0, -16504
0x9D010210: SW V0, 20(SP)
0x9D010218: MFHI V1			//Mentés !!!!!!
0x9D01021C: SW V1, 16(SP)
!    INT16 w_tmp;
!    UINT16 u_tmp;
!    switch (IT_PWM_Out_Func) {
0x9D010214: LW V0, -32644(GP)
0x9D010220: ADDIU V1, ZERO, 1
0x9D010224: BEQ V0, V1, 0x9D010248
0x9D010228: NOP

.
.
.  ISR rutin
.
.


!/************ nincs lejátszás ******************/
!        default:
!            Kamu_fuggveny();
0x9D0103FC: JAL Kamu_fuggveny
0x9D010400: NOP
!   //         w_tmp=x3;
!        break;
!    }// END switch (IT_PWM_Out_Tipus)
!    //.......................
!    mT2ClearIntFlag();
0x9D010404: ADDIU V0, ZERO, 256
0x9D010408: SW V0, 4148(S0)
!}
0x9D01040C: LW V0, 20(SP)		//ISR rutin kilépés !!!!!
0x9D010410: LW V1, 16(SP)
0x9D010414: MTLO V0			//visszaállítás !!!!!!!!!!
0x9D010418: MTHI V1			//visszaállítás !!!!!!!!!!
0x9D01041C: DI ZERO
0x9D010420: EHB
0x9D010424: LW K1, 28(SP)
0x9D010428: LW K0, 36(SP)
0x9D01042C: MTC0 K1, SRSCtl
0x9D010430: LW K1, 32(SP)
0x9D010434: MTC0 K0, EPC
0x9D010438: ADDIU SP, SP, 40
0x9D01043C: WRPGPR SP, SP
0x9D010440: MTC0 K1, Status
0x9D010444: ERET



Egyébként az ISR7SOFT módban, ahol most éppen jól működik (nem kell a kaum_fuggven();) , ha van osztás az ISR rutinban, akkor beépül a HI / LO regiszter mentés.
Egyébként meg nem.

Na de mindegy, beküldöm a dolgot a "Technical Support"- ba.
Meglátjuk mit válaszolnak.




-----Original Message-----
From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf Of Fuzesi Arnold
Sent: Sunday, October 28, 2012 9:20 PM
To: elektro at tesla.hu
Subject: Re: [elektro] PIC32 Helix MP3 project.



On 2012.10.27. 23:25, flaist wrote:
> Szia!
>
> Igen a baj az, hogy a shadow nem menti az osztás HI / LO regisztereit.
> Ez tán logikus is, mert az osztás több CPU ciklusos ... ??? !!!
> De a compiler hibát az is jelzi, ha berakok az ISR rutinba egy kamu 
> függvény hívást. amit a compiler már nem követ, hogy milyen regiszterek változnak, akkor már menti az ISR a fenti regisztereket.

Nem az ISR menti, hanem a meghivott fuggveny!!! Nagy kulonbseg sztem.

Pont mint a main()-ben oszt az ember majd meghiv egy szubrutint, ott is oszt, es visszatereskor nem a meghivott szubrutin "mocska" van a main() reg. keszleteben. 
Ez zajlik az ISR-bol fuggveny() hivas eseten is, csak mivel nincs a fuggveny()-ben osztas ezert mentessé degradalodik a fuggveny() hivas.


Sztem.
A.

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



More information about the Elektro mailing list