[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