|
端午节快乐,请教个问题,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) {
4 |. ~2 L( O. b+ @ /* Power on the EMIFA */
3 _/ T$ W8 x, Q" |' v; O PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,
$ B, W7 d6 o% M: N ~8 Y PSC_MDCTL_NEXT_ENABLE);2 s5 W+ i; q2 |: T
3 s+ M9 f U6 O# I p2 J( o, u /*selects the EMIFA pins for use*/
9 f2 j/ |3 \; f1 S# Y) x4 F EMIFAPinMuxSetup();: W7 a" B F! p0 g c
9 d8 F9 q/ l8 [ P8 Z
/*set the buswidth of async device connected. 16bit*/
$ {' Z; u6 C; b: O. j: r0 |( d EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,' _2 P, x6 v. f5 c8 z' y
EMIFA_DATA_BUSWITTH_16BIT);
" v& Z+ D3 z9 q2 R6 d$ ~
+ F. Y3 `1 v8 N( b; z5 [2 D6 N7 J /*selects the aync interface opmode. :Normal Mode*/! n" H& y( r% c* K4 Q% q
EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,) j8 l. A( m# s( e
EMIFA_ASYNC_INTERFACE_NORMAL_MODE);$ s4 g6 a7 y! Q0 z: D3 t s
" y7 C K- L- Q7 J* R( j
/*Extended Wait disable.*/; g& |: e6 {: `3 k
EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
7 }; \$ ]2 M% \( k EMIFA_EXTENDED_WAIT_DISABLE);
+ Z& b4 z, m0 Q) x6 R/ \: `
+ v3 s9 X2 r6 w3 ?; r: o /*configures the wait timing for the device interfaced on CS2
! L5 M, u5 \; M" B * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/
$ i0 ^' m6 H: V- I# o, y: Y& f |' F EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,
: ]0 r5 [' P* `6 W; ^ EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));& R; n' Z$ N" c! m) j: K8 g& [
0 M3 W( s8 h2 n! [$ p9 E. e9 V
}
; \2 F& Z2 ~, C- ]# @ v' Y3 y还有cs4引脚的复用:
/ m+ s$ P% Q sSYSCFG_PINMUX7_PINMUX7_11_8
+ ^6 |0 c% b8 g4 } ?: v$ q9 d/ K8 M1 |
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
+ U u4 d% y+ o+ V8 J谢谢!
- d" S$ \5 ], D7 i; [
+ h0 b. R$ ^7 m h) I
/ W* i9 u: ^1 Q: s4 W/ P; g$ b |
|