commit 9d718a58506b90b4c12c30003fe4614faa5b3fe5
parent d4403ac482871dfe027adf4ad97af6e38f6edd86
Author: Matsuda Kenji <info@mtkn.jp>
Date: Thu, 13 Apr 2023 09:39:42 +0900
main.c doesn't work for some reason.
compiled file contains
add r7, sp, #0.
without this single line, it works.
Diffstat:
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/Makefile b/Makefile
@@ -19,8 +19,8 @@ clean:
boot2.o: boot2.s
$(AS) $(ASFLAGS) -o boot2.o boot2.s
-main.o: main.c
- $(CC) $(CFLAGS) -o main.o main.c
+main.o: main.s
+ $(CC) $(CFLAGS) -o main.o main.s
mach.o: mach.s
$(AS) $(ASFLAGS) -o mach.o mach.s
diff --git a/mach.s b/mach.s
@@ -9,11 +9,6 @@ vectors:
.section .text
.thumb_func
reset:
-/*
- ldr r0, sram_base
- ldr r0, [r0, #0] // initial SP
- mov sp, r0
-*/
bl main
hang:
b hang
@@ -162,8 +157,7 @@ flash_read:
bl wait_ssi
bl ssi_pop
- bl led_p0
-
+ ldr r3, xip_ssi_base
mov r1, #0x03
lsl r1, r1, #24
mov r2, #1
@@ -173,7 +167,10 @@ flash_read:
bl wait_ssi
bl ssi_pop
+ pop {pc}
+
wait_ssi:
+ ldr r3, xip_ssi_base
ldr r1, [r3, #0x28] // SSI: SR
mov r2, #4 // TFE
tst r1, r2
@@ -184,19 +181,20 @@ wait_ssi:
bx lr
ssi_pop:
- push {lr}
+ push {r4, lr}
+ ldr r4, xip_ssi_base
ssi_pop_loop:
- ldr r1, [r3, #0x28] // SSI: SR
+ ldr r1, [r4, #0x28] // SSI: SR
mov r2, #8 // RFNE
tst r1, r2
beq ssi_empty
- ldr r0, [r3, #0x60] // SSI: DR0
+ ldr r0, [r4, #0x60] // SSI: DR0
bl printh
mov r0, #'\n'
bl putchar
b ssi_pop_loop
ssi_empty:
- pop {pc}
+ pop {r4, pc}
unreset:
// unreset subsystems specified by r0
diff --git a/main.s b/main.s
@@ -0,0 +1,10 @@
+ .global main
+main:
+ push {r7, lr}
+ //add r7, sp, #0
+ bl init
+loop:
+ bl led_p2
+ bl led_p2
+ bl led_p2
+ b loop