stm32移植u8g2库内存不足解决办法

news2024/9/29 19:26:28

1.现象

跟着视频教程移植完u8g2库到stm32f103c8t6后,进行编译,报了100多个空间不足的问题,如下图。

..\Output\Output.axf: Error: L6406E: No space in execution regions with .ANY selector matching u8g2_fonts.o(.constdata).
..\Output\Output.axf: Error: L6406E: No space in execution regions with .ANY selector matching u8g2_font.o(i.u8g2_font_decode_glyph).
..\Output\Output.axf: Error: L6406E: No space in execution regions with .ANY selector matching u8x8_d_ssd1306_128x64_noname.o(.constdata).
..\Output\Output.axf: Error: L6406E: No space in execution regions with .ANY selector matching stm32f10x_gpio.o(i.GPIO_Init).
..\Output\Output.axf: Error: L6406E: No space in execution regions with .ANY selector matching u8x8_d_ssd1306_128x64_noname.o(i.u8x8_d_ssd1306_sh1106_generic).
..\Output\Output.axf: Error: L6406E: No space in execution regions with .ANY selector matching u8g2_ll_hvline.o(i.u8g2_ll_hvline_vertical_top_lsb).
……

2.原因

直接打开u8g2的csrc移植程序的文件夹,将所有文件按照大小进行排列。如下图:
在这里插入图片描述
可以看到两个字库文件都特别大。然后打开这两个.c文件可知,每一个字库都是const定义的全局常量,这些在编译时会占用大量的内存。而我们常用的字库不过是那一两个,或者某几个特定的字库,所以需要对这两个字库进行瘦身(删除那些不常用的,保留一两个常用的)。

但需要注意,当我们以后需要使用其他字库时,就要将其从移植的源文件中添加进来。

3.解决方法

直接打开u8g2_fonts.c文件,暂时只保留了u8g2_font_inb24_mf和u8g2_font_wqy12_t_chinese1两个字库。文件大小直接变成52KB。如下图:在这里插入图片描述
在这里,再次进行编译,已经不会再报内存不足的错误了。另一个u8x8_fonts.c的修改方法也是大同小异的,由于没有内存不足的报错,我也没再去修改它了,可能以后再发生内存不足时我就要对它下手了。

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

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

相关文章

蓝天远控2023(VIP会员版)

蓝天远控2023(VIP会员版)下载地址:https://user.qzone.qq.com/512526231/main

【逆向】导入表注入

练手的exe链接 链接:https://pan.baidu.com/s/1_87QNHaZYlfY_5uwIRePUQ?pwd6gds 提取码:6gds 原理: 在动态链接库一章提到DllMain,这里再回顾一次 当dll被加载进4GB空间时,会调用一次DllMain(入口方法&…

在家制作电子相册一定需要的一款工具

​随着科技的发展,越来越多的人开始喜欢在家制作电子相册,记录自己的生活点滴。那么,如何在家制作电子相册呢? 一款好的工具是必不可少的。可以使用这款工具,轻松上手----FLBOOK在线制作电子杂志平台 1.打开FLBOOK在线…

手撕Vue-实现事件相关指令

经过上一篇文章的学习,实现了界面驱动数据更新,接下来实现一下其它相关的指令,比如事件相关的指令,v-on 这个指令的使用频率还是很高的,所以我们先来实现这个指令。 v-on 的作用是什么,是不是可以给某一个元…

SpringCloud复习:(3)LoadBalancerInterceptor

使用Ribbon时,execute方法会由RibbonLoadBalancerClient类来实现 它会调用重载的execute方法 getLoadBalancer默认会返回ZoneAwareLoadBalancer(基类是BaseLoadBalancer).此处调用的getServer方法就会根据负载均衡策略选择适当的服务器来为下一步的htt…

电脑缺失duilib.dll是什么情况,有什么办法可以解决duilib.dll缺失

在使用电脑时突然提示duilib.dll丢失,这是什么情况?有什么办法可以解决这个问题呢?今天就给大家分享几种解决duilib.dll丢失的办法,解决duilib.dll丢失的办法其实还是非常的简单的,来看看有什么办法可以解决duilib.dll…

使用Spring Boot限制在一分钟内某个IP只能访问10次

有些时候,为了防止我们上线的网站被攻击,或者被刷取流量,我们会对某一个ip进行限制处理,这篇文章,我们将通过Spring Boot编写一个小案例,来实现在一分钟内同一个IP只能访问10次,当然具体数值&am…

【Happy!1024】C++智能指针

🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 C/C专栏 🌙请不要相信胜利就像山坡上的蒲公英一样唾…

【计算摄像学】博资考

TOC 本博客将覆盖的内容: 数字相机(Digital Camera) 小孔成像模型(pinhole imaging model) 如下图所示,物体反射的光线射向四面八方,直接使用传感器无法直接得到物体形貌。 小孔成像模型在传…

Spring中AOP详解

目录 一、AOP的概念 二、AOP的底层实现原理 2.1 JDK的动态代理 2.1.1 invocationhandler接口 2.1.2 代理对象和原始类实现相同的接口 interfaces 2.1.3 类加载器ClassLoador 2.1.4 编码实现 2.2 Cglib动态代理 2.2.1 Cglib动态代理编码实现 三、AOP如何通过原始对象的id获取到代…

PCL入门1之点云读取及可视化

0 引言 本文主要记录在Ubuntu系统的PCL点云库安装过程,以及PCL点云读取和可视化的c代码示例。 1 PCL安装 本文是安装了pcl1.8大版本,可先下载 下载pcl 1.8.1 版本(点击Source code(zip) 先安装pcl1.8.1所需的依赖库&#xff1…

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】 1、概述2、实验环境3、 物品说明4、参考资料与自我总结5、实验过程1、创建目录2、克隆下载文件3、 拉取子目录安装和交叉编译工具链等其他工具4、添加环境变量6、将样例文件拷贝到桌面…

使用el-tree问题之清空勾数据不生效

一、问题场景描述 在做角色菜单按钮权限时,多数采用树结构勾选数据,这里使用了element中的el-tree。如下图: 1、我给角色1勾选了权限列表数据的前三行, 点击弹框的确定 2、紧接着点击角色2的权限按钮,给角色2分配修…

Lvs +keepalivede : 高可用集群

keepalived为Ivs应运而生的高可用服务。Ivs的调度器无法做高可用,于是keepalived这个软件。 实现的是调度器的高可用。 但是: keepalived不是专为Ivs集群服务的,也可以做其他代理服务器的高可用。 lvs的高可用集群:主调度器和备调度器&#…

[springboot源码分析]-Conditional

https://www.baeldung.com/spring-conditional-annotations Condition元数据 1 org.springframework.context.annotation.Conditional 1.1Conditional定义 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Documented public interface…

区块链技术在现代商业中的应用:打造透明与信任的新经济体系

区块链技术以其独特的不可篡改和去中心化特点,在全球范围内受到了广泛的关注和讨论。从金融、供应链管理到版权保护和身份验证,区块链技术正在逐步改变着传统商业运营模式,为企业和消费者带来更加透明、安全和高效的商业环境。本文将深入探讨…

计算机网络第一章笔记

b站深入浅出计算机网络 微课视频 第一章 概述 因特网概述 区别: 若干节点和链路互连形成网络若干网络通过路由器互连形成互连网(互联网)因特网是当今世界上最大的互联网 发展的三个阶段: 1969年,第一个分组交换网…

MQTT协议和边缘计算

1.基本概念 MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布、订阅信息传输协议。可以在不可靠的网络环境中进行扩展,适用于设备硬件存储空间或网络带宽有限的场景。使用MQTT协议,消息发送者与接收者不受时间和空间的限制…

【AI视野·今日CV 计算机视觉论文速览 第273期】Mon, 23 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Mon, 23 Oct 2023 Totally 73 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Using Human-like Mechanism to Weaken Effect of Pre-training Weight Bias in Face-Recognition Convolutional Neural N…

力扣每日一题62:不同路径

题目描述: 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1: 输入:m 3, n 7 输出:28 示例 2&#xff…