| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 定点DSP的浮点数操作耗时实验 -> 正文阅读 |
|
[嵌入式]定点DSP的浮点数操作耗时实验 |
? ? ? ? 以经典的F28035为例,对于习惯了浮点DSP的朋友来说,用定点DSP,刚开会感觉很烦人,算个数特别麻烦。特别是经常要计算小数,也就是浮点数,例如3.14*3.22,这样的计算在浮点DSP里面不是事儿,很快,但是在定点dsp里面,仅仅这个简单的乘法,就好消耗2us的时间,这样想完成一定功能的计算,那时间消耗多得让控制功能无法实现。 F28035系统时钟定位60M,? 周期为16.67s 但是如果在定点DSP里面进行浮点数的读取和赋值呢?这个会不会消耗很多时间呢? ? ? ? ?下面对一些列的情况做实验来具体看看,以加深印象。 ? ? ? ? 实验思路是,通过置低,置高IO口,在这个置低置高之间插入语句,通过示波器看低电平确定语句执行时间。 大概形式如下:
?? ? ? ?GpioDataRegs.GPACLEAR.bit.GPIO28 = 1; ?//1 ? ? ? ? GpioDataRegs.GPACLEAR.bit.GPIO28 = 1; ?//2 即一条整形赋值语句耗费2sysclk。 再讲赋值改为浮点数据赋值:
下图是五条浮点数赋值的情况,第二个低电平时间为400ns,282/5=56.4ns,56.4/16.6667=3.38 即执行一条浮点数的赋值语句耗时大概3个sysclk。
再看上面的整形数加法,下面第二个电平可以看出,一条整数加法大概3个sysclk 再来看浮点数加法,如下,就写一条
下图第二个低电平时间为3.3us,即执行浮点加法:f32Temp = f32Temp + f32Temp1;耗费的时间3us以上。 ?所以,在定点dsp里面千万不能直接做浮点运算,虽然可以算出来,但是特别耗费时间。 但是在定点DSP里面,可以对浮点数进行读取和赋值,这样在寄存器里面对赴定点数搬来搬去的,可以耗时稍微比搬运整形费时一点点。可以接受。 上面浮点数的运算,不管是算数运算还是逻辑运算,都是非常耗时的。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:53:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |