HarmonyOS 鸿蒙Next BearPi-HM_Nano 海思Hi3861开发板中基于OpenHarmony_v1.0的SDK,app_main.c中CONFIG_FACTORY_TEST_MODE和ENABLE_SHELL_DEBUG宏,请问如何编译Shell组件

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

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

1 回复

更多关于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_MODEENABLE_SHELL_DEBUG 宏的设置对编译过程有重要影响。

CONFIG_FACTORY_TEST_MODE 通常用于启用或禁用工厂测试模式,该模式可能包含对Shell的额外支持或调试功能。而 ENABLE_SHELL_DEBUG 宏则直接控制Shell组件的调试功能是否启用。

要编译Shell组件,并确保这些宏被正确设置,你需要:

  1. 在项目的配置文件中(如build.gnKconfig),找到并设置CONFIG_FACTORY_TEST_MODEENABLE_SHELL_DEBUGtrue(如果你需要启用这些功能)。

  2. 重新编译整个项目,确保配置更改生效。编译命令通常依赖于你使用的构建系统,可能是hb build(针对OpenHarmony的编译工具链)。

  3. 编译完成后,将生成的固件烧录到开发板上,并验证Shell组件是否按预期工作。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部