硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4750|回复: 25
收起左侧

[有问必答] GD32450替换429的DSP问题

[复制链接]

36

主题

249

回帖

357

积分

高级会员

积分
357
发表于 2021-4-2 10:46:34 | 显示全部楼层 |阅读模式
ST的片子价格货期都太紧张,429zi换成GD450zi,原程序基本没动,FFT用的比较多,发现GD32跑不起来,就发现CPU利用率占用太高,任务都切换不动(屏蔽很多FFT运算才发现);原FFT使用的是arm_cfft_radix4_f32运算,使用的是缺省库。后修改为使用cr4_fft_256_stm32运算,使用micro微库,改动后,程序可以跑起来,CPU利用率在55左右,但是FFT的结果就出问题了。工频电流就校验出的数据精度很差。摸不清楚原因,就做了一个比较,同时也有Matlab的数据。为什么差距比较大呢?比如直流量和基波。有疑惑,想请教。

123.jpg
456.jpg
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 10:52:54 | 显示全部楼层
signed int test_data[256] =
{
-147,-153,-152,-152,-142,-141,-135,-132,
-133,-124,-125,-125,-118,-113,-112,-111,
-104,-104,-99,-99,-93,-85,-82,-79,
-68,-60,-48,-48,-56,-45,-39,-34,
-35,-27,-24,-24,-23,-17,-13,-2,
2,4,8,7,8,6,8,14,
24,39,39,41,50,48,54,55,
63,66,71,72,72,72,72,72,
73,73,73,81,89,99,106,107,
116,114,125,125,129,132,133,137,
137,137,139,142,141,146,145,150,
150,151,153,154,152,157,155,158,
166,157,161,164,163,161,161,164,
161,163,163,160,157,163,159,158,
159,155,154,153,156,153,152,151,
151,148,145,144,139,139,138,137,
139,136,133,130,125,111,125,119,
111,105,105,89,85,81,73,73,
73,73,73,73,73,72,72,64,
62,58,55,52,38,41,37,27,
20,15,11,9,8,7,5,5,
-1,-5,-12,-21,-20,-23,-26,-32,
-36,-37,-41,-45,-52,-51,-62,-63,
-75,-85,-84,-89,-96,-101,-105,-113,
-112,-114,-121,-124,-124,-127,-127,-127,
-134,-140,-142,-147,-148,-151,-152,-152,
-154,-153,-159,-163,-166,-166,-168,-168,
-169,-171,-173,-174,-180,-180,-175,-175,
-175,-176,-176,-176,-175,-176,-179,-182,
-176,-178,-176,-175,-176,-176,-176,-177,
-176,-178,-174,-172,-175,-174,-172,-171,
-168,-166,-165,-166,-161,-157,-156,-152
       
};          工程的样点数据
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-4-2 10:56:15 | 显示全部楼层
你的硬件FPU开了吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-4-2 10:56:17 | 显示全部楼层
你的硬件FPU开了吗
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 11:03:35 | 显示全部楼层
开了; 0XE000ED88      00 00 f0
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 11:04:18 | 显示全部楼层
eric2013 发表于 2021-4-2 10:56
你的硬件FPU开了吗

开了,0XE000ED88 是 00 00 f0
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 11:14:23 | 显示全部楼层
eric2013 发表于 2021-4-2 10:56
你的硬件FPU开了吗

开了;0XE000ED88 是 00 00 f0
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 11:45:16 | 显示全部楼层
做了改正,并把工程附件传上,用的是GD的工程模板;
101112.jpg

01_GPIO_Running_LED.rar

6.79 MB, 下载次数: 9

回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 11:50:35 | 显示全部楼层
怎么少了一张图片呢                但还是差别较大。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 13:28:24 | 显示全部楼层
本帖最后由 zhengwending 于 2021-4-2 15:53 编辑
zhengwending 发表于 2021-4-2 11:45
做了改正,并把工程附件传上,用的是GD的工程模板;

说错了,是程序这发现了错误,做了修改!但是结果还是不一致。
101112.jpg
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-2 15:54:29 | 显示全部楼层
eric2013 发表于 2021-4-2 10:56
你的硬件FPU开了吗

审核通过的图片,跟我上传显示的不是一张,这是怎么回事哩?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-4-3 09:19:49 | 显示全部楼层
zhengwending 发表于 2021-4-2 13:28
说错了,是程序这发现了错误,做了修改!但是结果还是不一致。

ST那个是汇编FFT,可能略有区别。可以先跑ARM的那个DSP FFT。

