首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSP430指令周期

MSP430指令周期
EN

Stack Overflow用户
提问于 2015-02-21 02:00:34
回答 2查看 822关注 0票数 1

嗨,我正在使用contiki os开发Tmote sky motes (MSP430微处理器)。我想知道在我的编程(软件)中做乘法运算时使用的指令周期数。

谢谢你,Avijit

EN

回答 2

Stack Overflow用户

发布于 2015-02-24 16:58:17

msp430是16位系统,因此不直接支持32位值。32位运算通常被翻译成16位运算序列的汇编代码。

8位和16位操作的执行时间可以在TI application report "The MSP430Hardware Multiplier"中找到

代码语言:javascript
复制
Table 4. CPU Cycles Needed With Different Multiplication Modes

OPERATION: Unsigned Multiply (MPY)
SOFTWARE LOOP: 139...171
HARDWARE MPYer: 8
SPEED INCREASE: 17.4...21.4

OPERATION: Unsigned multiply-and-accumulate (MAC)
SOFTWARE LOOP: 137...169
HARDWARE MPYer: 8
SPEED INCREASE: 17.1...21.1

OPERATION: Signed Multiply (MPYS)
SOFTWARE LOOP: 145...179
HARDWARE MPYer: 8
SPEED INCREASE: 18.1...22.4

OPERATION: Signed multiply-and-accumulate (MAC)
SOFTWARE LOOP: 143...177
HARDWARE MPYer: 17
SPEED INCREASE: 8.4...10.4

HW乘法器应该在默认编译设置下处于活动状态,但请使用msp430-objdump检查生成的目标文件以确保。

票数 0
EN

Stack Overflow用户

发布于 2015-03-05 06:21:27

您可以使用Michael Kohn的naken_asm来分解Intel十六进制或ELF文件,它将计算每条指令的周期计数。我在过去使用过它,周期计数器对于CPU (比如在你的Tmote中)是可以的,但在CPUX中并不完全支持。

您可以从命令行调用它,就像这样:

代码语言:javascript
复制
naken_util -disasm <infile>

其中是十六进制或ELF文件的名称。默认的处理器是MSP430,但是您需要来自编译器的汇编清单,以便能够将原始代码与包含周期计数的反汇编代码进行匹配。

另一种选择是使用MSPDebug的tracer选项,它可以跟踪正在运行的软件并提供最新的指令周期计数。但是,我从未使用过它,所以无法提供示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28635340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档