【LC实战派】小智固件编译

这篇写给立创吴总,是节前答应他配合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。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/83188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有没有 MariaDB 5.5.56 对应 MySQL CONNECTION_CONTROL 插件

有没有 MariaDB 对应 MySQL CONNECTION_CONTROL 插件 背景 写这篇文章的目的是因为昨晚半夜突然被call起来,有一套系统的mysql数据库启动失败了。尝试了重启服务器也不行。让我协助排查一下问题出在哪。 分析过程 一开始拿到服务器IP地址,就去数据库…

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…

LLMs 系列科普文(11)

目前我们已经介绍了大语言模型训练的两个主要阶段。第一阶段被称为预训练阶段,主要是基于互联网文档进行训练。当你用互联网文档训练一个语言模型时,得到的就是所谓的 base 模型,它本质上就是一个互联网文档模拟器,我们发现这是个…

深度学习环境配置指南:基于Anaconda与PyCharm的全流程操作

一、环境搭建前的准备 1. 查看基础环境位置 conda env list 操作说明:通过该命令确认Anaconda默认环境(base)所在磁盘路径(如D盘),后续操作需跳转至该磁盘根目录。 二、创建与激活独立虚拟环境 1. 创…

【2D与3D SLAM中的扫描匹配算法全面解析】

引言 扫描匹配(Scan Matching)是同步定位与地图构建(SLAM)系统中的核心组件,它通过对齐连续的传感器观测数据来估计机器人的运动。本文将深入探讨2D和3D SLAM中的各种扫描匹配算法,包括数学原理、实现细节以及实际应用中的性能对比,特别关注…

力扣160.相交链表

题目描述 难度:简单 示例 思路 使用双指针 使用指针分别指向两个不同的链表进行比较 解题方法 1.首先进行非空判断 2.初始化指针分别指向两个链表 3.遍历链表 while (pA ! pB): 当pA和pB不相等时,继续循环。如果pA和pB相等,说明找…

本地项目push到git

cd /home/user/project git init 添加远程仓库地址 git remote add origin https://github.com/user/repo.git 创建并切换到新分支 git checkout -b swift 添加文件到暂存区 git add . git commit -m “swift训练评测” git push -u origin swift —force #首次 git push …

uni-app学习笔记二十九--数据缓存

uni.setStorageSync(KEY,DATA) 将 data 存储在本地缓存中指定的 key 中&#xff0c;如果有多个key相同&#xff0c;下面的会覆盖掉原上面的该 key 对应的内容&#xff0c;这是一个同步接口。数据可以是字符串&#xff0c;可以是数组。 <script setup>uni.setStorageSyn…

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…

NFC碰碰卡发视频源码搭建与写卡功能开发实践

在信息快速传播的时代&#xff0c;便捷的数据交互方式成为用户的迫切需求。“碰一碰发视频” 结合写卡功能&#xff0c;为视频分享提供了新颖高效的解决方案&#xff0c;在社交娱乐、商业推广等场景中展现出巨大潜力。本文将详细介绍碰一碰发视频源码搭建以及写卡功能开发的全过…

详解K8s 1.33原地扩缩容功能:原理、实践、局限与发展

你是否有过这样的经历&#xff1f; 精心配置了 Kubernetes 的 Pod&#xff0c;设置了“刚刚好”的 CPU 和内存&#xff08;至少你当时是这么想的&#xff09;&#xff0c;结果应用不是资源紧张喘不过气&#xff0c;就是像“双十一”抢购一样疯狂抢占资源。 过去&#xff0c;唯…

IOS 打包账号发布上传和IOS Xcode证书配置

xcode下载 https://developer.apple.com/download/all/ App发布 https://appstoreconnect.apple.com/ https://appstoreconnect.apple.com/teams/83ba877c-af24-4fa5-aaf2-e9b9b6066e82/apps/6473148620/testflight/groups/eb983352-b2e2-4c29-bbb7-071bf7287795 https://devel…

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…

Significant Location Change

一、Significant Location Change是什么 “Significant Location Change&#xff08;重大位置变化&#xff09;” 是苹果 iOS 系统中一项用于在应用未主动运行时&#xff0c;监测设备位置显著变化的功能。它主要通过基站、Wi-Fi 网络等信号来判断设备是否发生了有意义的位置移…

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…

基于cnn的通用图像分类项目

背景 项目上需要做一个图像分类的工程。本人希望这么一个工程可以帮助学习ai的新同学快速把代码跑起来&#xff0c;快速将自己的数据集投入到实战中&#xff01; 代码仓库地址&#xff1a;imageClassifier: 图片分类器 代码切到master分支&#xff0c;master分支是本地训练图…

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …

从OCR到Document Parsing,AI时代的非结构化数据处理发生了什么改变?

智能文档处理&#xff1a;非结构化数据提出的挑战 在这个时代的每一天&#xff0c;无论是个人处理账单&#xff0c;还是企业处理合同、保险单、发票、报告或成堆的简历&#xff0c;我们都深陷在海量的非结构化数据之中。这类数据不像整齐排列的数据库表格那样规整&#xff0c;…