]> Joshua Wise's Git repositories - firearm.git/commitdiff
Add tests directory.
authorJoshua Wise <joshua@rebirth.joshuawise.com>
Sat, 10 Jan 2009 09:11:45 +0000 (04:11 -0500)
committerJoshua Wise <joshua@rebirth.joshuawise.com>
Sat, 10 Jan 2009 09:11:45 +0000 (04:11 -0500)
ram.hex [changed from file to symlink]
tests/Makefile [new file with mode: 0644]
tests/anulib.S [new file with mode: 0644]
tests/costas.c [new file with mode: 0644]
tests/costas.hex [new file with mode: 0644]
tests/ram.hex [new symlink]
tests/script.lds [new file with mode: 0644]

diff --git a/ram.hex b/ram.hex
deleted file mode 100644 (file)
index 7fe5faf942a43e164c3be44b57bdbf789d8d4090..0000000000000000000000000000000000000000
Binary files a/ram.hex and /dev/null differ
diff --git a/ram.hex b/ram.hex
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..5d115b1059ce5fb9e7cad4c02d791797b3b0acd8
--- /dev/null
+++ b/ram.hex
@@ -0,0 +1 @@
+tests/ram.hex
\ No newline at end of file
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644 (file)
index 0000000..62be4ba
--- /dev/null
@@ -0,0 +1,16 @@
+all: costas.hex
+
+%.o: %.c
+       arm-elf-gcc -c -o $@ $<
+
+%.o: %.S
+       arm-elf-gcc -c -o $@ $<
+
+%.elf: %.o anulib.o script.lds
+       arm-elf-ld -o $@ -T script.lds anulib.o $<
+
+%.bin: %.elf
+       arm-elf-objcopy $< -O binary $@
+
+%.hex: %.bin
+       xxd -ps -c 4 $< | sed -e 's/\(..\)\(..\)\(..\)\(..\)/\4\3\2\1/' > $@
diff --git a/tests/anulib.S b/tests/anulib.S
new file mode 100644 (file)
index 0000000..a77ca26
--- /dev/null
@@ -0,0 +1,11 @@
+       .text
+       .globl _start
+_start:
+       mov sp, #0x2000
+       bl main
+1:     b 1b
+
+       .globl putc
+putc:
+       mcr 5, 0, r0, c0, c0
+       mov pc, lr
diff --git a/tests/costas.c b/tests/costas.c
new file mode 100644 (file)
index 0000000..fdce3fe
--- /dev/null
@@ -0,0 +1,22 @@
+extern void putc(unsigned char c);
+
+int main()
+{
+//     unsigned char *costas = "Costas likes ass";
+       
+       putc('A');
+       putc('n');
+       putc('u');
+       putc('s');
+       putc('?');
+       
+//     while (*costas)
+//     {
+//             putc(*costas);
+//             costas++;
+//     }
+       while(1)
+               ;
+       
+       return 0;
+}
diff --git a/tests/costas.hex b/tests/costas.hex
new file mode 100644 (file)
index 0000000..a6858d4
Binary files /dev/null and b/tests/costas.hex differ
diff --git a/tests/ram.hex b/tests/ram.hex
new file mode 120000 (symlink)
index 0000000..0f379b7
--- /dev/null
@@ -0,0 +1 @@
+costas.hex
\ No newline at end of file
diff --git a/tests/script.lds b/tests/script.lds
new file mode 100644 (file)
index 0000000..434d075
--- /dev/null
@@ -0,0 +1,55 @@
+/* Default linker script, for normal executables */
+OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
+             "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+/* Do we need any of these for elf?
+   __DYNAMIC = 0;    */
+SECTIONS
+{
+  /* Read-only sections, merged into text segment: */
+  PROVIDE (__executable_start = 0x0000); . = 0x0000;
+
+  .text           :
+  {
+    *(.text .stub .text.* .gnu.linkonce.t.*)
+    KEEP (*(.text.*personality*))
+    /* .gnu.warning sections are handled specially by elf32.em.  */
+    *(.gnu.warning)
+    *(.glue_7t) *(.glue_7)
+  } =0
+  PROVIDE (__etext = .);
+  PROVIDE (_etext = .);
+  PROVIDE (etext = .);
+  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
+  .data           :
+  {
+    __data_start = . ;
+    *(.data .data.* .gnu.linkonce.d.*)
+    KEEP (*(.gnu.linkonce.d.*personality*))
+    SORT(CONSTRUCTORS)
+  }
+  _edata = .;
+  PROVIDE (edata = .);
+  __bss_start = .;
+  __bss_start__ = .;
+  .bss            :
+  {
+   *(.dynbss)
+   *(.bss .bss.* .gnu.linkonce.b.*)
+   *(COMMON)
+   /* Align here to ensure that the .bss section occupies space up to
+      _end.  Align after .bss to ensure correct alignment even if the
+      .bss section disappears because there are no input sections.  */
+   . = ALIGN(32 / 8);
+  }
+  . = ALIGN(32 / 8);
+  _end = .;
+  _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
+  PROVIDE (end = .);
+    .stack :
+  {
+    _stack = .;
+    *(.stack)
+  }
+}
This page took 0.028259 seconds and 4 git commands to generate.