|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-12-1 16:50 编辑
) K+ C0 G* `2 U; Z; p( k; g' P1 O9 @! y7 i7 G% C
% I% x9 i5 k/ C! o P- @
! G9 D6 g% v0 H( b6 m4 |
" v, r9 d* p+ Y8 P& T/ W1 kDSP,51的DSP来了, 100MHz, STC32G144K246
8 g7 r. P0 H+ m2 m: p5 |$ q' Q# S1 ~DSP 与 CPU系统时钟 同频, STC32G144K246,51 的 DSP 来了 T! Y. {* S2 F2 `, J% u/ T
===建议 跑 100MHz, 120MHz 超频了
. P( R" \1 ^% G5 n7 q下面演示 DSP 指令集 的程序使用 120MHz 系统时钟1 k# I: B# M7 M# F3 {
120MHz系统时钟,由内部 IRC时钟-24MHz,HPLL倍频产生。1 \3 a) K6 T% I# N
LIB需要根据工程的代码空间大小模式选择合适的LIB库, r3 i/ e" N- r; h- R
可以通过查看Target选项卡中的Code Rom Size类型来选择,通常来讲,
- U9 X# }8 P7 i* V6 b5 M如果需要使用全部的246K代码空间,选择HUGE模式的LIB库即可
0 s% U. N' M% j以下例程也以HUGE模式下LIB库进行使用举例2 Y4 z6 N$ h J* {
1 c3 Y+ {, z& v% v
因为STC32所使用的C251核心,本身带有1T指令的加法/减法/乘法指令集,(C251除法指令集16位消耗6个时钟,32位消耗10个时钟)
$ y; `+ y- m# f5 ?# k4 v所以LIB中仅将加速了有符号整形除法,无符号长整形除法,有符号长整型除法这三类
5 i$ Z1 g! U5 q; t8 f8 Q其余使用C251默认指令集进行计算,因为其默认指令集的除法为无符号除法,所以大部分都需要进行加速, Q6 Z7 ^+ t# q
, o+ s1 u7 S0 g, \0 H% C2 [+ t
可以看到计算结果是和预期一样,正确的
3 ~, c3 n2 Y/ ^0 ?& c" f( s# {0 \
9 K# {9 f% [& t6 j% l9 m7 A# Q B& ]: a* S. A( K z% J
速度测试中,使用1000次循环测试不同数据类型的除法运算,在P60上输出的高电平宽度即为运算时间
* Y! L& h! Q6 o; w测试中,使用了DSP32的程序(使用LIB库)的,耗时2.83ms@120Mhz% t$ W+ r# _/ v" z
未使用DSP32的程序,耗时4.86ms@120Mhz
* J# R4 \& I& S* U" {+ Z6 W& c, X0 D6 a6 l$ J8 H" ]- Q9 Y
|
|