86 lines
2.0 KiB
C
86 lines
2.0 KiB
C
/**
|
|
* @file main.c
|
|
* @author ATShining (1358745329@qq.com)
|
|
* @brief
|
|
* @version 0.1
|
|
* @date 2023-11-28
|
|
*
|
|
* @copyright Copyright (c) 2023
|
|
*
|
|
*/
|
|
#include "cons.h"
|
|
#include "namespace.h"
|
|
#include "ns_svr.h"
|
|
#include "parse_cfg.h"
|
|
#include "pm.h"
|
|
#include "syscall_backend.h"
|
|
#include "test/test.h"
|
|
#include "u_app_loader.h"
|
|
#include "u_factory.h"
|
|
#include "u_hd_man.h"
|
|
#include "u_ipc.h"
|
|
#include "u_irq_sender.h"
|
|
#include "u_log.h"
|
|
#include "u_prot.h"
|
|
#include "u_rpc_svr.h"
|
|
#include "u_sleep.h"
|
|
#include "u_task.h"
|
|
#include "u_thread.h"
|
|
#include <assert.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <u_fast_ipc.h>
|
|
#include "nsfs.h"
|
|
#define DEFAULT_INIT_CFG "init.cfg"
|
|
|
|
#define STACK_COM_ITME_SIZE (2 * 1024 /*sizeof(struct pthread) + TP_OFFSET*/)
|
|
#define STACK_NUM 2
|
|
ATTR_ALIGN(8)
|
|
static uint8_t stack_coms[STACK_COM_ITME_SIZE * STACK_NUM];
|
|
static uint8_t msg_buf_coms[MSG_BUG_LEN * STACK_NUM];
|
|
static obj_handler_t com_th_obj[STACK_NUM];
|
|
static void fast_ipc_init(void)
|
|
{
|
|
for (int i = 0; i < STACK_NUM; i++)
|
|
{
|
|
com_th_obj[i] = handler_alloc();
|
|
assert(com_th_obj[i] != HANDLER_INVALID);
|
|
}
|
|
u_fast_ipc_init(stack_coms,
|
|
msg_buf_coms, STACK_NUM, STACK_COM_ITME_SIZE, com_th_obj);
|
|
}
|
|
int main(int argc, char *args[])
|
|
{
|
|
int ret;
|
|
uenv_t *env;
|
|
|
|
fast_ipc_init();
|
|
task_set_obj_name(TASK_THIS, TASK_THIS, "tk_init");
|
|
task_set_obj_name(TASK_THIS, THREAD_MAIN, "th_init");
|
|
|
|
ulog_write_str(LOG_PROT, "init..\n");
|
|
u_env_default_init();
|
|
env = u_get_global_env();
|
|
rpc_meta_init(TASK_THIS, &env->ns_hd);
|
|
namespace_init(env->ns_hd);
|
|
pm_init();
|
|
console_init();
|
|
parse_cfg_init();
|
|
|
|
fs_ns_mkdir("/dev");
|
|
fs_ns_mkdir("/sys");
|
|
#if defined(MKRTOS_TEST_MODE)
|
|
printf("test_main..\n");
|
|
test_main();
|
|
#endif
|
|
|
|
ret = parse_cfg(DEFAULT_INIT_CFG, env);
|
|
printf("run app num is %d.\n", ret);
|
|
// task_unmap(TASK_THIS, vpage_create_raw3(KOBJ_DELETE_RIGHT, 0, THREAD_MAIN));
|
|
while (1)
|
|
{
|
|
u_sleep_ms((umword_t)(-1));
|
|
}
|
|
return 0;
|
|
}
|