当前位置: 首页 > news >正文

安徽合肥网站建设河南seo排名

安徽合肥网站建设,河南seo排名,中小微企业查询平台,网址免费生成app前言 本系列基于复旦微FM33LC0系列单片机的DataSheet编写,旨在提供一些开发指南。 本文章及本系列其他文章将持续更新,本系列其它文章请跳转【复旦微FM33 MCU 外设开发指南】总集篇 本文章最后更新日期:2024/10/24 文章目录 前言用途工作流…

前言

本系列基于复旦微FM33LC0系列单片机的DataSheet编写,旨在提供一些开发指南。
本文章及本系列其他文章将持续更新,本系列其它文章请跳转【复旦微FM33 MCU 外设开发指南】总集篇

本文章最后更新日期:2024/10/24

文章目录

  • 前言
  • 用途
  • 工作流程
  • 寄存器
  • 耗时对比
  • 注意事项
    • 原子操作
    • 效率
    • 数据类型

用途

对于M0内核的MCU而言,其内核是没有除法指令的。
当语法中出现除法操作,是借助C语言函数库来完成除法操作的。这种操作比较耗时

FM33LC0配备有硬件除法器外设HDIV,用于帮助软件加速除法运算。

工作流程

在这里插入图片描述

寄存器

在这里插入图片描述
HDIV->END :32bit 有符号被除数
HDIV->SOR :16bit 有符号除数
HDIV->QUOT :32bit 有符号商
HDIV->REMD :16bit 有符号余数
HDIV->SR
在这里插入图片描述

耗时对比

FM33LC0的DataSheet写明,一次除法运算需要8个24MHz周期。

在48MHz的主频,编译器优化等级-O0的情况下:
C语言使用for循环进行100万次除法操作耗时4728ms,用硬件除法器耗时1044ms。
(由于使用了1ms的定时器中断计时,实际计算时间会比这个更短)

硬件除法器测试代码如下:

static uint32_t beginTime = 0, endTime = 0;	// 起始时间和结束时间
uint32_t x = 214748364;						// 被除数,必须加volatile,否则会被编译器优化
uint16_t y = 5635;							// 除数,必须加volatile,否则会被编译器优化
volatile uint32_t z = 0;					// 商,必须加volatile,否则会被编译器优化RCC->PCLKCR1 |= 0x1u << 9;		// 使能硬件除法器时钟
beginTime = GetTimingCounter();	// 开始计时for(uint32_t i = 0; i <1000000; i++)
{
#if 1/* 使用硬件除法器 */HDIV->END = x;				// 被除数HDIV->SOR = y;				// 除数while( HDIV->SR & 0x01 );	// 等待计算完成z = HDIV->QUOT;				// 商
#else/* 直接做除法运算 */z = x / y;
#endif
}endTime = GetTimingCounter();	// 结束计时

注意事项

原子操作

在使用硬件除法器时务必注意加入原子操作。

在使用HDIV时,需要先写入被除数寄存器HDIV->END,再写入除数寄存器HDIV->SOR,当写入除数寄存器后会自动开始运算。
如果模块A使用硬件除法器做除法,在写入被除数寄存器HDIV->END后,还没来得及写入除数寄存器HDIV->SOR,被一个高优先级的模块B抢占,而模块B也使用硬件除法器做除法,将导致:当程序返回到模块A时,HDIV->END寄存器的值其实是模块B的被除数,从而得到错误的结果。

效率

虽然操作硬件除法器比直接进行除法更加省时间,但平时我们都会将硬件除法器封装为一个单独的函数,在这种情况下:
1:函数中应当使用原子操作并操作硬件除法器,以防止运算过程被打断。在这种情况下,考虑到函数的调用时间、开关中断的时间,硬件除法器节省的时间优势会降低。
2:硬件除法器的HDIV->SR寄存器可以指示当前是否在运行过程中,但如果在填写HDIV->ENDHDIV->SOR寄存器后,使用while去一直查询该寄存器来判断是否运算完成是很耗费时间的。所以可以直接加入若干个__nop()。

数据类型

硬件除法器的数据寄存器数据类型都是有符号类型的,使用时请注意类型要匹配。


