微控制器优化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
超级会员免费看
订阅专栏 解锁全文
1116

被折叠的 条评论
为什么被折叠?



