完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
master分支,使用cdc作为console输出,增加repl功能,编译报错如下,有什么好的解决办法。Code: Select all
esp-idf/components/esp_system/port/soc/esp32s3/usb_console.c:69:1: error: static assertion failed: "usb_osglue_*_int is not multicore capable" _Static_assert(SOC_CPU_CORES_NUM == 1, "usb_osglue_*_int is not multicore capable"); |
|
相关推荐
1个回答
|
|
根据您提供的错误信息,这个编译错误是由于在多核处理器上使用了不支持多核的USB OS glue中断处理函数。错误提示是:“usb_osglue_*_int is not multicore capable”。
要解决这个问题,您可以尝试以下步骤: 1. 确认您的ESP32-S3设备是否支持多核。根据ESP32-S3的技术规格,它确实支持多核处理。 2. 检查您的项目配置。确保您在项目的`sdkconfig`文件中正确设置了多核支持。您可以在`sdkconfig`文件中查找`CONFIG_FREERTOS_UNICORE`选项,确保它没有被设置为`y`。如果设置为`y`,请将其更改为`n`以启用多核支持。 3. 如果您使用的是ESP-IDF v4.4或更高版本,可以尝试使用`esp_panic_handler`来处理USB OS glue中断。在`usb_console.c`文件中,找到`usb_osglue_isr`函数,并将其替换为以下代码: ```c void usb_osglue_isr(void *arg) { esp_panic_handler(ESP_ERR_USB_GLUE, "USB OS Glue interrupt", (uint32_t) arg, 0); } ``` 4. 如果以上方法都无法解决问题,您可以尝试在`usb_console.c`文件中禁用静态断言。但请注意,这可能会导致在多核环境中出现不稳定的行为。要禁用静态断言,您可以将以下代码: ```c _Static_assert(SOC_CPU_CORES_NUM == 1, "usb_osglue_*_int is not multicore capable"); ``` 替换为: ```c // _Static_assert(SOC_CPU_CORES_NUM == 1, "usb_osglue_*_int is not multicore capable"); ``` 5. 重新编译您的项目,看看问题是否得到解决。 请注意,这些解决方案可能不适用于所有情况。如果您仍然遇到问题,请考虑在ESP-IDF的GitHub仓库中查找相关问题或提交一个新的issue,以便开发团队能够提供更具体的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
1108 浏览 1 评论
574浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
460浏览 5评论
461浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 12:33 , Processed in 0.680495 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号