|
端午节快乐,请教个问题,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) {
, Y) f* ?( Z$ T% R3 W# p5 x /* Power on the EMIFA */9 b7 V+ J) Z+ I9 M% N6 s
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,7 \" u3 Y3 p, w, X% _; O$ v
PSC_MDCTL_NEXT_ENABLE);" y" {& F# J& @( H7 D1 H5 w5 A
$ z& O* i& J8 f( J
/*selects the EMIFA pins for use*/4 \4 |7 R# Y# E
EMIFAPinMuxSetup();
9 A- z [. z/ w+ w* d% H
+ ]+ T4 e) E% `; R+ G. ~ /*set the buswidth of async device connected. 16bit*/8 M: u7 ^ n/ P+ i& h
EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
. w/ [( p$ u' R \. Q4 N* J1 ] EMIFA_DATA_BUSWITTH_16BIT);7 W5 [& I- Z+ s8 r
* Y ^6 J6 A# @ P) p t
/*selects the aync interface opmode. :Normal Mode*/
& e' s( S( j' [. ] EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,- H- o/ C2 `1 \) x
EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
1 }' |) O3 @$ @5 `3 }) e6 M; y6 o( f
, T+ d/ m8 [, s4 [- n6 Y /*Extended Wait disable.*/ q. e5 \! {/ }( E) V
EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
5 ^; m* B' a3 A: { EMIFA_EXTENDED_WAIT_DISABLE);
8 z& v9 ?( B. f9 j E& C) l+ R7 G9 ^
/*configures the wait timing for the device interfaced on CS2
7 R q. `2 m8 W# ^! u* a. k/ g% Y2 C, P * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/
0 z9 x! J2 R; `: ]# f q EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,
* P6 {( h; f1 m0 u! d EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));$ ^( D8 N" v3 H& `
8 [, e) ^. h( s1 ^0 f$ ` [+ I5 O/ D
}
' f2 _# [8 L; Q+ P还有cs4引脚的复用:
$ j( L! x) j2 y% QSYSCFG_PINMUX7_PINMUX7_11_8
) L( h* a l, g* B; D( D# |$ M$ L; v j: B' Q
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
) d5 _; t+ E7 y5 l+ ~. E5 S: z谢谢!& g! W1 i; t. N8 Y% h3 h
5 L7 ^* [' v( ~/ R ^0 i
y+ D! W6 P2 M& r |
|