This is my first assembly program. I have a FAT32 formatted SD card with latest bootcode.bin
, start.elf
, and a flat binary named kernel7.img
converted from the following dumped ELF file:
build/kernal.elf: file format elf32-littlearm
Disassembly of section .init:
00008000 <_start>:
8000: e59f0044 ldr r0, [pc, #68] ; 804c <waitOff+0xc>
8004: e5901010 ldr r1, [r0, #16]
8008: e3a02001 mov r2, #1
800c: e1a02a82 lsl r2, r2, #21
8010: e5801010 str r1, [r0, #16]
8014: e3a01001 mov r1, #1
8018: e1a01781 lsl r1, r1, #15
801c: e3a02000 mov r2, #0
00008020 <loop>:
8020: e5801020 str r1, [r0, #32]
8024: e580202c str r2, [r0, #44] ; 0x2c
8028: e3a03601 mov r3, #1048576 ; 0x100000
0000802c <waitOn>:
802c: e2533001 subs r3, r3, #1
8030: 1afffffd bne 802c <waitOn>
8034: e580102c str r1, [r0, #44] ; 0x2c
8038: e5802020 str r2, [r0, #32]
803c: e3a03601 mov r3, #1048576 ; 0x100000
00008040 <waitOff>:
8040: e2533001 subs r3, r3, #1
8044: 1afffffd bne 8040 <waitOff>
8048: eafffff4 b 8020 <loop>
804c: 3f200000 .word 0x3f200000
The code uses the following addresses:
- GPIO controller base: 0x3F200000
- GPFSEL4: 0x3F200010
- GPSET1: 0x3F200020
- GPCLR1: 0x3F20002C
As far as I'm aware, the ACT led on the RPi2 is on GPIO pin 47 (where is the official documentation for this?). I can walk through this listing, and it seems to all make sense - I don't understand why nothing is happening (both ACT and PWR remain on)