[牛人杂谈] 新唐M051的硬件除法器

[复制链接]
4362|35
 楼主| dongnanxibei 发表于 2017-2-20 20:28 | 显示全部楼层 |阅读模式
有了硬件除法器,在计算除法的时候省了好多代码
硬件除法器(HDIV) (只有M05xxDN/DE)  

 楼主| dongnanxibei 发表于 2017-2-20 20:29 | 显示全部楼层
硬件除法器 (HDIV) 用来提高应用程序的效率。硬件除法器是一个有符号,整数除法器,提供商和余数输出。硬件除法器只有M05xxDN/DE才支持.
特性
 有符号 (2的补码) 整数计算
 32-bit 被除数, 16位除数计算能力
 32-bit 商和 32-bit 余数输出 (16-bit 余数带符号扩展到32位)
 除0警告标志
 每次计算花6 个HCLK 时钟周期
 写除数触发计算
 当读商和余数的时候自动等待计算完成
 楼主| dongnanxibei 发表于 2017-2-20 20:30 | 显示全部楼层
在使用硬件除法器之前,硬件除法器的时钟必须先使能。通过AHBCLK[4] 将HDIV_EN设为1使能硬件除法器 。
为了使用硬件除法器,需要先填被除数,然后再填除数,写除数之后硬件除法器将自动开始计算。
计算结果包括商和余数可以从DIVQUO 和 DIVREM 寄存器读到。如果在硬件除法器计算完成之
前, CPU 读 DIVQUO 或者 DIVREM, CPU将等待直到硬件除法器完成计算。因而,无需软件延
迟, CPU 除法硬件除法器之后总是可以得到有效的结果。
如果除数是0, DIVSTS 寄存器的DIV0标志将被置位。
被除数是32-bit 有符号整数,被除数是16-bit 有符号数。商是32-bit 有符号整数,余数是16位有符
号整数.
 楼主| dongnanxibei 发表于 2017-2-20 20:30 | 显示全部楼层
下图显示了硬件除法器的操作流程。为了计算X / Y, CPU 需要写 X 到 被除数寄存器DIVIDEND,
然后写 Y 到除数寄存器 DIVISOR。写被除数寄存器之后, CPU 读DIVQUO 和 DIVREM 寄存器可
以得到计算结果
1.png


zhuomuniao110 发表于 2017-2-20 20:36 | 显示全部楼层
就是如果要计算这个,需要定义个函数使用这些寄存器来操作。
zhuomuniao110 发表于 2017-2-20 20:38 | 显示全部楼层
如果能提供个例子就更好懂了。
捉虫天师 发表于 2017-2-20 20:52 | 显示全部楼层
除法器如果能在计算除法的时候自动调用就方便了。
天灵灵地灵灵 发表于 2017-2-20 20:57 | 显示全部楼层

在使用硬件除法器之前,硬件除法器的时钟必须先使能。从这来看,是需要自己通过函数调用这些寄存器的。要不然不会自动帮你算。
zhuotuzi 发表于 2017-2-20 21:01 | 显示全部楼层
虽然同样是M051,但是也分不同的配置,这也看的出这个定位是不同的。
戈卫东 发表于 2017-2-20 21:18 | 显示全部楼层
新唐一个型号下边会出现无数个互不兼容的产品。。。。。。。。
734774645 发表于 2017-2-20 22:34 | 显示全部楼层
戈卫东 发表于 2017-2-20 21:18
新唐一个型号下边会出现无数个互不兼容的产品。。。。。。。。

就这点唯一不爽,如果用库函数做,必须认真读每个函数原型的说明。
eydj2008 发表于 2017-2-21 11:09 | 显示全部楼层
做个除法,就不能自动调用硬件吗?
 楼主| dongnanxibei 发表于 2017-2-22 12:46 | 显示全部楼层
eydj2008 发表于 2017-2-21 11:09
做个除法,就不能自动调用硬件吗?

应该不行,需要自己写个函数来操作这个除法器。
iwqt1983 发表于 2017-2-22 13:18 | 显示全部楼层
现在新出的NUC029LAN也有硬件除法器的,软件,硬件都兼容M0516,听说价格也更便宜。
 楼主| dongnanxibei 发表于 2017-2-22 13:19 | 显示全部楼层
iwqt1983 发表于 2017-2-22 13:18
现在新出的NUC029LAN也有硬件除法器的,软件,硬件都兼容M0516,听说价格也更便宜。 ...

是的,新唐的一般都不是很贵。
iwqt1983 发表于 2017-2-22 14:48 | 显示全部楼层
dongnanxibei 发表于 2017-2-22 13:19
是的,新唐的一般都不是很贵。

是的,新唐 的 MCU很超值,工业上应用很好,抗干扰能力强,比STM的好不少。
Howard16 发表于 2017-2-23 09:49 | 显示全部楼层
M4核心的芯片在核心內有硬件除法器,就不需要調用函數去處理除法
M051的硬件除法器屬於周邊功能,需要調用函數去操作周邊寄存器
iwqt1983 发表于 2017-3-11 11:27 | 显示全部楼层
NUC029LAN也带硬件除法器,是用来代替M0516的
598330983 发表于 2017-3-11 12:07 | 显示全部楼层
新唐的产品就是性价比高,性能超越STM32,价格便宜的很。
gejigeji521 发表于 2017-3-12 14:38 | 显示全部楼层
谁有用过这个,分享下经验啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

3848

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部