资源受限MCU Flash空间占用优化
资源受限MCU Flash空间占用优化步骤:
- 避免重复功能,排查软件工程中,重复功能的代码片段,抽象出来,重新进行封装;
- 减少内联函数inline,内联函数过大且过多的调用无疑会增加代码量,占用过多的flash,如果代码运行速度要求不高类似这样的内联函数,尽量改成函数调用;
- 开启最高优化,优化时应倾向于速度和代码量的平衡,不能一味地缩小代码量,因为这很可能会出现意想不到的问题,特殊源文件也可开局部优化功能;
- 减少运行库调用,编译器自带的运行库一般都过大而复杂,例如常用的printf调试打印,将会占用大量flash空间,因此设计代码时,应通过宏配置可禁掉类似printf的调试代码或直接通过UART发送字符功能打印调试信息;
- 自行实现标准库函数,简单的库功能如:memcpy、memset等功能自行实现也会减少标准库调用而导致占用过多的flash空间;
- 使用MCU本身的硬件特性,如果支持,尽量使用MCU的硬件乘法器或者浮点运算单元,这样会比直接进行乘法或者浮点运算运行减少很多代码量;
- 定义恰当的变量类型:C编译器支持变量的类有char、int、long等,定义恰当的变量类型,可以有效的减少代码和数据的长度,同时也能提高运行效率。
相关文章:
资源受限MCU Flash空间占用优化
资源受限MCU Flash空间占用优化步骤: 避免重复功能,排查软件工程中,重复功能的代码片段,抽象出来,重新进行封装;减少内联函数inline,内联函数过大且过多的调用无疑会增加代码量,占用…...

冰蝎默认加密的流量解密
破解冰蝎的默认加密 流量包分析 上传的冰蝎流量包 POST /web-zh/DVWA/vulnerabilities/upload/ HTTP/1.1 Host: 192.168.197.111 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0 Accept: text/html,application/xhtmlxml,a…...

C#字符串操作:拼接、截取、分割等高效处理方法
目录 1.前言2. 字符串拼接 (String Concatenation)3. 字符串截取 (String Substring)4. 字符串分割 (String Split)5. 字符串替换 (String Replace)6. 字符串大小写转换 (String Case Conversion)7. 结论 1.前言 在C#编程中,字符串操作是不可避免的一部分。无论是拼…...

垃圾邮件(短信)分类算法实现 机器学习 深度学习 计算机竞赛
文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 垃圾邮件(短信)分类算…...

每日一题 1726. 同积元组(中等,计数)
直接统计数组中的数字两两组合可以得到的乘积求将相同乘积的组合再两两组合的数量最后由于abcd的值可以互换,每一个组合通过呼唤位置可以得到8种不同的组合,所以最后乘以8 class Solution:def tupleSameProduct(self, nums: List[int]) -> int:d de…...
LeetCode 2894. 分类求和并作差【数学,容斥原理】1140
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

100天掌握网络安全知识点!
1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…...

【ArcGIS绘图系列1】在ArcGIS中制作柱状图与饼状图
成图展示 图形出处:J2023-Assessment of agricultural drought based on multi-source remote sensing data in a major grain producing area of Northwest China 实现步骤 第一步 查看数据信息 数据输入到ArcGIS中:包含数据表和shp文件 1、shp文件…...
【c++】跟webrtc学std array 1: 混音的多维数组
对于固定大小的数组,非常适合用std的array 实现。静态赋初值 static constexpr std::array<int, 5> kInputValues = {0, 1, 2, 1, 0}...

App出海起量难?传参安装打开获客增长新途径
近年来,在App出海潮越发热烈的背景下,如何适应海外市场并实现“用户增长”与“提高转化”,已成为出海团队需要面临的重大挑战之一。 如何在海外市场短时间内快速起量?这个问题难倒了不少出海创业者,毕竟目前互联网环境…...

当AI遇上3D建模:一场创意与技术的完美碰撞!
在这个充满无限可能的时代,科技的发展日新月异,让我们见证了一场创意与技术的完美碰撞——AI与3D建模的结合。这种结合为我们开辟了一个全新的领域,让我们在虚拟世界中自由挥洒创意,为现实世界创造更多的可能性。 3D建模AI生成是…...
工作中的有效沟通
工作中的有效沟通 发现问题并解决问题发现问题解决问题 发现问题并解决问题 发现问题 清楚问题痛点。 注意与三方沟通时,一方沟通不明确时,则更需要想办法. 引导或者特别注意语句限制词汇,弄清楚意思。比如: 信息科要求5分钟无…...

1.集合框架
一、JDK版本之间的关系 1.1、Oracle JDK与OpenJDK的区别 1.Oracle JDK是基于OpenJDK源代码构建的,因此Oracle JDK和OpenJDK之间没有重大的技术差异。 2.Oracle JDK将更多地关注稳定性,它重视更多的企业级用户,而OpenJDK经常发布以支持其他性能…...

2023年下半年软考考试重磅消息
重磅消息一:科目连考,分批考试 2023年下半年软考考试,采取科目连考、分批次考试的方式。 什么是科目连考? 连考就是第一个科目作答结束交卷完成后,自动进入第二个科目的考试,第一个科目剩余的时长可为第二…...

Spring Boot如何优雅实现动态灵活可配置的高性能数据脱敏功能
1.背景 在当下互联网高速发展的时代下,涉及到用户的隐私数据安全越发重要,一旦泄露将造成不可估量的后果。所以现在的业务系统开发中都会对用户隐私数据加密之后存储落库,同时还要求后端返回数据给前台之前进行数据脱敏。所谓脱敏处理其实就…...

九月 Web3 游戏报告:数量增长,巨头入场,用户获取和留存仍存挑战
作者: stellafootprint.network 9 月份,比特币价格窄幅波动,小幅上涨 3.7%。Web3 游戏行业正在增长,但月活跃用户超过 1,000 人的游戏仍不足 10%。不同公链上的游戏分布相对稳定,其中 BNB 以 30.9% 的份额领先。 随着 Web3 游戏…...

Scala语言入门
学习了这么久让我们来回顾一下之前的内容吧 Hadoop生态体系知识串讲 Scala编程语言 一、概述 http://scala-lang.org 专门为计算而生的语言,Scala将(Java后者C)面向对象设计和函数式编程结合在一起的简洁的高级编程语言。而函数式编程强调的是通过传递算子&…...

MyBatisPlus-02
一 查询条件的三种 1.按条件查询 //方式一:按条件查询QueryWrapper qw new QueryWrapper();qw.lt("age",18);List<User> userList userDao.selectList(qw);System.out.println(userList); 2.lambda格式按条件查询 //方式二:lambda格…...

vscode中快速生成vue3模板
步骤:设置 -> 用户代码片段 -> vue.json(没有vue.json,选vue也可)-> 定义自己所需的代码段 代码段 如下, {"Print to console": {"prefix": "vue3", //键入该值,按tab…...

Liunx C运算符
一、运算符 (一)算数运算符 1、float和double不能进行取余操作。 (二)关系运算符 1、逻辑非 2、逻辑与 例子: if((a-1)<b&&b) 如果为真则自增,为假不自增 3、逻辑或 …...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...