static RAM (.data) usage
authorRobin Krens <robin@robinkrens.nl>
Fri, 5 Jul 2019 09:49:05 +0000 (17:49 +0800)
committerRobin Krens <robin@robinkrens.nl>
Fri, 5 Jul 2019 09:49:05 +0000 (17:49 +0800)
Makefile
link.ld
start.asm

index cc01e47..2563e88 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ as:
 all:
        $(AS) $(CFLAGS) -o start.o start.asm
        $(LD) -T link.ld -o start.out start.o
-       $(MKIMG) -Obinary start.out kernel.bin
+       $(MKIMG) -Obinary -R .data start.out kernel.bin
 
 run:
        qemu-system-arm -monitor stdio -M lm3s6965evb -kernel kernel.bin
diff --git a/link.ld b/link.ld
index 00ce90e..903f1f5 100644 (file)
--- a/link.ld
+++ b/link.ld
@@ -1,6 +1,6 @@
 MEMORY
 {
-       FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 512K
+       FLASH (xr) : ORIGIN = 0x00000000, LENGTH = 512K
        SRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
 }
 
index 8991594..8af6fea 100644 (file)
--- a/start.asm
+++ b/start.asm
@@ -9,14 +9,23 @@ _start:
 
 /* Start of main program */
 start:
-       movs r0, #10
-       movs r1, #5
+       movs r0, #5
+       movs r1, #1
 loop:
        adds r1, r0
        subs r0, #1
        bne loop
-/* Result is now in R1 */
+       /* Result is now in R1 */
+       ldr r0, =Result
+       str r1, [r0] 
+
 deadloop:
        b deadloop
+
+       .data
+       .word 0 /* add two words*/
+       .word 0 
+Result:
+       .word 0 /* results now is in 0x20000008 (0x20000000 + 2 w) */
        .end