资源受限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、逻辑或 …...

【反射】Class类
Class类中包含了类定义的详细信息,可以使用Class类中提供的方法来获取,下面我们先获取Class对象,再介绍Class类中提供的获取类信息的方法。 一、准备工作 在src/test/java目录的cn.horse.reflect.entity包下新建BaseEntity类、UserInfoEnti…...

PyQt 问题记录
1.现成的组件不一定线程安全,(包括且不限于数据的修改竞争,和一些组件的崩溃 ) 对于PyQt 的线程使用,可能还需要更谨慎些 保存逻辑 QuestionBox("保存/Save")def Save(self):okFlagFalseerrFlagFalseWriteCmd{}for it in self.Mode…...

云安全—责任共担
0x00 前言 云安全的职责范围实际上一直遵循的是,谁提供谁负责,如果交付给云消费者的时候,交付者使用过程中就要自行负责,也就是我们经常遇到的配置不当等问题,在三层服务模式中,责任互相嵌套,最…...

使用Vscode终端设置window环境变量设置不上
问题描述 在Vscode中打开了一个终端,然后输入 set ENVprod, 但是我使用node 的proces.env.ENV并没有获取到 问题原因 可能是Vscode终端的问题,可以通过电脑自带的CMD去设置环境变量,通过echo查看,发现是没有问题的。...

【微信小程序】自定义组件布局会议OA其他页面(附源码)
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯Ἲ…...

如何使用 MiniGPT-v2
MiniGPT-v2 是一个基于视觉语言模型(LLM)的多任务学习系统。它可以用于各种视觉语言任务,包括图像描述、图像识别、图像-文本对话等。 本文将介绍如何使用 MiniGPT-v2。 MiniGPT-v2 提供了一个简单的在线演示,可以用于测试模型。…...

python -pandas -处理excel合并单元格问题
对于合并的单元格,不进行处理情况下,会默认输出nan问题 解决方法: class A(object):def __init__(self, xlsx_file_path, sheet_index):self.xlsx_file FileDataProcesser.read_excel(xlsx_file_path, sheet_index)self.sheet_data self.…...

KT6368A的封装怎么画 原理图怎么画 资料怎么看 怎么下载呢
一、简介 KT6368A的封装怎么画 原理图怎么画 资料怎么看 怎么下载呢 也有好几个客户问我们这样的问题,实在是太难了 但是没办法,客户就是上帝,也只能选择认真的回答, 这里对这类型的问题进行统一精细化回复,高手请…...

Linux杀掉僵尸进程方法
说明: 一般在使用pytorch训练网络模型时,可能会不正确的终端训练,导致进程僵尸,GPU依然被占用的情况。 解决办法: 查看进程的ID及其父进程ID指令: ps -ef | grep defunct | more假设输出如下:…...

uniapp(uncloud) 使用生态开发接口详情1(创建项目)
开发接口对比时间: 用java开发接口周期太长, 大概5-6个月左右 用php 开发接口周期同样太长, 大概3-4个月左右 用node.js 开发接口周期相对短一点, 大概1-2个月左右 用uniapp 开发接口, 可以不到 1-2周的时间 这里我使用 uniapp 开发接口, 废话不多说了,直接开干 HBuilder官网(…...