From c8a5262463d4027d5fc0db5d65679da5dea4687f Mon Sep 17 00:00:00 2001 From: zhangzheng <1358745329@qq.com> Date: Sun, 2 Mar 2025 23:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkrtos_user/lib/sys_svr/inc/ns_cli.h | 1 + mkrtos_user/lib/sys_svr/src/net_cli.c | 2 +- mkrtos_user/lib/sys_svr/src/ns_cli.c | 18 +++++++++++++++++- mkrtos_user/server/fs/appfs/hw_block.c | 2 +- .../server/init/board/ATSURFF437/init.cfg | 4 ++-- .../server/init/board/STM32F205/init.cfg | 4 ++-- mkrtos_user/server/init/src/init.c | 4 +++- mkrtos_user/server/net/src/main.c | 6 ++++-- .../ATSURFF437/nes_simulator/vnes/nes_main.c | 2 +- 9 files changed, 32 insertions(+), 11 deletions(-) diff --git a/mkrtos_user/lib/sys_svr/inc/ns_cli.h b/mkrtos_user/lib/sys_svr/inc/ns_cli.h index 8663547ea..5f2c643e6 100644 --- a/mkrtos_user/lib/sys_svr/inc/ns_cli.h +++ b/mkrtos_user/lib/sys_svr/inc/ns_cli.h @@ -5,3 +5,4 @@ int ns_register(const char *path, obj_handler_t svr_hd, int flags); int ns_query(const char *path, obj_handler_t *svr_hd, int flags); +int ns_query_svr(const char *path, obj_handler_t *svr_hd, int flags); diff --git a/mkrtos_user/lib/sys_svr/src/net_cli.c b/mkrtos_user/lib/sys_svr/src/net_cli.c index 281ef3371..592f1024c 100644 --- a/mkrtos_user/lib/sys_svr/src/net_cli.c +++ b/mkrtos_user/lib/sys_svr/src/net_cli.c @@ -566,7 +566,7 @@ int net_socket(int domain, int type, int protocol) { case AF_INET: case AF_INET6: - ret = ns_query("/net" /*FIXME:更改为宏*/, &hd, 1); + ret = ns_query_svr("/sys/net" /*FIXME:更改为宏*/, &hd, 1); break; default: return -ENOSYS; diff --git a/mkrtos_user/lib/sys_svr/src/ns_cli.c b/mkrtos_user/lib/sys_svr/src/ns_cli.c index 96dfc49f2..b88e11ffa 100644 --- a/mkrtos_user/lib/sys_svr/src/ns_cli.c +++ b/mkrtos_user/lib/sys_svr/src/ns_cli.c @@ -110,6 +110,7 @@ int ns_register(const char *path, obj_handler_t svr_hd, int flags) return msg_tag_get_val(tag); } + int ns_query(const char *path, obj_handler_t *svr_hd, int flags) { int inx = 0; @@ -182,4 +183,19 @@ next: } *svr_hd = newfd; return msg_tag_get_val(tag); -} \ No newline at end of file +} +int ns_query_svr(const char *path, obj_handler_t *svr_hd, int flags) +{ + int ret; + + ret = ns_query(path, svr_hd, flags); + if (ret < 0) + { + return ret; + } + if (ret != strlen(path)) + { + return -ENOENT; + } + return 0; +} diff --git a/mkrtos_user/server/fs/appfs/hw_block.c b/mkrtos_user/server/fs/appfs/hw_block.c index f911ad822..7345eff70 100644 --- a/mkrtos_user/server/fs/appfs/hw_block.c +++ b/mkrtos_user/server/fs/appfs/hw_block.c @@ -105,7 +105,7 @@ int hw_init_block(fs_info_t *fs, const char *dev_path) fs->cb.hw_write_and_erase_block = hw_write_and_erase_block; again: - ret = ns_query(dev_path, &blk_drv_hd, 0x1); + ret = ns_query_svr(dev_path, &blk_drv_hd, 0x1); if (ret < 0) { u_sleep_ms(50); diff --git a/mkrtos_user/server/init/board/ATSURFF437/init.cfg b/mkrtos_user/server/init/board/ATSURFF437/init.cfg index 9c146a110..4cb83eba6 100644 --- a/mkrtos_user/server/init/board/ATSURFF437/init.cfg +++ b/mkrtos_user/server/init/board/ATSURFF437/init.cfg @@ -1,6 +1,6 @@ #一次读取一行,每行代表启动的应用程序 -block /block -appfs -m /bin -d /block +block /dev/block +appfs -m /bin -d /dev/block # fatfs # pin # i2c diff --git a/mkrtos_user/server/init/board/STM32F205/init.cfg b/mkrtos_user/server/init/board/STM32F205/init.cfg index b00fac1d0..8ab68fb7a 100644 --- a/mkrtos_user/server/init/board/STM32F205/init.cfg +++ b/mkrtos_user/server/init/board/STM32F205/init.cfg @@ -1,6 +1,6 @@ #一次读取一行,每行代表启动的应用程序 -block /block -appfs -m /bin -d /block +block /dev/block +appfs -m /bin -d /dev/block # cpiofs -m /bin # fatfs # pin diff --git a/mkrtos_user/server/init/src/init.c b/mkrtos_user/server/init/src/init.c index 8bf23cc25..9e52e9824 100644 --- a/mkrtos_user/server/init/src/init.c +++ b/mkrtos_user/server/init/src/init.c @@ -30,7 +30,7 @@ #include #include #include - +#include "nsfs.h" #define DEFAULT_INIT_CFG "init.cfg" #define STACK_COM_ITME_SIZE (2 * 1024 /*sizeof(struct pthread) + TP_OFFSET*/) @@ -67,6 +67,8 @@ int main(int argc, char *args[]) console_init(); parse_cfg_init(); + fs_ns_mkdir("/dev"); + fs_ns_mkdir("/sys"); #if defined(MKRTOS_TEST_MODE) printf("test_main..\n"); test_main(); diff --git a/mkrtos_user/server/net/src/main.c b/mkrtos_user/server/net/src/main.c index d48c75bf2..9bc7e5daf 100644 --- a/mkrtos_user/server/net/src/main.c +++ b/mkrtos_user/server/net/src/main.c @@ -58,15 +58,17 @@ int main(int args, char *argv[]) return -1; } again: - ret = ns_query("/eth", &net_drv_hd, 0x1); + ret = ns_query_svr("/eth", &net_drv_hd, 0x1); if (ret < 0) { + // 0代表根节点 u_sleep_ms(50); count_net_link++; if (count_net_link < 20) { goto again; } + net_drv_hd = HANDLER_INVALID; } cons_write_str("net init..\n"); net_hw_init(); @@ -107,7 +109,7 @@ again: } } - ret = ns_register("/net", hd, 0); + ret = ns_register("/sys/net", hd, 0); if (ret < 0) { printf("ns reg failed.\n"); diff --git a/mkrtos_user/user/app/ATSURFF437/nes_simulator/vnes/nes_main.c b/mkrtos_user/user/app/ATSURFF437/nes_simulator/vnes/nes_main.c index 02f9eb7e0..36e5aaa38 100644 --- a/mkrtos_user/user/app/ATSURFF437/nes_simulator/vnes/nes_main.c +++ b/mkrtos_user/user/app/ATSURFF437/nes_simulator/vnes/nes_main.c @@ -557,7 +557,7 @@ int nes_sound_open(int samples_per_sync, int sample_rate) int ret; msg_tag_t tag; again: - ret = ns_query("/snd", &snd_drv_hd, 0x1); + ret = ns_query_svr("/snd", &snd_drv_hd, 0x1); if (ret < 0) { u_sleep_ms(50);