15、微控制器优化C++编程指南

微控制器优化C++编程指南

1. 微控制器编程的性能优化

在微控制器编程中,性能和代码大小的差异十分显著。例如,在进行相同的时钟递增操作时,中断例程的总工作量可能会大幅增加。为避免这种隐藏的性能损失,应避免在中断中使用复杂代码,特别是调用非内联的外部函数,这样能最小化中断帧,节省宝贵的CPU周期。

2. 使用自定义内存管理

中小规模的微控制器可能只有很小的堆用于动态内存分配,甚至根本没有堆。在运行时使用 new delete 操作符,可能会迅速耗尽可用的堆内存,或者导致内存碎片化,使其变得不可用且不可预测。此外,全局 new delete 操作符的标准实现可能会链接C++库或其他代码中的不必要目标代码。

以下是一个简单的内存分配和释放示例:

// chapter06_16-001_operator_new.cpp
#include <algorithm>
#include <cstdint>
#include <memory>

std::uint8_t* local_buffer { nullptr };

void do_something()
{
    // Allocate 32 bytes for local_buffer
    // using global operator new.
    // This allocation might be problematic.
    local_buffe
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值