dannyzhu008 发表于 2023-2-26 22:15:30

LAOXU 发表于 2023-2-26 18:26
下面为不外挂 STC32G_MDU32库 编译的(编译后代码长度不同), 另, 例程中, 变量拷贝时未修改, 如下图, 请自 ...

好的,非常感谢楼主

dannyzhu008 发表于 2023-2-27 16:17:27

加了 STC32G_MDU32库还是速度没有变化 看样子没有浮点硬件,运算还是有点慢 但比STC8快 不知道有哪位大师在做FFT的,有什么好的算法,提供参考一下

LAOXU 发表于 2023-2-27 20:10:46

dannyzhu008 发表于 2023-2-27 16:17
加了 STC32G_MDU32库还是速度没有变化 看样子没有浮点硬件,运算还是有点慢 但比STC8快 不知道有哪位大师 ...
c251指令, 对浮点加减乘运算速度还行, 只是对除法运算, 使用了传统的移位加减法操作, 速度慢, 此运算库, 使用 MDU32单元, 利用算法, 改写原 C251的浮点数除法, 使得运算速度大幅度提升, 请看测试结果.

实测 浮点运算速度, 比原标准浮点运算, 速度 快了 3倍.


LAOXU 发表于 2023-2-27 20:12:17

实测 浮点运算速度, 比原标准浮点运算, 速度 快了 3倍.

神农鼎 发表于 2023-2-27 20:58:50

大家感受下,提速3倍,我没装 KEIL

dannyzhu008 发表于 2023-2-28 21:46:29

神农鼎 发表于 2023-2-27 20:58
大家感受下,提速3倍,我没装 KEIL

啥意思没装KEIL怎么觉得怪怪得

神农鼎 发表于 2023-2-28 22:10:06

我在忙生产,不做这些细节的小事N年了,大家自己要用的验证下

zjiafu 发表于 2023-4-18 16:44:45

本帖最后由 zjiafu 于 2023-4-18 19:07 编辑

64位的里有个测试例子,下载修改测试发现LADD64和LSUB64会死机,什么情况?


#include <STC32G.H>
#include <long64.h>
#include <INTRINS.h>   

volatile   LONGLONGL1;
volatile   LONGLONGL2;
volatile   LONGLONGL6;
volatile   LONGLONGL7;

void main(void)
{         
      u8 i=0;
          WORD64(L1, 0x000000000, 0x00000000);         
      WORD64(L2, 0x000000000, 0x00001234);   
      
          do{
          LADD64(L1, L2, L6);                  
          LSUB64(L1, L2, L7);                     
          i++;
      }while(i>0)   //循环256次

while(1);
}            


我把子LADD64和LSUB64放在while()循环里,结果跳不出循环
后来调试发现i 的值一直是0XBB,所以跳不出循环,是不是"i"值被LADD64和LSUB64改变了?


LAOXU 发表于 2023-9-9 17:57:17

zjiafu 发表于 2023-4-18 16:44
64位的里有个测试例子,下载修改测试发现LADD64和LSUB64会死机,什么情况?




你好,我查了一下,内存冲突,keil 将临时变量优化了。

目前只找到两个解决方法:

1、 u8 i=0; 前面加 volatile
   即 volatileu8 i=0;

2、 u8 i=0;设置成全局变量。

zxcv1973 发表于 2024-2-29 11:39:41

LAOXU 发表于 2023-2-4 20:20
STC32G_MDU32 标准数学函数库, 含以下库文件.

1. 浮点加减乘除法


浮点除法测试了一下,极端数值下处理结果与KEIL的不一致,比如0.07/9.99999e36,KEIL的结果是为0,而这个库的结果是一个错误的但也很小的数值
页: 1 2 3 [4] 5 6 7
查看完整版本: 世上(也是史上)功能最全的 32G12K128 MDU32应用 LIB