发帖
0 0 0

问题:安信可科技WB2系列aipi-palchatv1官方代码烧录后模组无反应,但注释掉无关代码

江文卓
注册会员

1

主题

0

回帖

71

积分

注册会员

积分
71
小安AI 20 0 昨天 11:43
[i=s] 本帖最后由 江文卓 于 2026-3-11 11:47 编辑 [/i]

问题描述
我使用make编译了基于Ubuntu 20.04 的 Linux 子系统环境下安信可科技 WB2系列(基于BL602芯片): aipi-palchatv1 源码,烧录自己生成的散装固件后,模组完全没反应(不说话、LED 不亮)。但当我把 main.c 中与点灯无关的代码全部注释掉,只保留最基本的 GPIO 初始化和 LED 任务时,LED 能正常闪烁,证明编译和烧录本身是成功的。
源代码我是按照这个命令执行下载的 git clone https://gitee.com/Ai-Thinker-Open/aipi-palchatv1.git

注意:烧录了完整镜像固件AiPi-PalChatV1uart-mcpWWXHv3.020260106.bin后模组可以正常说话,我没有改过的源代码烧录后模组也没反应____,简单说就是就是烧录下载的官方固件无论是FW1.9 2.8 3.0都有语音,烧录克隆的工程没反应,烧录克隆的工程不但没声音,在原基础上加了点灯代码也不亮,程序可能哪里是卡住了

关键代码(简化版,能亮灯):

void led_task(void *pvParameters) {
    bl_gpio_enable_output(SPK_GPIO_LED,0,0);
    uint8_t led_status = 0;
    while(1) {
        bl_gpio_output_set(SPK_GPIO_LED, led_status);
        led_status = !led_status;
        vTaskDelay(300);
    }
}
 
void main() {
    bl_sys_init();
    bl_gpio_enable_output(SPK_GPIO_LED,0,0);
    xTaskCreate(led_task, "led_task", 1024, NULL, 15, NULL);
    // 没有其他初始化,LED 正常闪烁
}

源工程代码main.c部分+点灯代码:

void led_task(void *pvParameters)
{
    bl_gpio_enable_output(SPK_GPIO_LED,0,0);
    uint8_t led_status = 0;
    while (1)
    {
        bl_gpio_output_set(SPK_GPIO_LED, led_status);
        printf("[%s()-%d]led_status:%d\r\n", __func__, __LINE__, led_status);
        led_status = !led_status;
        vTaskDelay(300);
    }
}
 
void main()
{
    bl_sys_init();
    // printf("************************fw_version:%s*********************************\r\n",fw_version);
    // printf("************************compile time:%s %s*********************************\r\n",__DATE__,__TIME__);
    easyflash_init();
    ef_get_u8(_printf_key, &printf_enble);
    ef_get_u32(uart_baudrate_key, &uart_baudrate);
    ef_get_u8(config_led_key, &config_led);
 
    if (uart_baudrate != 0)
    {
 
        bl_uart_setbaud(0, uart_baudrate);
    }
    else
    {
        // bl_uart_init(0, 12, 11, 0, 0, 115200);
        bl_uart_setbaud(0, 115200);
    }
 
    activeInfo.server = WEB_SERVER;
    activeInfo.portStr = WEB_PORT;
    activeInfo.url = DEFAULT_WS_URL;
    activeInfo.ws_url = WEB_URL;
    xiaozhi_init(&activeInfo);
    print_boot_info();
    extern int xiaozhi_bl602_cli_init(void);
    xiaozhi_bl602_cli_init();
    extern int customize_at_cli_init(void);
    customize_at_cli_init();
 
    get_xiaozhi_info();
    // 客制化ota配置,需要根据实际情况修改,如果不设置则使用安信可默认配置
    //  wifi_g_customize_ota_cfg=malloc(sizeof(customize_ota_cfg_t));
    //  wifi_g_customize_ota_cfg->host="aithinker.oss-cn-beijing.aliyuncs.com";
    //  wifi_g_customize_ota_cfg->port=80;
    //  wifi_g_customize_ota_cfg->resource="/wifi_ota.bin";
    //  vb6824_g_customize_ota_cfg=malloc(sizeof(customize_ota_cfg_t));
    //  vb6824_g_customize_ota_cfg->host="aithinker.oss-cn-beijing.aliyuncs.com";
    //  vb6824_g_customize_ota_cfg->port=80;
    //  vb6824_g_customize_ota_cfg->resource="/vb6824_ota.bin";
    bl_gpio_enable_output(SPK_GPIO_LED,0,0);
 
    xTaskCreate(uart_ota_task, (char *)"uart_ota_task", 1024, vb6824_g_customize_ota_cfg, 15, &vb6824_module_ota_task_handle);
    xTaskCreate(proc_main_entry, (char *)"main_entry", 1024 * 2 + 512, NULL, 15, NULL);
    xTaskCreate(http_ota_task, (char *)"http_ota_task", 1024, wifi_g_customize_ota_cfg, 15, &wifi_module_ota_task_handle);
    xTaskCreate(led_task, (char *)"led_task", 1024, NULL, 15, NULL);
    // xTaskCreate(free_heap_size_task, (char *)"free_heap_size_task", 256, &fw_version, 3, NULL);
    puts("[OS] Starting TCP/IP Stack...\r\n");
    tcpip_init(NULL, NULL);
 
    // free(wifi_g_customize_ota_cfg);
    // free(vb6824_g_customize_ota_cfg);
    key_scan();
   
 
 
}
 
 
──── 0人觉得很赞 ────

使用道具 举报

您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 30711 个
  • 话题数: 44760 篇