为了实现针对 PMM32勘误表的权变措施、我想知道
在中旋转时、我的 MSP430FR4133在 AM 中消耗的电流为16MHz
不带任何中断或其他"干扰"的无限循环。
因此、我删除了初始化部分和之后通常出现的"eint"
并检查电流。 它看起来是1.15mA
对于 AM 下16MHz 的 FR4133来说、完全可以从高速缓存运行。 然后是 I
更改了我的初始化代码中一些没有的小东西
对电流消耗的影响。 但电源电流突然跳跃
1.35mA。
经过一些搜索后、结果表明电流消耗取决于位置
主循环正在运行(在添加或时、它实际上已移动了一个位
删除初始化部分中的代码)。 主循环就是简单的
永久: JMP 永远
如果它位于模8地址(0x??6 oder 0x???E)之前的2个字节、则它
消耗1.35mA。 在其他每个地址上、我们将具有1.15mA 的电流。 这意味着、如果
我们假设使用以下(gas)代码
平衡-非平衡变压器 8、0x4303 NOP NOP NOP 永久 : JMP 永远
它将消耗1.35mA 的电流。 当移除任何数量的 nops 时、我们得到1.15mA。
首先要想到的是、JMP 位于 A 的最后一个字上
缓存行和预取器从 FRAM 取接下来的4个字。 但是、正如我们所做的那样
具有一个2路设置关联缓存、每个缓存具有4行、每行64位、应该是
可缓存两个连续的8字节对齐的存储器块、具有8字节
大小。
让事情变得更有趣:代码
平衡-非平衡变压器 8、0x4303 NOP NOP NOP 永久 : JMP 永远 .word 0x0000
消耗1.36mA。 但这个
平衡-非平衡变压器 8、0x4303 NOP NOP NOP 永久 : JMP 永远 .word 0xFFFF
仅为1.28。 最后但同样重要的是:
平衡-非平衡变压器 8、0x4303 NOP NOP NOP 永久 : JMP Forever1 forever1: JMP 永远
使用1.24mA (与后面的情况无关)。
有什么解释吗?
