|
|
端午节快乐,请教个问题,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) {
* @8 s) b7 o( }# t% V9 F /* Power on the EMIFA */4 A* Z8 T# r4 ], U4 V1 v; l( Z
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,' l, t; C' {% I0 t. A/ Z
PSC_MDCTL_NEXT_ENABLE);
9 N: `1 M) X: o- _. c* M k4 f& a% |' }$ |0 i/ [
/*selects the EMIFA pins for use*/2 U I* i: n2 j
EMIFAPinMuxSetup();
, a/ v) S% k; H; h1 e- `8 T1 A- _, a4 e5 Y1 x6 Q$ m/ J) F
/*set the buswidth of async device connected. 16bit*/
P, ]* A9 v. e3 Z. Q7 n EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,3 \0 ~6 K6 ~8 t' @' P3 a
EMIFA_DATA_BUSWITTH_16BIT);) g5 x9 i& a' Z* B. _2 o9 ^
5 j* [1 C8 [5 s- X9 w6 R
/*selects the aync interface opmode. :Normal Mode*/* q8 m2 ~+ P% y4 {* v4 i/ q( j
EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
: R& ^, m4 z, W; X. e$ Z EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
. H7 }% | m# X
& b. T6 m" f/ A4 e2 g2 _ /*Extended Wait disable.*/
$ {, S( c ~- V% H5 ` A EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
$ ?8 C# M4 F7 m( G# p. `3 p6 m EMIFA_EXTENDED_WAIT_DISABLE);
) i& w( w9 w$ p. c) J7 A Z2 z1 h0 J3 x/ s7 e6 r( }
/*configures the wait timing for the device interfaced on CS2
7 E# U2 @+ J! k1 l8 Q+ T6 A0 f* Z * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/
: N" i, h) B9 B EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,, M# N! f8 ^5 ?8 j8 W0 N9 e- B
EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));
! w+ J& ]3 `5 d/ l" ~1 M% n- p
}
# o9 [1 @6 n, |/ h# L7 n' v还有cs4引脚的复用:3 }+ o5 x( Z9 e7 P: x2 W' ~
SYSCFG_PINMUX7_PINMUX7_11_8, v) V7 @& F1 Z* k p3 ?
, ~1 l! V. B# T. {" p
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
1 p# y4 g' O8 i" s( R- |$ ]谢谢!
' T$ P: U% ^$ [* O5 l5 W% K7 X) G: D, z W& w
" Y4 w- _; y/ P6 g+ |3 \
|
|