嵌入式开发者社区

标题: 双核模式下DSP初始化问题 [打印本页]

作者: linearleaf    时间: 2017-3-8 21:40
标题: 双核模式下DSP初始化问题
之前一直在用CCS进行DSP单核程序的开发,当时利用创龙给的计时器代码定义了一个10k中断,但是后来双核开发时,PC端用ZOC terminal通过串口与开发板进行通讯和执行程序此时,ARM端通过slaveloader去初始化DSP,原10k中断的频率降低为6K多一点,同时EMIFA的频率从114MHz提升为150MHz。* R$ {. Q% {: H3 ?+ p" A
看了下tronglong_C6748.gel,知道之前中断10k和DSP时钟的初始化参数有关
& s) u4 _/ x. g7 z4 ]0 A# o) F3 H- q; ~3 \8 M# {) ?8 w
从图中 能看出控制DSP工作频率的是PLL0_SYSCLK0,控制EMIFA的是PLL0_SYSCLK3& A5 ?5 S. ?, M1 Y" ?7 T3 Z( S
我的理解是双核模式下slaveloader对DSP进行参数初始化并唤醒DSP,但是缺省参数初始化文件的情况下其默认采用了一组与tronglong_C6748.gel中不同的参数
3 H2 O8 v9 e0 ~* L通过修改tronglong_C6748.gel的参数,可以修改ccs下调试的时钟频率,但是如何修改双核模式下的时钟频率呢9 G8 ?% @/ O. f2 a  q$ c$ |! v  A8 |
如果是通过dsp.cfg的话应该如何生成该文件(看AD7606的双核例程中看到有这个文件)
9 M4 x6 H  s  l; E: h% J另外,是否可以将初始化部分加入DSP端程序代码中?
, O4 l) K) A( d% Y还是说slaveloader机制决定了必须先初始化才会load DSP端程序,如果这样的话,后写入的寄存器值能否覆盖旧值并生效?3 S1 I% J! S" d% Z; y
. ^* E- k. M, \6 U

作者: linearleaf    时间: 2017-3-9 15:15
尝试了一下gel中的device_PLL0,发现EMIF时钟得到了重新配置,频率从150M降低到了114M,但是DSP的时钟频率没有改变,原因可能是DSP时钟频率的变化需要重启DSP才可生效,但是如果重启DSP,之前slaveloader加载的程序不就没了么,感觉是个死循环。。
作者: human    时间: 2017-3-12 17:02
初始化代码可以发到程序中
作者: linearleaf    时间: 2017-3-19 15:37
human 发表于 2017-3-12 17:02  s; X7 q; G3 q7 B* @- |! l
初始化代码可以发到程序中
* Z" G- i6 p7 z6 ^( g
是说发错模块的意思么
作者: linearleaf    时间: 2017-3-19 15:40
human 发表于 2017-3-12 17:02
& }: X! O! R8 f8 s5 T1 x' ^' L3 K初始化代码可以发到程序中

/ Z* F0 p) h( v# \- K8 O7 ~我也尝试了一下将tronglong_C6748.gel中的初始化代码改成c风格后放入程序中,但是开发板会直接死机




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4