26 #define GSC_ARCH "CPU_ARCITECTURE_NAME" 27 #define GSC_CPUNAME "CPU_NAME"
28 #define GSC_SYSTEM "SYSTEM_NAME"
29 // CPU、システムによっては以下のマクロが有効です
30 #define GSC_CPU_CLOCK_HZ 200000000UL 33 #ifndef GSC_KERNEL_INITIALTASK_STACK_SIZE 34 #ifdef GSC_TARGET_SYSTEM_EMU // $gsc ターゲットシステムはエミュレータ
35 #define GSC_KERNEL_INITIALTASK_STACK_SIZE (1024*4) 37 #define GSC_KERNEL_INITIALTASK_STACK_SIZE (1024*2) 41 #define xstr(s) str(s) 44 const char arch_name[] = xstr(GSC_ARCH);
45 const char cpu_name[] = xstr(GSC_CPUNAME);
46 const char system_name[] = xstr(GSC_SYSTEM);
53 static void register_kernel_message_out_device(
void)
60 void display_bunner(
void)
62 extern const char os_version[];
63 extern const char build_date[];
64 extern const char build_time[];
66 tkprintf(
"GadgetSeed Ver. %s\n", os_version);
67 tkprintf(
"(c)2010-2018 Takashi SHUDO\n");
68 tkprintf(
"CPU ARCH : %s\n", arch_name);
69 tkprintf(
"CPU NAME : %s\n", cpu_name);
70 tkprintf(
"SYSTEM : %s\n", system_name);
71 tkprintf(
"Build date : %s %s\n", build_time, build_date);
74 extern void init_sect(
void);
77 static struct st_tcb init_task_tcb;
81 int flg_init_task_run = 0;
92 flg_init_task_run = 1;
122 init_interrupt_vector();
128 #ifdef GSC_COMP_ENABLE_FONTS 137 register_kernel_message_out_device();
145 #ifdef GSC_MEMORY_ENABLE_HEAP_MEMORY 158 register_interrupt(INTNUM_SYSCALL, syscall_inthdr);
#define GSC_KERNEL_INITIALTASK_STACK_SIZE
< $gsc カーネル初期化タスクのスタックサイズ
int register_kmess_out_dev(struct st_device *dev)
カーネルメッセージ出力デバイスを登録する
void init_device_list(void)
デバイスドライバリストを初期化する
void init_event(void)
全てのシステムイベントバッファのイベントを初期化(削除)する
int tkprintf(const char *fmt,...)
非タスクコンテキスト実行用メッセージ出力
int initial_task(char *arg)
イニシャルタスク
void init_gs(int *argc, char ***argv)
カーネルを初期化する
void init_system(int *argc, char ***argv)
ドライバ初期化以前に行う初期化処理
void init_console_device(void)
全てのコンソール入出力デバイスを初期化する
void init_system_drivers(void)
基本ドライバ初期化後に登録するユーザドライバ登録処理
struct st_device GSC_KERNEL_ERROUT_DEVICE
$gsc エラーメッセージ出力デバイス
void display_memory_info(void)
メモリ状態表示
#define GSC_KERNEL_MAX_TASK_PRIORITY
$gsc カーネルタスクプライオリティ段階数
void register_kernel_timer_func(timer_func func)
カーネル周期処理を追加する
int task_exec(task_func func, char *name, int priority, struct st_tcb *tcb, unsigned int *stack, int stack_size, char *arg)
タスクを追加し起動する
struct st_device GSC_KERNEL_MESSAGEOUT_DEVICE
$gsc カーネルメッセージ出力デバイス
struct st_device GSC_KERNEL_TIMER_DEVICE
$gsc カーネルタイマデバイス
#define DEF_DEV_NAME_TIMER
標準タイマデバイス名
void startup(void)
タスクコンテキストで実行される初期化処理