|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-12-1 16:50 编辑
# x8 N# D7 e1 D3 O, q# Z) G: F4 t/ j/ o. Z& K* g# E5 F2 F* e) C1 n
7 y, D8 [6 S) [4 \; D$ { s& K
8 c+ j3 ]$ A" \, T& ]( `" w+ Z" P
6 H; v/ z) e! a( x: k0 ^7 P
DSP,51的DSP来了, 100MHz, STC32G144K246" }) L9 a5 \! w3 `
DSP 与 CPU系统时钟 同频, STC32G144K246,51 的 DSP 来了
$ }. E# i% N3 C===建议 跑 100MHz, 120MHz 超频了3 r- Y2 I; {, d( R* _1 D6 Q
下面演示 DSP 指令集 的程序使用 120MHz 系统时钟- d5 D, x! I4 R
120MHz系统时钟,由内部 IRC时钟-24MHz,HPLL倍频产生。
! p# T: c* w( c1 L) a$ cLIB需要根据工程的代码空间大小模式选择合适的LIB库
, z0 r; E5 [8 E) E9 g/ i* R可以通过查看Target选项卡中的Code Rom Size类型来选择,通常来讲,
, \8 ]8 { W; R K9 t% I3 }7 k) ~6 R如果需要使用全部的246K代码空间,选择HUGE模式的LIB库即可
- ]( x- l" K: j0 n3 b7 o7 S- j* @以下例程也以HUGE模式下LIB库进行使用举例4 M# o) `" R: q5 f5 ^, l! x' D$ M
" _% [' _) N5 h- N
因为STC32所使用的C251核心,本身带有1T指令的加法/减法/乘法指令集,(C251除法指令集16位消耗6个时钟,32位消耗10个时钟)6 {2 Y: u9 N* L6 v
所以LIB中仅将加速了有符号整形除法,无符号长整形除法,有符号长整型除法这三类
' K$ n$ N% M# A$ N4 [1 e其余使用C251默认指令集进行计算,因为其默认指令集的除法为无符号除法,所以大部分都需要进行加速
, Z* f+ o* o& k, y1 H9 X- J% W
. e o* [+ K% ~可以看到计算结果是和预期一样,正确的
# r/ B$ b5 |% M7 o7 Y% S8 x! C- K' Q r! S
+ e1 P u' D! T
速度测试中,使用1000次循环测试不同数据类型的除法运算,在P60上输出的高电平宽度即为运算时间$ n( N) }% ^0 \, q! ]- r7 [+ e
测试中,使用了DSP32的程序(使用LIB库)的,耗时2.83ms@120Mhz
1 \ F$ G; L! U+ e未使用DSP32的程序,耗时4.86ms@120Mhz
0 i, D4 `: E3 o3 ]) A- X q, J c- [
|
|