Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1144 connectés 

  FORUM HardWare.fr
  Programmation

  Processeurs ARM

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Processeurs ARM

n°26178
MC
retour à la raison
Posté le 20-04-2001 à 12:52:34  profilanswer
 

Bon une fois n'est pas coutume je pose une question au lieu d'y répondre:
 
Y'a t-il des developpeurs assembleur ARM 7, j'ai besoin d'info sur les exceptions sur ARM (et des pointeurs sur de la doc asm ARM digne de ce nom):
 
Je fais un stub GDB (un bout de prog qui permet a GDB de fonctionner en remote), branché sur les exception aborts et undefined. Donc je dois sauver tout les regs dans un tableau et les restaurer a la sortie. L'entrée se passe bien, mais pas la sortie:
 
_undef_ex:
 /* Ajust return address to faulty instr */
 sub r14, r14, #4  
 /* Load gdb_register struct addr into R13 (saved) */
 ldr r13, =_gdb_registers
 /* Save R0 -> R12 */
 stmia r13, {r0-r12}
 /* Save old PC (R14) */
 str r14, [r13, #OFFSET_PC]
 
 /* Get and save status reg */
 mrs r0, spsr
 str r0, [r13, #OFFSET_PS]
 mov r1, r13
 
 /* Save banked regs R13 R14 (go into system mode) */
 ldr r0, =(ARM_PSR_MODE_SYSTEM32 + ARM_PSR_I_BIT + ARM_PSR_F_BIT) /* no interrupts */
 msr cpsr_c, r0  /* enter System mode, Interrupt disabled  */
 str r13, [r1, #OFFSET_SP]
 str r14, [r1, #OFFSET_LR]
 /* Return in undef mode */
 ldr r0, =(ARM_PSR_MODE_UNDEF32 + ARM_PSR_I_BIT + ARM_PSR_F_BIT) /* no interrupts */
 msr cpsr_c, r0  /* enter UNDEF mode */
 
 /* Set signal */  
 mov r0, #SIGTRAP
 
 /* Branch to gdb stub */
 bl _gdb_stub
 
 /* Restore R13 R14 */
 ldr r1, =_gdb_registers
 ldr r0, [r1, #OFFSET_PS]
 msr spsr, r0
 /* Save banked regs R13 R14 (go into system mode) */
 ldr r0, =(ARM_PSR_MODE_SYSTEM32 + ARM_PSR_I_BIT + ARM_PSR_F_BIT) /* no interrupts */
 msr cpsr_c, r0  /* enter System mode, Interrupt disabled  */
 ldr r13, [r1, #OFFSET_SP]
 ldr r14, [r1, #OFFSET_LR]
 /* Return in undef mode */
 ldr r0, =(ARM_PSR_MODE_UNDEF32 + ARM_PSR_I_BIT + ARM_PSR_F_BIT) /* no interrupts */
 msr cpsr_c, r0  /* enter UNDEF mode */
 mov r13, r1
 /* Restore other registers */
 ldmia r13, {r0-r12}  
 /* Resume execution */
 ldr r14, [r13,  #OFFSET_PC]
 movs pc, r14

mood
Publicité
Posté le 20-04-2001 à 12:52:34  profilanswer
 

n°26187
chadenat
Posté le 20-04-2001 à 13:22:22  profilanswer
 

je suppose que tu connais ces adresses:
 
 
http://www.agbdev.net/
http://www.agbdev.net/gbadev/
http://www.devrs.com/
 
Il y a plein de doc tu devrais trouver ton bonheur.


---------------
http://www.chadenat.forez.com
n°26189
MC
retour à la raison
Posté le 20-04-2001 à 13:27:16  profilanswer
 

Je travaille pas vraiment sur une GBA, mais il doit y avoir des trucs interessant. Merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Processeurs ARM

 

Sujets relatifs
Plus de sujets relatifs à : Processeurs ARM


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR