问题一:bootloader烧录固件失败,需要改 menuconfig

编译的时候终端报错:

问题核心是:

bootloader/bootloader.bin requires chip revision in range [v3.1 - v3.99]
(this chip is revision v1.3)

编译出来的 bootloader 只允许在芯片版本 ≥3.1 上运行,但ESP32-P4 实际芯片版本是 v1.3所以 esptool 阻止你烧录,问题解决的方法也很简单,我们打开espidf的menuconfig

(下一个问题也是一样)

(我们找到这个位置,路径顺序是(Top) → Component config → Hardware Settings → Chip revision )

然后我们把[*] Select ESP32-P4 revisions <3.0 (No >=3.x Support) 这个选项勾选上就好了(实在找不到的话可以使用“/”来进入搜索模式搜索相关关键字就好了)另外需要注意的是在设置完成后按s进行保存和q进行推出,并且要清除之前的build项目并进行重现编译构建。

问题二:PSRAM开启问题

因为idf在我这边是默认不开启psram所以无论是在进行lvgl模型部署或者是图形颜色测试都会卡死报错(另外笔者建议各位在进行代码调试时候无论是使用库文件或者内部设置都建议把看门狗程序关闭下使用ESP_ERROR_CHECKESP_LOGE进行调试可以看出程序卡在哪一步,当然你熟练的话使用自带的debug也可以),这个问题就是DMA内存被限制在内部RAM,没有使用外部PSRAM,跟上面的情况一样我们在menuconfig开启一下就好了,正常来说板子自带外部32或者16mb可以满足正常使用。

(开启外部psram)

还有就是PSRAM 适合存储大数据(framebuffer),但不适合高速 DMA 直接读取。

问题三:中断程序问题

这个问题是笔者在驱动屏幕时候遇到的

E (4714) intr_alloc: No free interrupt inputs for DSI_BRIDGE interrupt (flags 0xE)
E (4714) lcd.dsi: esp_lcd_new_panel_dpi(292): allocate DSI Bridge interrupt failed
E (4714) jd9366: esp_lcd_new_panel_jd9366(89): create MIPI DPI panel failed

然后笔者询问ai,ai又在胡说八道了

在ESP32-P4 的中断资源是硬件固定的,包括:中断数量;每个优先级的通道数;可分配的输入源。 sdkconfig 只能调策略,不能“扩容,所以如果你出现差不多的问题大概你是重复初始化了,笔者就是在主程序里面找到我lcd二次在lvg_config文件里面初始化了。

总结:

另外说一句的是esp32p4c5是一块双芯板通过内部的usart来进行,p4跟c5这两块芯片最好把项目分开来烧录最好,除此之外如果笔者后续在进行调试开发遇到的问题都会写到这篇文章里面,希望我所写的内容对诸位有所帮助。

另外给出这块板子官方的一个项目github链接:https://github.com/wireless-tag-com/WTDKP4C5-S1.git

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