10、微控制器优化编程技巧

微控制器优化编程的十大技巧

微控制器优化编程技巧

1. 何时使用汇编语言

汇编语言本质上是不可移植的,在 C++ 编程中应尽量避免使用。不过,在微控制器编程里,存在一些罕见情况需要用到汇编。一是因为汇编编程可能是完成当前编程任务的唯一途径;二是使用汇编能显著提升效率,比如对于频繁运行的时间关键序列,使用汇编就很有必要。

为了避免系统层和应用层受到不可移植性的影响,汇编代码应封装在软件架构的微控制器层中。对于只有几行的短汇编序列,可使用内联汇编,通过语言扩展将其直接集成到 C++ 编译器中。而对于超过 10 或 20 行的较长汇编序列,如扩展多任务调度器的部分代码,使用专门的汇编文件可能更合适。

GCC 的内联汇编语法使用特定于微控制器的汇编方言,用 GNU 汇编器(GAS)的语言表示。其他编译器也有类似的语言扩展,但语法可能不同。

内联汇编可方便地创建短内联函数,例如全局中断的启用和禁用、空操作等。示例代码如下:

namespace mcal
{
namespace irq
{
// Interrupt enable/disable.
inline void enable_all()
{ asm volatile ("sei"); }
inline void disable_all() { asm volatile ("cli"); }
}
}
namespace mcal
{
namespace cpu
{
// The no-operation.
inline void nop() { asm volatile ("nop"); }
}
}

调用部分或完全由汇编组成的 C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值