wip: IPC and Runtime
This commit is contained in:
@@ -4,44 +4,16 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
project(ksOS_init LANGUAGES C ASM)
|
||||
|
||||
include("${CMAKE_CURRENT_SOURCE_DIR}/../../Common/ksOS_SDK.cmake")
|
||||
|
||||
file(GLOB_RECURSE INIT_SOURCES CMAKE_CONFIGURE_DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Source/*.S
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Source/*.c
|
||||
)
|
||||
|
||||
add_executable(init ${INIT_SOURCES})
|
||||
add_ksos_executable(Init ${INIT_SOURCES})
|
||||
|
||||
target_include_directories(init PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Source
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../Common
|
||||
)
|
||||
|
||||
target_compile_options(init PRIVATE
|
||||
$<$<COMPILE_LANGUAGE:C>:
|
||||
-std=c23
|
||||
-fno-stack-protector
|
||||
-fno-builtin
|
||||
-Wall
|
||||
-Wextra
|
||||
>
|
||||
-ffreestanding
|
||||
-g
|
||||
-mgeneral-regs-only
|
||||
)
|
||||
|
||||
target_link_options(init PRIVATE
|
||||
-nostdlib
|
||||
-static
|
||||
-no-pie
|
||||
-T "${CMAKE_CURRENT_SOURCE_DIR}/../../Common/linker.ld"
|
||||
-Ttext=0x400000
|
||||
-e _start
|
||||
-z max-page-size=0x1000
|
||||
--no-dynamic-linker
|
||||
)
|
||||
|
||||
set_target_properties(init PROPERTIES
|
||||
set_target_properties(Init PROPERTIES
|
||||
OUTPUT_NAME "Init"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
)
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Copyright (c) 2026 0xKSor
|
||||
|
||||
.section .text.entry, "ax"
|
||||
.global _start
|
||||
_start:
|
||||
// Set up stack pointer (8KB stack)
|
||||
adrp x0, stack_top
|
||||
add sp, x0, :lo12:stack_top
|
||||
|
||||
// Jump to C main
|
||||
bl main
|
||||
|
||||
// If main returns, loop forever
|
||||
b .
|
||||
|
||||
.section .bss, "aw", @nobits
|
||||
.align 12 // 4KB alignment
|
||||
stack_bottom:
|
||||
.space 8192 // 8KB stack
|
||||
stack_top:
|
||||
@@ -1,9 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Copyright (c) 2026 0xKSor
|
||||
|
||||
void main(void) {
|
||||
__asm__ volatile(
|
||||
"svc #0\n"
|
||||
"b .\n"
|
||||
);
|
||||
#include <ksOS/Syscall.h>
|
||||
|
||||
int main(void) {
|
||||
SysSend(1, 0xa0a0a0a0a);
|
||||
while (1) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user