Je sais faire clignoter une led à partir d'un exécutable de nom kernel.bin dans la Raspberry pi zéro.
Pour l'instant, j'essaye de normaliser mon programme à partir du fichier linker.ld. Le voici :
Code : Tout sélectionner
ENTRY(_start)
MEMORY
{
ram (rwx) : ORIGIN = 0x0000, LENGTH = 0x0100
stack (rwx) : ORIGIN = 0x0100, LENGTH = 0x0100
rom (rx) : ORIGIN = 0x0200, LENGTH = 0x0100
}
SECTIONS
{
.data : { *(.data) } > ram
.bss : { *(.bss) } > ram
.text : { *(.text) } > rom
}
a) ma pile, dans le fichier "linker.ld", se nomme "stack". Elle peut se trouver n'importe où dans l'exécutable.
Comment faire pour dire que l'adresse dont j'ai besoin se trouve à la fin de la pile ? En principe, c'est l'adresse 0x0200.
b) à partir de la déclarative __stack__ qui va contenir l'adresse de la pile, comment puis-je faire dans le programme pour la gérer ?
Dans un premier temps, j'indiquer son adresse ;
Code : Tout sélectionner
ldr r0,__stack__
ldr sp,[r0]
@+