致麦播播,版主大人,急需播种种子-带FPU硬件,如何进行...
本帖最后由 小卡 于 2020-5-11 15:14 编辑版主大人
能不能种些,关于32MZ带FPU,进行浮点计算的笔记类文件,供大家浇水发芽吃果实。
背景:
1、32MZ 手册关于浮点运算的章节太笼统
2、不会汇编,
3、如何结合HMY3(是否进行配置,如何配置),使用C进行编程(直接编程还是嵌入汇编)?。
4、新版本 XC32 V2.40,浮点型直接64位了。 数据定义时是,long double 还是double
5、能否请MCHP的应用工程师给大家浇浇水
谢谢了。 这部分MIPS内核部分有介绍 yqdeso 发表于 2020-5-11 10:47
这部分MIPS内核部分有介绍
看过,内核部分了。云里雾里 本帖最后由 小卡 于 2020-5-11 15:14 编辑
已经帮你找麦播播及版主大人们了~
下次加分类让技术专家好找 麦小播来啦!!!!!!!!!!帮顶,等大咖。文档小播给亲找找哈。 FPU是内核部分的内容,内核的东西看起来的确很复杂,但是用户一般是不用关心的,用C语言编写浮点运算代码,编译后生成相关的汇编代码会包含FPU运算。
可以在开发板上写写相关代码,对比数据手册看看编译出来的汇编代码,会更清楚。
XC32中64位浮点型定义是long double。
XC32的使用在MPLAB X IDE的Help文档里有详细说明,有兴趣可以看看。 ethanmchp 发表于 2020-5-11 17:45
FPU是内核部分的内容,内核的东西看起来的确很复杂,但是用户一般是不用关心的,用C语言编写浮点运算代码, ...
谢谢您的建议
走了一下帮助文档。编译器部分 编译器设置选项 xc32-gcc
Exclude floating-point library 默认是不勾选。意味着默认开启对浮点
操作的支持。库文件部分<math.h> 中有关于一些数学计算的函数。
现在考虑,针对浮点计算,我是不是考虑的有点复杂了。不应该把浮点单元当作外设去对待
去考虑在HMY中去开关这个单元,等等其他什么配置。因为MZ32EF存在这个硬件单元
故加减乘除随便造,包括引用库函数,不用去考虑MIPS那些底层的东东,具体擦屁股的活儿,
编译器自动给你干了,并且是硬件实现的非软浮点。
不知道我的理解是否正确?
对于版本V2.40 浮点都是64位了,如果考虑当前程序在下一个XC32版本的可移植性
那么现在V2.30版本上,数据直接定义成 long double?那么对比定义成 float 类型
两者速度差异有多大?
请赐教。 麦小播 发表于 2020-5-11 15:21
麦小播来啦!!!!!!!!!!帮顶,等大咖。文档小播给亲找找哈。
谢谢哦~~~~~{:loveliness:},期待文档哦 大电阻22 发表于 2020-5-12 09:40
谢谢您的建议
走了一下帮助文档。编译器部分 编译器设置选项 xc32-gcc
对的,PIC32MZ的浮点单元不是外设,FPU是CPU中的一个单元,编译器会支持相关的操作。
在mplab compilers的页面中( https://www.microchip.com/mplab/compilers )有很多的相关资料,在《MPLAB XC32 C/C++ Compiler User’s Guide for PIC32M MCUs》这份文档中有XC32对FPU支持的介绍。
在V2.30版本上,数据可以定义成 long double,对比定义成float类型,对加减等运算速度影响较小,对除法、开方等运算速度影响较大,数据手册上的FPU指令延时表上可以看到单、双精度相关运算指令延时。
想确定对已有运算代码的速度影响,对着运算指令延时表去计算比较繁琐,比较简单的方法,数据分别定义成两种类型,各自编译运行,测试一下两者实际运行时间,对已有代码的影响就可以精确的看到了。 ethanmchp 发表于 2020-5-12 22:30
对的,PIC32MZ的浮点单元不是外设,FPU是CPU中的一个单元,编译器会支持相关的操作。
在mplab compilers ...
谢谢您的回复。真的去啃啃文档了。 云里雾里 山景有带FPU的mcu蓝牙控制器
高性能 32 位 RISC 内核,最高频率 288MHz, 支持 DSP 指令,集成 FPU 支持浮点运算
FFT 加速器:最大支持 1024 点复数 FFT/IFFT 运算,或者是 2048 点的实数 FFT/IFFT 运算
内置 16Mbit FLASH,存储代码及数据 双模蓝牙 V5.0,兼容蓝牙 V4.2 和 V2.1+EDR
需要了解的私信我
页:
[1]