这篇写给立创吴总,是节前答应他配合git代码的说明;也给所有对小智感兴趣的小伙伴。
请多提意见,让这份文档更有价值 -
第一当然是拉取源码 -
git clone https://github.com/78/xiaozhi-esp32.git
完成后,先查看固件中实际的分区表 -

然后对照着看项目根目录的excel中的分区表partitions_16M,发现格局小了 -

在立创实战派上,你有16M Bytes的内存(0x0100 0000)还不用完,这么扣扣索索的干嘛呢? 这里的0x0038 0000相当于是,3.5MBytes;如果算最终的存储占用,是0x0048 0000+0x0038 0000,等于8MBytes;这个应该是给小一点存储的开发板用的,但是名字写错了。那我们直接参考固件,把容量拉满吧(虽然也只用了13MBytes还不到一点逼死强迫症,但为了兼容官方忍了) -

然后menuconfig中选择自定义分区表,并给出文件名 -

例行clean一下,最好fullclean一下,避免git下来的文件夹中有不需要的玩意,茫茫多的莫名其妙多多编译错误与此相关 -


当然,如果用vsc插件,并且刚打开文件夹的话,记得重新选择一下器件型号,这实际上是重新设施一下编译环境,避免后面编译参数莫名出错;也可以用命令。
但是这个操作,会造成sdkconfig被覆盖(自动备份到sdkconfig.old),所以如果你不是用的默认的sdkconfig,还需要恢复一下这个文件。
其他menuconfig设置 -
flash:

开发板:

RAM:



上面的需要修改,其他设置简单看了一下,应该都是默认,如果后面发现有遗漏的再补上。
需增加启用LV_FONT_FMT_TXT_LARGE支持,否则海量报错 -

需增加启用LV_USE_IMGFONT,否则报错 -

修改编译选项,增加异常处理,然后别忘了fullclean再编译 -

解决i2c驱动兼容问题,否则i2c driver NG 或者 i2c driver not installed - 这里的方法是兼容,其实彻底的方法是修改i2c驱动的文件 i2c -> i2c_maser,API使用2.0替代1.0,因为官方在6.0版本会放弃对老版本兼容,不过这里偷个懒先 -


使用了64位的字体,相应的增加lvgl的内存使用,并且对齐内存,同时使用RTOS的malloc函数分配内存 -



比想象的花了更多的时间,终于编译完成拉!


效果 -

完结撒花~后续在评论上git/gitee,还有立创开发板的官方链接。为爱发电,有问题的小伙伴可以留言,不过不确定什么时间上线看评论;所以还是建议去官方提issue。

看都看到这里了,小伙伴给三连一下呗!