|
|
端午节快乐,请教个问题,ARM端启动linux,DSP端sysbios,我在DSP端初始化了EMIF,使用的是CS4,初始化参考了创龙的DSP单核时初始化的过程,单核下是可以使用CS4进行读写数据的,但是当双核启动的时候,就不能启动了读写数据了,然后我就用创龙的syslink案例ad7606_dsp,我用创龙的开发板和创龙的ad7606开发板进行AD模数转换,是可以的,那么我什么都没有改,只是将ad7606_dsp中的EMFI初始化部分,将CS2改为CS4,包括以下内容:static void ad7606_emifa_init(ad7606 *ad) {
) _6 ~: `1 _ J. k' @! z /* Power on the EMIFA */1 g0 m7 f6 V+ J }3 s" R4 h
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,* H; |" J4 \$ J) w! Z8 \, T: u
PSC_MDCTL_NEXT_ENABLE);8 y" B7 c# H+ q2 \
9 M9 ]! ^" X8 @, y6 t /*selects the EMIFA pins for use*/# B+ @0 a) q% W |
EMIFAPinMuxSetup();6 F3 M2 `! y( S( ~8 `$ {, f
% p6 d7 A) z3 ?; `# \ /*set the buswidth of async device connected. 16bit*/
9 b6 v- D) U( n* j/ A& I EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
' S. L! w. S6 @$ n7 X. B EMIFA_DATA_BUSWITTH_16BIT);0 _$ V3 {8 D3 X/ e+ g
7 K( ^9 n* i N! j% g6 s9 r /*selects the aync interface opmode. :Normal Mode*/
1 x* C$ ~& v; p4 I EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,( x; y7 U5 x4 w8 X5 j2 {; A3 z5 g
EMIFA_ASYNC_INTERFACE_NORMAL_MODE);7 V" F8 _, v2 Q2 ?9 D; Q
6 W3 ?# U1 c8 d/ C6 f0 C
/*Extended Wait disable.*/& F" g: N- c( D- B5 v7 y
EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
3 R0 S( a, `# u( t! R5 i8 {- | EMIFA_EXTENDED_WAIT_DISABLE);
- r. [ L8 z/ k W8 s; w+ ?/ d" v& W) |: K+ V
/*configures the wait timing for the device interfaced on CS2
' q; d9 C; }4 s- E$ D) Y0 m# P# C * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/& o! b! ?: E2 ^8 P2 T [/ Z8 z; H
EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,; G; |/ x6 M$ O; n* O4 ~' Y
EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));
6 M1 k* z) i( s$ p. S, L" j7 g8 q( F- A9 b
}* {# n; b( g8 V5 A" N" a
还有cs4引脚的复用:
) M$ {6 F3 {) `5 QSYSCFG_PINMUX7_PINMUX7_11_8/ o- l- Q0 E, m" c6 i9 ^. n# ?
9 d" v; `3 b H# f
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
9 o$ ^5 K+ W! z- x3 r谢谢!$ M. {2 |+ H/ i$ v+ z4 f
& n7 v6 |. t8 N. N
3 a9 M' S+ m0 R* _* L |
|