[abc80] koppla ABC80 till PIC32:an

juhasz at abc.se juhasz at abc.se
Tis Aug 31 10:37:18 PDT 2010


Nu har jag kollat koden som pic32-kompliatorn genererar (se nedan). Mycket
riktigt en massa push! Men det är ju iofs rätt strongt att hinna med 33
instruktioner innan man kommer till sak och ändå hinna med i Z80:ans
outrutin! ;)

Jag letade lite på nätet ang. just detta. Vad jag sett verkar det som om
de flesta gcc-baserade kompilatorer är dumma och eftersom de inte vet
vilka moduler och register som ska användas så sparar de alla register
vide interrupt. Hitech verkar ha släppt en PIC32-kompilator som har OCG
(omniscent code generation) och kollar igenom just detta, men den kostar
$1995....... Blir nog till att köra lite handoptimering på
kompilatoroutputen (tjohoo!)

Undrar om det är likadant på ARM-sidan... Nån som vet?

Robert


248:                 void __ISR(_CHANGE_NOTICE_VECTOR, ipl2)
ChangeNotice_Handler(void)
249:                 {
9D0006E0  415DE800   rdpgpr      sp,sp
9D0006E4  401A7000   mfc0        k0,EPC
9D0006E8  401B6000   mfc0        k1,Status
9D0006EC  27BDFF88   addiu       sp,sp,-120
9D0006F0  AFBA0074   sw          k0,116(sp)
9D0006F4  AFBB0070   sw          k1,112(sp)
9D0006F8  7C1B7844   ins         k1,zero,1,15
9D0006FC  377B0800   ori         k1,k1,0x800
9D000700  409B6000   mtc0        k1,Status
9D000704  AFA20064   sw          v0,100(sp)
9D000708  AFA30060   sw          v1,96(sp)
9D00070C  AFBF0058   sw          ra,88(sp)
9D000710  AFBE0054   sw          s8,84(sp)
9D000714  AFB90050   sw          t9,80(sp)
9D000718  AFB8004C   sw          t8,76(sp)
9D00071C  AFAF0048   sw          t7,72(sp)
9D000720  AFAE0044   sw          t6,68(sp)
9D000724  AFAD0040   sw          t5,64(sp)
9D000728  AFAC003C   sw          t4,60(sp)
9D00072C  AFAB0038   sw          t3,56(sp)
9D000730  AFAA0034   sw          t2,52(sp)
9D000734  AFA90030   sw          t1,48(sp)
9D000738  AFA8002C   sw          t0,44(sp)
9D00073C  AFA70028   sw          a3,40(sp)
9D000740  AFA60024   sw          a2,36(sp)
9D000744  AFA50020   sw          a1,32(sp)
9D000748  AFA4001C   sw          a0,28(sp)
9D00074C  AFA10018   sw          at,24(sp)
9D000750  03A0F021   addu        s8,sp,zero
9D000754  00001012   mflo        v0
9D000758  00001810   mfhi        v1
9D00075C  AFA2006C   sw          v0,108(sp)
9D000760  AFA30068   sw          v1,104(sp)
250:                     unsigned int temp,data;
251:                 	PORTE=55;
9D000764  3C03BF88   lui         v1,0xbf88
9D000768  24020037   addiu       v0,zero,55
9D00076C  AC626110   sw          v0,24848(v1)
252:                 	PORTE=66;
9D000770  3C03BF88   lui         v1,0xbf88
9D000774  24020042   addiu       v0,zero,66
9D000778  AC626110   sw          v0,24848(v1)
253:                 	PORTE=77;
9D00077C  3C03BF88   lui         v1,0xbf88
9D000780  2402004D   addiu       v0,zero,77
9D000784  AC626110   sw          v0,24848(v1)




More information about the ABC80 mailing list