This is an automated email from the ASF dual-hosted git repository. jerzy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit e56b35e0b2768b258048f539055ca8b9e0cbf95e Author: Jerzy Kasenberg <[email protected]> AuthorDate: Fri Jun 6 18:15:49 2025 +0200 net/lora: Register commands statically Now loar shell commands are registered at link time to reduce memory footprint. No change in functionality. Signed-off-by: Jerzy Kasenberg <[email protected]> --- hw/sensor/src/sensor_shell.c | 9 +---- net/lora/node/include/node/lora_priv.h | 1 - net/lora/node/pkg.yml | 2 ++ net/lora/node/src/lora_cli.c | 65 ++++++---------------------------- net/lora/node/src/lora_node.c | 8 +---- 5 files changed, 14 insertions(+), 71 deletions(-) diff --git a/hw/sensor/src/sensor_shell.c b/hw/sensor/src/sensor_shell.c index 4dcee5810..9e0c79967 100644 --- a/hw/sensor/src/sensor_shell.c +++ b/hw/sensor/src/sensor_shell.c @@ -44,12 +44,6 @@ #include "hal/hal_i2c.h" #include "parse/parse.h" -static int sensor_cmd_exec(int, char **); -static struct shell_cmd shell_sensor_cmd = { - .sc_cmd = "sensor", - .sc_cmd_func = sensor_cmd_exec -}; - struct sensor_poll_data { int spd_nsamples; int spd_poll_itvl; @@ -1074,6 +1068,7 @@ done: return (rc); } +MAKE_SHELL_CMD(sensor, sensor_cmd_exec, NULL) int sensor_shell_register(void) @@ -1082,8 +1077,6 @@ sensor_shell_register(void) g_spd.spd_read_ev.ev_cb = sensor_shell_read_ev_cb; os_cputime_timer_init(&g_spd.spd_read_timer, sensor_shell_read_timer_cb, NULL); - shell_cmd_register((struct shell_cmd *) &shell_sensor_cmd); - return (0); } diff --git a/net/lora/node/include/node/lora_priv.h b/net/lora/node/include/node/lora_priv.h index f755923dc..b13ea1d6d 100644 --- a/net/lora/node/include/node/lora_priv.h +++ b/net/lora/node/include/node/lora_priv.h @@ -203,7 +203,6 @@ extern struct lora_mac_obj g_lora_mac_data; #define LM_F_REPEATER_SUPP() (g_lora_mac_data.lmflags.lmfbit.repeater_supp) #define LM_F_LAST_TX_IS_JOIN_REQ() (g_lora_mac_data.lmflags.lmfbit.last_tx_join) -void lora_cli_init(void); void lora_app_init(void); struct os_mbuf; diff --git a/net/lora/node/pkg.yml b/net/lora/node/pkg.yml index a165f1702..0c2b48f5b 100644 --- a/net/lora/node/pkg.yml +++ b/net/lora/node/pkg.yml @@ -41,5 +41,7 @@ pkg.deps.LORA_NODE_LOG_CLI: pkg.req_apis: - lora_node_driver +pkg.whole_archive: true + pkg.init: lora_node_init: 'MYNEWT_VAL(LORA_NODE_SYSINIT_STAGE)' diff --git a/net/lora/node/src/lora_cli.c b/net/lora/node/src/lora_cli.c index acd95fae1..b935681d0 100644 --- a/net/lora/node/src/lora_cli.c +++ b/net/lora/node/src/lora_cli.c @@ -30,7 +30,6 @@ #if MYNEWT_VAL(LORA_NODE_CLI) -static int lora_cli_cmd_fn(int argc, char **argv); static int lora_cli_set_freq(int argc, char **argv); static int lora_cli_tx_cfg(int argc, char **argv); static int lora_cli_rx_cfg(int argc, char **argv); @@ -38,36 +37,13 @@ static int lora_cli_tx(int argc, char **argv); static int lora_cli_rx(int argc, char **argv); static int lora_cli_max_payload_len(int argc, char **argv); -static struct shell_cmd lora_cli_cmd = { - .sc_cmd = "lora", - .sc_cmd_func = lora_cli_cmd_fn, -}; - -static struct shell_cmd lora_cli_subcmds[] = { - { - .sc_cmd = "set_freq", - .sc_cmd_func = lora_cli_set_freq, - }, - { - .sc_cmd = "tx_cfg", - .sc_cmd_func = lora_cli_tx_cfg, - }, - { - .sc_cmd = "rx_cfg", - .sc_cmd_func = lora_cli_rx_cfg, - }, - { - .sc_cmd = "tx", - .sc_cmd_func = lora_cli_tx, - }, - { - .sc_cmd = "rx", - .sc_cmd_func = lora_cli_rx, - }, - { - .sc_cmd = "max_payload_len", - .sc_cmd_func = lora_cli_max_payload_len, - }, +static const struct shell_cmd lora_cli_subcmds[] = { + SHELL_CMD("set_freq", lora_cli_set_freq, NULL), + SHELL_CMD("tx_cfg", lora_cli_tx_cfg, NULL), + SHELL_CMD("rx_cfg", lora_cli_rx_cfg, NULL), + SHELL_CMD("tx", lora_cli_tx, NULL), + SHELL_CMD("rx", lora_cli_rx, NULL), + SHELL_CMD("max_payload_len", lora_cli_max_payload_len, NULL), }; static int @@ -557,18 +533,11 @@ err: return rc; } -#endif /* MYNEWT_VAL(LORA_NODE_CLI) */ +MAKE_SHELL_CMD(lora, lora_cli_cmd_fn, NULL) -#if MYNEWT_VAL(LORA_NODE_LOG_CLI) == 1 +#endif /* MYNEWT_VAL(LORA_NODE_CLI) */ #if MYNEWT_VAL(LORA_NODE_LOG_CLI) == 1 -static int lora_cli_log_cmd(int argc, char **argv); - -static struct shell_cmd lora_node_log_cmd = { - .sc_cmd = "ln_log", - .sc_cmd_func = lora_cli_log_cmd -}; -#endif int lora_cli_log_cmd(int argc, char **argv) @@ -704,21 +673,7 @@ next_entry: return 0; } -#endif /* MYNEWT_VAL(LORA_NODE_LOG_CLI) */ - -void -lora_cli_init(void) -{ - int rc; +MAKE_SHELL_CMD(ln_log, lora_cli_log_cmd, NULL) - (void)rc; -#if MYNEWT_VAL(LORA_NODE_CLI) - rc = shell_cmd_register(&lora_cli_cmd); - SYSINIT_PANIC_ASSERT_MSG(rc == 0, "Failed to register lora CLI command"); -#endif -#if MYNEWT_VAL(LORA_NODE_LOG_CLI) - rc = shell_cmd_register(&lora_node_log_cmd); - assert(rc == 0); #endif /* MYNEWT_VAL(LORA_NODE_LOG_CLI) */ -} diff --git a/net/lora/node/src/lora_node.c b/net/lora/node/src/lora_node.c index 5796356f4..0d47731df 100644 --- a/net/lora/node/src/lora_node.c +++ b/net/lora/node/src/lora_node.c @@ -642,16 +642,10 @@ lora_node_init(void) STATS_NAME_INIT_PARMS(lora_mac_stats), "lora_mac"); SYSINIT_PANIC_ASSERT(rc == 0); -#if MYNEWT_VAL(LORA_NODE_CLI) - lora_cli_init(); -#else +#if !MYNEWT_VAL(LORA_NODE_CLI) /* Init app */ lora_app_init(); -#if MYNEWT_VAL(LORA_NODE_LOG_CLI) == 1 - lora_cli_init(); -#endif - /*--- MAC INIT ---*/ /* Initialize eventq */ os_eventq_init(&g_lora_mac_data.lm_evq);
