本文介绍G32R5xx Zidian的相关内容,包括Zidian的基本介绍及应用程序的软件设计实例。Zidian是为G32R5xx系列实时控制MCU设计的一套数学扩展指令集,能有效提高数学运算的性能。
Zidian概述
Zidian 是为 G32R5xx 系列实时控制 MCU 设计的一套数学扩展指令集,能有效提高数学运算的性能。
| 指令类型 | 内置函数 |
|---|---|
| CX2 | uint32_t__arm_cx2(int coproc, uint32_t n, uint32_t imm); |
| CX2A | uint32_t__arm_cx2a(int coproc, uint64_t acc, uint32_t n,uint32_t imm); |
| CX2DA | uint64_t__arm_cx2da(int coproc, uint64_t acc, uint32_t n,uint32_t imm); |
| CX3 | uint32_t__arm_cx3(int coproc, uint32_t n, uint32_t m,uint32_t imm); |
| CX3D | uint64_t__arm_cx3d(int coproc, uint32_t n, uint32_t m,uint32_t imm); |
| 指令类型 | 内置函数 |
|---|---|
| CX3DA | uint64_t__arm_cx3da(int coproc, uint64_t acc, uint32_t n,uint32_t m, uint32_t imm); |
| VCX2 | uint32_t__arm_vcx2(int coproc, uint32_t n, uint32_t imm); |
| VCX3 | uint32_t__arm_vcx3(int coproc, uint32_t n, uint32_t m,uint32_to imm); |
使用Zidian加速运算
通过将CDE的标准化内置函数引入,作为ARM C语言扩展的一部分,表1和表2列出了Zidian支持的内置函数。文件zidian_math.h对常用的数学函数进行了重新封装。表4列举了"zidian_math.h"文件中所封装的数学函数。
| Zidian函数 | 描述 |
|---|---|
| __sinpuf32 | 计算正弦值 |
| __sin | 将其归一化到[0, 2π)区间,然后再计算正弦值 |
| __cospuf32 | 计算余弦值 |
| __cos | 将其归一化到[0, 2π)区间,然后再计算余弦值 |
| __atanpuf32 | 计算反正切值 |
| __atan | 计算反正切值 |
| __mpy2pif32 | 单精度浮点乘法 |
| __div2pif32 | 单精度浮点除法 |
| __sqrtf32 | 单精度浮点数平方根 |
| __divf32 | 浮点除法 |
| __quadf32 | 计算 X和 Y的象限值 |
| __divf32_atan2 | 计算 X和 Y的比值 |
| __atan2puf32 | atan2 |
| __atan2 | atan2 |
149
