HarmonyOS 鸿蒙Next BearPi-HM_Nano 海思Hi3861开发板中基于OpenHarmony_v1.0的SDK,app_main.c中CONFIG_FACTORY_TEST_MODE和ENABLE_SHELL_DEBUG宏,请问如何编译Shell组件
HarmonyOS 鸿蒙Next BearPi-HM_Nano 海思Hi3861开发板中基于OpenHarmony_v1.0的SDK,app_main.c中CONFIG_FACTORY_TEST_MODE和ENABLE_SHELL_DEBUG宏,请问如何编译Shell组件
小熊派的SDk官方GIT为https://gitee.com/bearpi/bearpi-hm_nano
我对比了下这个SDK和鸿蒙官方发布的,有一定差异。这个编译的镜像默认开启了AT组件,怎么开启SHELL组件。在app_main.c中看到了有这些配置项,不知道怎么启用
vendor/hisi/hi3861/hi3861/app/wifiiot_app/src/app_main.c
hi_void app_main(hi_void)
{
#ifdef CONFIG_FACTORY_TEST_MODE
printf(“factory test mode!\r\n”);
#endif
const hi_char* sdk_ver = hi_get_sdk_version();
printf(“sdk ver:%s\r\n”, sdk_ver);
hi_flash_partition_table ptable = HI_NULL;
peripheral_init();
peripheral_init_no_sleep();
#ifndef CONFIG_FACTORY_TEST_MODE
hi_lpc_register_wakeup_entry(peripheral_init);
#endif
hi_u32 ret = hi_factory_nv_init(HI_FNV_DEFAULT_ADDR, HI_NV_DEFAULT_TOTAL_SIZE, HI_NV_DEFAULT_BLOCK_SIZE);
if (ret != HI_ERR_SUCCESS) {
printf(“factory nv init fail\r\n”);
}
/ partion table should init after factory nv init. /
ret = hi_flash_partition_init();
if (ret != HI_ERR_SUCCESS) {
printf(“flash partition table init fail:0x%x \r\n”, ret);
}
ptable = hi_get_partition_table();
ret = hi_nv_init(ptable->table[HI_FLASH_PARTITON_NORMAL_NV].addr, ptable->table[HI_FLASH_PARTITON_NORMAL_NV].size,
HI_NV_DEFAULT_BLOCK_SIZE);
if (ret != HI_ERR_SUCCESS) {
printf(“nv init fail\r\n”);
}
#ifndef CONFIG_FACTORY_TEST_MODE
hi_upg_init();
#endif
/ if not use file system, there is no need init it /
hi_fs_init();
(hi_void)hi_event_init(APP_INIT_EVENT_NUM, HI_NULL);
hi_sal_init();
/ 此处设为TRUE后中断中看门狗复位会显示复位时PC值,但有复位不完全风险,量产版本请务必设为FALSE /
hi_syserr_watchdog_debug(HI_FALSE);
/ 默认记录宕机信息到FLASH,根据应用场景,可不记录,避免频繁异常宕机情况损耗FLASH寿命 /
hi_syserr_record_crash_info(HI_TRUE);
hi_lpc_init();
hi_lpc_register_hw_handler(config_before_sleep, config_after_sleep);
#if defined(CONFIG_AT_COMMAND) || defined(CONFIG_FACTORY_TEST_MODE)
ret = hi_at_init();
if (ret == HI_ERR_SUCCESS) {
hi_at_sys_cmd_register();
}
#endif
/ 如果不需要使用Histudio查看WIFI驱动运行日志等,无需初始化diag /
/ if not use histudio for diagnostic, diag initialization is unnecessary /
/ Shell and Diag use the same uart port, only one of them can be selected /
#ifndef CONFIG_FACTORY_TEST_MODE
#ifndef ENABLE_SHELL_DEBUG
#ifdef CONFIG_DIAG_SUPPORT
(hi_void)hi_diag_init();
#endif
#else
(hi_void)hi_shell_init();
#endif
tcpip_init(NULL, NULL);
#endif
ret = hi_wifi_init(APP_INIT_VAP_NUM, APP_INIT_USR_NUM);
if (ret != HISI_OK) {
printf(“wifi init failed!\n”);
} else {
printf(“wifi init success!\n”);
}
app_demo_task_release_mem(); / 释放系统栈内存所使用任务 */
#ifndef CONFIG_FACTORY_TEST_MODE
app_demo_upg_init();
#ifdef CONFIG_HILINK
ret = hilink_main();
if (ret != HISI_OK) {
printf(“hilink init failed!\n”);
} else {
printf(“hilink init success!\n”);
}
#endif
#endif
HOS_SystemInit();
}
更多关于HarmonyOS 鸿蒙Next BearPi-HM_Nano 海思Hi3861开发板中基于OpenHarmony_v1.0的SDK,app_main.c中CONFIG_FACTORY_TEST_MODE和ENABLE_SHELL_DEBUG宏,请问如何编译Shell组件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next BearPi-HM_Nano 海思Hi3861开发板中基于OpenHarmony_v1.0的SDK,app_main.c中CONFIG_FACTORY_TEST_MODE和ENABLE_SHELL_DEBUG宏,请问如何编译Shell组件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS 鸿蒙Next BearPi-HM_Nano 海思Hi3861开发板中,基于OpenHarmony_v1.0的SDK,编译Shell组件时,CONFIG_FACTORY_TEST_MODE
和 ENABLE_SHELL_DEBUG
宏的设置对编译过程有重要影响。
CONFIG_FACTORY_TEST_MODE
通常用于启用或禁用工厂测试模式,该模式可能包含对Shell的额外支持或调试功能。而 ENABLE_SHELL_DEBUG
宏则直接控制Shell组件的调试功能是否启用。
要编译Shell组件,并确保这些宏被正确设置,你需要:
-
在项目的配置文件中(如
build.gn
或Kconfig
),找到并设置CONFIG_FACTORY_TEST_MODE
和ENABLE_SHELL_DEBUG
为true
(如果你需要启用这些功能)。 -
重新编译整个项目,确保配置更改生效。编译命令通常依赖于你使用的构建系统,可能是
hb build
(针对OpenHarmony的编译工具链)。 -
编译完成后,将生成的固件烧录到开发板上,并验证Shell组件是否按预期工作。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html