打印

STM32内部硬件乘法器

[复制链接]
12999|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuzhujun_|  楼主 | 2008-10-19 18:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32内部是带有硬件乘法器的,那么如果我在C语言描述一个算式X*Y,那么编译器会调用内部的硬件乘法器来计算这个算式吗?我看了一下C转汇编,好像不可以的,那么一定要自己操纵乘法器了??
沙发
black_wolf| | 2008-10-19 18:35 | 只看该作者

有详细的描述吗?

没仔细看过,应该能调用吧,如果不能的话那编译器太弱智了!

楼主能给个例子吗?用什么编译器?

使用特权

评论回复
板凳
chuzhujun_|  楼主 | 2008-10-19 20:00 | 只看该作者

我看了好像真的不可以

我就是在IAR4.42中编译的,随便写一个乘法计算式,然后再到汇编窗口中去查看,没有发现有调用乘法器之类的语句,好像还是直接用汇编通过那种累加的笨方法算的!

使用特权

评论回复
地板
again_gyf| | 2008-10-19 20:52 | 只看该作者

没有仔细研究不要瞎说!

IAR连这点优化的能力都没吗?怎么可能

使用特权

评论回复
5
lianshumou| | 2008-10-20 00:08 | 只看该作者

不很明显调用了么,那个mul指令就是乘法!

使用特权

评论回复
6
chuzhujun_|  楼主 | 2008-10-20 09:11 | 只看该作者

用了MUL不表示就调用了硬件乘法器

我后来又仔细看了看,用了MUL不表示就调用了硬件乘法器的啊!51单片机是不是也有硬件乘法器啊?没有吧?但是也有乘法指令的,430单片机在IAR中如果不用专门的操作硬件乘法器的指令,比如设置设置两个乘数的字节数,然后吧乘数送达乘法器,然后再到结果寄存器中去取出结果,显然,STM32也没有这么做啊?所以我感觉要是利用硬件乘法器的话,还是得需要操纵硬件乘法器模块才能使用的,而不是简单的两个数相乘之后IAR会帮我们去操作硬件乘法器的!

使用特权

评论回复
7
ijk| | 2008-10-20 09:58 | 只看该作者

MUL和硬件乘法器

  在cortexM3中,把硬件乘法器整合到内核里面了,并通过指令体现出来;而430是不一样的,在430中硬件乘法器是单独的模块,跟内核没有什么关系。把cortexM3的硬件乘法器想象成430那样,完全是误解。

使用特权

评论回复
8
chuzhujun_|  楼主 | 2008-10-20 10:01 | 只看该作者

楼上一席话,胜读十年书啊

楼上一席话,胜读十年书啊,我看样子是430用的太习惯了,所以会由此一想,楼上高见,看样子以后得跟你当菜鸟了,还望多喂一喂!再次谢过!

使用特权

评论回复
9
香水城| | 2008-10-20 13:04 | 只看该作者

STM32硬件除法器和乘法器是通过特定指令访问

这里有一个关于这个问题的旧帖:STM32硬件除法器和乘法器是通过特定指令访问

使用特权

评论回复
10
usecoolful| | 2008-10-21 11:08 | 只看该作者

借鉴下PC的CPU的处理方式

如果硬件乘法器是CPU核的一部分,那么相关的指令就是用硬件乘法器去执行的,但是对于用户是透明的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

55

帖子

0

粉丝