|
端午节快乐,请教个问题,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) {$ l* ~: [4 ]- d4 U" u1 w
/* Power on the EMIFA */ V7 b( G0 s8 |# ~! Z" l
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,9 ~9 I3 ?6 R2 S! _
PSC_MDCTL_NEXT_ENABLE);0 W, c2 g6 D: ~% |1 J) [. g
5 O0 ^$ v8 F; F/ ]' e9 y
/*selects the EMIFA pins for use*/6 d$ m1 k5 @) P" v1 s* \/ H
EMIFAPinMuxSetup();% K, p) a9 n" |( O
( F3 r. u7 E5 y0 B" E
/*set the buswidth of async device connected. 16bit*/# B1 o, m3 j- a* p* K# I. T
EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
) ~2 \6 W o# M/ C `4 H3 Y EMIFA_DATA_BUSWITTH_16BIT);3 _2 d% W5 Z2 P: [: h: O
$ A$ i! B7 q% i6 j2 F* b /*selects the aync interface opmode. :Normal Mode*/
+ ?- z3 N& [# r0 X EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,) x" [+ ]) o# A8 q
EMIFA_ASYNC_INTERFACE_NORMAL_MODE);' a; Y! n( E# u+ e9 p5 u
) x9 j) W6 f* x% J+ ~
/*Extended Wait disable.*/
5 S8 i5 t* Z; K9 z0 M* m( E% ^- d EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,3 h% w- M( f1 R9 f/ \- u
EMIFA_EXTENDED_WAIT_DISABLE);! `6 X+ u6 i7 C, D
$ f( z& N- B6 f" R5 H, @+ H /*configures the wait timing for the device interfaced on CS2
# W, c/ T+ r3 N9 }) l8 [# I/ T * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/
' C3 m$ S0 o* N7 E% l EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,* Z8 t0 T$ E; U5 @$ e- A
EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));2 n* y& Y" \& f& \5 l8 h( l
- w0 R2 U2 l. l L: n- W
}" t3 A$ e9 a" C8 s. P- m$ _; @# ^
还有cs4引脚的复用:3 J3 {8 w( m( X2 ^
SYSCFG_PINMUX7_PINMUX7_11_8
& z+ q) K7 T; I- ?; ~- U3 G% b, B, W0 ~* D1 B8 d
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
, }, a8 c- B2 R0 D2 `. |谢谢!$ B5 ^" X+ p& D4 W
2 B5 b& J0 {9 G
1 D0 n' z' ?& w P! m8 s
|
|