aboutsummaryrefslogtreecommitdiff
path: root/src/apps
diff options
context:
space:
mode:
Diffstat (limited to 'src/apps')
-rw-r--r--src/apps/init/Makefile12
-rw-r--r--src/apps/init/main.c9
-rw-r--r--src/apps/linker.ld32
3 files changed, 53 insertions, 0 deletions
diff --git a/src/apps/init/Makefile b/src/apps/init/Makefile
new file mode 100644
index 0000000..e56d4c0
--- /dev/null
+++ b/src/apps/init/Makefile
@@ -0,0 +1,12 @@
+
+OBJ = main.o
+
+LIB = ../../lib/libkogata/libkogata.lib
+
+CFLAGS = -I ./include -I ../../common/include -I ../../lib/include
+
+LDFLAGS = -T ../linker.ld -Xlinker -Map=init.map
+
+OUT = init.bin
+
+include ../../rules.make
diff --git a/src/apps/init/main.c b/src/apps/init/main.c
new file mode 100644
index 0000000..ef51834
--- /dev/null
+++ b/src/apps/init/main.c
@@ -0,0 +1,9 @@
+#include <stdbool.h>
+
+#include <debug.h>
+
+int main(int argc, char **argv) {
+ asm volatile("int $0x80");
+ while(true);
+}
+
diff --git a/src/apps/linker.ld b/src/apps/linker.ld
new file mode 100644
index 0000000..0c84ecf
--- /dev/null
+++ b/src/apps/linker.ld
@@ -0,0 +1,32 @@
+ENTRY (__libkogata_start)
+
+SECTIONS{
+ . = 0x100000;
+
+ .text : {
+ *(.text)
+ }
+
+ .rodata ALIGN (0x1000) :{
+ *(.rodata)
+ }
+
+ .data ALIGN (0x1000) : {
+ start_ctors = .;
+ *(.ctor*)
+ end_ctors = .;
+ start_dtors = .;
+ *(.dtor*)
+ end_dtors = .;
+ *(.data)
+ }
+
+ .bss : {
+ sbss = .;
+ *(COMMON)
+ *(.bss)
+ ebss = .;
+ }
+
+ end = .; _end = .; __end = .;
+}