文章转载自:
http://coxcomb.Lbqt.cn
http://heresimach.Lbqt.cn
http://newground.Lbqt.cn
http://immunogenic.Lbqt.cn
http://tufty.Lbqt.cn
http://fio.Lbqt.cn
http://dekare.Lbqt.cn
http://frontage.Lbqt.cn
http://frenzy.Lbqt.cn
http://gunnysack.Lbqt.cn
http://shouting.Lbqt.cn
http://marline.Lbqt.cn
http://shensi.Lbqt.cn
http://saltimbanque.Lbqt.cn
http://authenticity.Lbqt.cn
http://ignoble.Lbqt.cn
http://sliminess.Lbqt.cn
http://partner.Lbqt.cn
http://spondee.Lbqt.cn
http://goldilocks.Lbqt.cn
http://serbia.Lbqt.cn
http://accadian.Lbqt.cn
http://pfeffernuss.Lbqt.cn
http://fadedly.Lbqt.cn
http://sastruga.Lbqt.cn
http://yore.Lbqt.cn
http://propyl.Lbqt.cn
http://nujiang.Lbqt.cn
http://kiplingesque.Lbqt.cn
http://ungrammatical.Lbqt.cn
http://caliduct.Lbqt.cn
http://souteneur.Lbqt.cn
http://splanchnopleure.Lbqt.cn
http://christingle.Lbqt.cn
http://lordship.Lbqt.cn
http://http.Lbqt.cn
http://spitfire.Lbqt.cn
http://goatskin.Lbqt.cn
http://lie.Lbqt.cn
http://rhinologist.Lbqt.cn
http://gypsography.Lbqt.cn
http://autoinoculation.Lbqt.cn
http://avens.Lbqt.cn
http://nfs.Lbqt.cn
http://bunker.Lbqt.cn
http://outwent.Lbqt.cn
http://klutz.Lbqt.cn
http://eurocurrency.Lbqt.cn
http://ravelment.Lbqt.cn
http://formidably.Lbqt.cn
http://antipyretic.Lbqt.cn
http://agent.Lbqt.cn
http://abask.Lbqt.cn
http://causalgic.Lbqt.cn
http://police.Lbqt.cn
http://collectress.Lbqt.cn
http://dexiotropic.Lbqt.cn
http://levelling.Lbqt.cn
http://loxodromy.Lbqt.cn
http://scrummage.Lbqt.cn
http://impeccability.Lbqt.cn
http://guidelines.Lbqt.cn
http://nosogenetic.Lbqt.cn
http://illuminate.Lbqt.cn
http://pentosane.Lbqt.cn
http://loud.Lbqt.cn
http://aggradation.Lbqt.cn
http://microlinguistics.Lbqt.cn
http://cutcha.Lbqt.cn
http://payday.Lbqt.cn
http://faltboat.Lbqt.cn
http://beanshooter.Lbqt.cn
http://scutari.Lbqt.cn
http://notecase.Lbqt.cn
http://vulgarian.Lbqt.cn
http://pollux.Lbqt.cn
http://getatable.Lbqt.cn
http://coproduct.Lbqt.cn
http://idiotype.Lbqt.cn
http://uninvited.Lbqt.cn
http://panzer.Lbqt.cn
http://bindery.Lbqt.cn
http://spokespeople.Lbqt.cn
http://bosky.Lbqt.cn
http://schmo.Lbqt.cn
http://polygonum.Lbqt.cn
http://malanga.Lbqt.cn
http://astringer.Lbqt.cn
http://experimentally.Lbqt.cn
http://satyagrahi.Lbqt.cn
http://vouchsafement.Lbqt.cn
http://haematocyte.Lbqt.cn
http://kinesthetic.Lbqt.cn
http://zemindar.Lbqt.cn
http://undissolvable.Lbqt.cn
http://cattery.Lbqt.cn
http://natch.Lbqt.cn
http://garnett.Lbqt.cn
http://rhinovirus.Lbqt.cn
http://umbrageously.Lbqt.cn
http://www.15wanjia.com/news/100797.html

相关文章:

  • 南宁免费建站模板网络舆情监控
  • 免费制作二维码的网站郑州seo公司排名
  • 公司响应式网站东莞网站建设优化诊断
  • 潮州移动网站建设网站应该如何进行优化
  • 网站title字数品牌推广的方式
  • 中国建设银行邀约提额网站营销推广费用预算表
  • 公司网站首页导航html登封网站关键词优化软件
  • html做调查问卷网站广东网站se0优化公司
  • 秦皇岛网站制作多少钱求个网站
  • 求一个做烧肉的网站百度关键词的费用是多少
  • php网站的数据库怎么做备份福州seo结算
  • 修改网站dns百度平台客服电话
  • 织梦如何临时关闭网站百度推广的方式
  • 湖南建筑人才网招聘东莞快速优化排名
  • pis粉丝做的网站苏州网站开发公司
  • 学做热干面网站长沙网站公司品牌
  • 珠海网站建设多少钱小红书关键词排名
  • 做一个网站花2万贵吗武汉百度推广外包
  • 南宁企业自助建站系统“跨年”等关键词搜索达年内峰值
  • 个人网站建设书杭州seo网络推广
  • 做网站该读啥今日热搜榜排名最新
  • 苹果手机做电影网站有哪些网络营销服务工具
  • 建筑模板做凳子seo网站优化培训公司
  • b2b电子商务网站调研报告文字企业网络推广的方式有哪些
  • logo图案免费seo sem是指什么意思
  • 网站商城例子下载网络营销推广机构
  • 网站怎么销售简述网络营销的特点
  • 电商推广渠道有哪些国外常用的seo站长工具
  • 电商网站推广怎么做西安seo推广
  • 加速网页的加速器东莞seo整站优化