有一个重要的问题,你的芯片正常起振了没有,是不是还跑的内部RC。感觉你的测试效果是芯片没有正常起振起来。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-4 10:56:21 | 显示全部楼层
eric2013 发表于 2021-4-3 09:19
ST那个是汇编FFT,可能略有区别。可以先跑ARM的那个DSP FFT。

有一个重要的问题,你的芯片正常起振了 ...

嗯   我再怼怼      谢谢版主!
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-6 07:52:24 | 显示全部楼层
eric2013 发表于 2021-4-3 09:19
ST那个是汇编FFT,可能略有区别。可以先跑ARM的那个DSP FFT。

有一个重要的问题,你的芯片正常起振了 ...

用GD官方的库做了小实验,也检查了时钟,没什么问题。FFT的库,也修改成了源码库,用ST库的原程序,还是跑步起来。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-6 09:07:45 | 显示全部楼层
还有点疑问的地方是,同样的硬件,同一个程序,用的ARM的库cr4_fft_256_stm32和ST的arm_cfft_radix4_f32库,他们的FFT结果差别很大。这是为什么?
回复

使用道具 举报

54

主题

145

回帖

307

积分

高级会员

积分
307
发表于 2021-4-6 10:41:56 | 显示全部楼层
两个库输出的结果的格式不一致
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-6 15:22:17 | 显示全部楼层
mewan 发表于 2021-4-6 10:41
两个库输出的结果的格式不一致

是,差的也比较多,疑惑比较大的地方
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-7 08:07:06 | 显示全部楼层
mewan 发表于 2021-4-6 10:41
两个库输出的结果的格式不一致

我检查了检查  取直流量、基波的方式没错呀。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-7 08:10:15 | 显示全部楼层
eric2013 发表于 2021-4-3 09:19
ST那个是汇编FFT,可能略有区别。可以先跑ARM的那个DSP FFT。

有一个重要的问题,你的芯片正常起振了 ...

嗯   检查了时钟、FPU和ARM的arm_cortexM4lf_math库,没问题。但是用arm_cortexM4lf_math这个库跑不起来。仿真uscoiii也正常运行,就跑不动的感觉。整个程序不会有什么问题的(一直在429运行的程序)。是不是跟GD的flash读写慢有关系?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-4-7 08:25:40 | 显示全部楼层
zhengwending 发表于 2021-4-7 08:10
嗯   检查了时钟、FPU和ARM的arm_cortexM4lf_math库,没问题。但是用arm_cortexM4lf_math这个库跑不起来 ...

你的工程开uCOS了?,这就涉及到你的工程是否正确移植硬件FPU问题了,建议你裸机测试。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-7 09:21:02 | 显示全部楼层
eric2013 发表于 2021-4-7 08:25
你的工程开uCOS了?,这就涉及到你的工程是否正确移植硬件FPU问题了,建议你裸机测试。

我就检查了FPU移植的问题,也看了二代示波器的例程,这块配置都一样,没发现有什么问题。也没产生什么错误中断之类的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106913
QQ
发表于 2021-4-7 09:32:54 | 显示全部楼层
zhengwending 发表于 2021-4-7 09:21
我就检查了FPU移植的问题,也看了二代示波器的例程,这块配置都一样,没发现有什么问题。也没产生什么错 ...

一定要屏蔽掉uCOS,再测试。

FPU移植出了问题后,不会产生错误中断,只会浮点的计算有问题。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-7 10:08:54 | 显示全部楼层
eric2013 发表于 2021-4-7 09:32
一定要屏蔽掉uCOS,再测试。

FPU移植出了问题后,不会产生错误中断,只会浮点的计算有问题。

谢谢版主回复。我去掉ucos实验了下,用arm_cortexM4lf_math的arm_cfft_radix4_f32计算出的结果跟Matlab和网上找的基4的FFT(VS2010测试)计算结果基本一致,FPU能够正常工作。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-7 13:35:52 | 显示全部楼层
做了无UCOS实验,FPU正常开启了。但是同样的程序,450跑不起来,屏蔽掉多处FFT的地方,只留下一两处,然后可以正常运行,FFT的结果也没问题。打开全部的FFT的地方,跑180M,为什么会跑不动,用uc/probe查看,任务不切换。再屏蔽掉多处FFT的地方,又正常运行。
回复

使用道具 举报

3

主题

52

回帖

61

积分

初级会员

积分
61
发表于 2021-4-15 13:52:15 | 显示全部楼层
楼主问题解决了吗
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2021-4-16 15:07:29 | 显示全部楼层
汪金阳 发表于 2021-4-15 13:52
楼主问题解决了吗

怎么了?没解决,只能曲线救国
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 19:59 , Processed in 0.400572 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表