Și avr

A început să sorteze IAR acel cod pe care îl produce în AVR Studio și a observat că nu instalează faptul că începutul unui stack
Iată compilația cu studioul austr
cod:
@ 0000007F. C_STARTUP






+0000007F: E90F LDI R16,0x9F Încărcați imediat
+00000080: BF0D OUT 0x3D, R16 Ieșire la I / O locație
+00000081: E000 LDI R16,0x00 Încărcați imediat
+00000082: BF0E OUT 0x3E, R16 Ieșire la locația I / O

iar stiva de aici incepe cu 0x9f si ar trebui sa cu 0x45f se poate unde se poate fixa in promptul Option

Deja găsiți în fila Opțiuni generale în fila Stare de mărime de date, pe care trebuie să o puneți pe 0x3e0, atunci stivă va fi 0x45f înainte ca acesta să fie 0x20






dar la aceasta a venit metoda de calcul și cum se dovedește că 0x20 este o înregistrare în SPL 0x9f este neclar

Deja găsiți în fila Opțiuni generale în fila Stare de mărime de date, pe care trebuie să o puneți pe 0x3e0, atunci stivă va fi 0x45f înainte ca acesta să fie 0x20
dar la aceasta a venit metoda de calcul și cum se dovedește că 0x20 este o înregistrare în SPL 0x9f este neclar


Pur și simplu nu funcționează - trebuie să schimbați scriptul de legătură. Ai dat toată amintirea în teancul de întoarcere. Cum va aloca IAR variabilele globale? nu există loc.


Este posibil și astfel să se adapteze, numai în sensul acesta? Principalul lucru este să alegeți suficiente dimensiuni ale stivei și acolo unde acestea sunt situate nu este atât de importantă. Este greu de spus care este mai rău - că stiva ar trebui să intre în zona "unei alte persoane" RAM sau în spațiul registrelor I / O. Și așa și așa va fi, cu excepția că în moduri diferite.







Trimiteți-le prietenilor: