专栏名称: 21ic电子网
即时传播最新电子科技信息,汇聚业界精英精彩视点。
今天看啥  ›  专栏  ›  21ic电子网

为什么插入了几条NOP指令,MCU的功耗就变了?

21ic电子网  · 公众号  · 半导体  · 2024-10-21 16:53

文章预览

我最近在测试一个M0+ MCU的运行功耗,测试代码采用如下最简单的方式,即main函数里只跑一个while(1)空循环,测试出来的电流是1.11mA,使用的IDE为KEIL MDK,优化等级为0 当我在while(1)的前面插入3条NOP指令,测出来的电流却变成了0.89mA。 这是怎么回事?是测量误差,还是事实就是如此?这可是足足差了200多uA啊,为此我又做了如下几个对比实验。 测试条件 功耗 优化等级0,while(1)前不加NOP 1.11mA 优化等级0,while(1)前插入1个NOP 0.90mA 优化等级0,while(1)前插入2个NOP 1.11mA 优化等级0,while(1)前插入3个NOP 0.89mA 优化等级0,while(1)前插入4个NOP 1.12mA 优化等级0,while(1)前插入5个NOP 0.91mA 优化等级0,while(1)前插入6个NOP 1.11mA 优化等级0,while(1)前插入7个NOP 0.88mA 优化等级0,while(1)前插入8个NOP 1.11mA 上述实验可以看到明显的规律,只要while(1)前插入的NOP是奇数时功耗就相对 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览