打印
[PIC32/SAM]

致麦播播,版主大人,急需播种种子-带FPU硬件,如何进行...

[复制链接]
1484|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大电阻22|  楼主 | 2020-5-11 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小卡 于 2020-5-11 15:14 编辑

版主大人

能不能种些,关于32MZ带FPU,进行浮点计算的笔记类文件,供大家浇水发芽吃果实。

背景:

1、32MZ 手册关于浮点运算的章节太笼统
2、不会汇编,
3、如何结合HMY3(是否进行配置,如何配置),使用C进行编程(直接编程还是嵌入汇编)?。
4、新版本 XC32 V2.40,浮点型直接64位了。 数据定义时是,long double 还是double
5、能否请MCHP的应用工程师给大家浇浇水

谢谢了。

使用特权

评论回复
沙发
yqdeso| | 2020-5-11 10:47 | 只看该作者
这部分MIPS内核部分有介绍

使用特权

评论回复
评论
Jerry.huang 2020-5-22 17:06 回复TA
我们有CKS完全对标STM32系列的 
板凳
大电阻22|  楼主 | 2020-5-11 10:50 | 只看该作者
yqdeso 发表于 2020-5-11 10:47
这部分MIPS内核部分有介绍

看过,内核部分了。云里雾里

使用特权

评论回复
地板
小卡| | 2020-5-11 15:13 | 只看该作者
本帖最后由 小卡 于 2020-5-11 15:14 编辑

已经帮你找麦播播及版主大人们了~  
下次加分类让技术专家好找

使用特权

评论回复
5
麦小播| | 2020-5-11 15:21 | 只看该作者
麦小播来啦!!!!!!!!!!帮顶,等大咖。文档小播给亲找找哈。

使用特权

评论回复
6
ethanmchp| | 2020-5-11 17:45 | 只看该作者
FPU是内核部分的内容,内核的东西看起来的确很复杂,但是用户一般是不用关心的,用C语言编写浮点运算代码,编译后生成相关的汇编代码会包含FPU运算。
可以在开发板上写写相关代码,对比数据手册看看编译出来的汇编代码,会更清楚。
XC32中64位浮点型定义是long double。
XC32的使用在MPLAB X IDE的Help文档里有详细说明,有兴趣可以看看。

使用特权

评论回复
7
大电阻22|  楼主 | 2020-5-12 09:40 | 只看该作者
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 类型

两者速度差异有多大?

请赐教。

使用特权

评论回复
8
大电阻22|  楼主 | 2020-5-12 09:42 | 只看该作者
麦小播 发表于 2020-5-11 15:21
麦小播来啦!!!!!!!!!!帮顶,等大咖。文档小播给亲找找哈。

谢谢哦~~~~~,期待文档哦

使用特权

评论回复
9
ethanmchp| | 2020-5-12 22:30 | 只看该作者
大电阻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指令延时表上可以看到单、双精度相关运算指令延时。
想确定对已有运算代码的速度影响,对着运算指令延时表去计算比较繁琐,比较简单的方法,数据分别定义成两种类型,各自编译运行,测试一下两者实际运行时间,对已有代码的影响就可以精确的看到了。

使用特权

评论回复
10
大电阻22|  楼主 | 2020-5-12 23:26 | 只看该作者
ethanmchp 发表于 2020-5-12 22:30
对的,PIC32MZ的浮点单元不是外设,FPU是CPU中的一个单元,编译器会支持相关的操作。
在mplab compilers ...

谢谢您的回复。真的去啃啃文档了

使用特权

评论回复
11
lwel| | 2020-9-1 16:08 | 只看该作者
云里雾里

使用特权

评论回复
12
morita1918| | 2022-7-9 17:12 | 只看该作者
山景有带FPU的mcu蓝牙控制器
高性能 32 位 RISC 内核,最高频率 288MHz, 支持 DSP 指令,集成 FPU 支持浮点运算
FFT 加速器:最大支持 1024 点复数 FFT/IFFT 运算,或者是 2048 点的实数 FFT/IFFT 运算
内置 16Mbit FLASH,存储代码及数据 双模蓝牙 V5.0,兼容蓝牙 V4.2 和 V2.1+EDR
需要了解的私信我

使用特权

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

本版积分规则

3

主题

13

帖子

0

粉丝