|
端午节快乐,请教个问题,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' |; i. r' n2 h* t; D /* Power on the EMIFA */
8 J# k. Y3 q4 M1 N PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,! x/ P& a. j9 b% x( A
PSC_MDCTL_NEXT_ENABLE);( l1 |, j1 \; ?, u0 ]7 ^7 [
+ s8 O- X; G( r a9 f /*selects the EMIFA pins for use*/
- v( M5 J- u# y. Y EMIFAPinMuxSetup();
4 U8 i9 a# V' d/ @3 U: _9 Y" m& N. p. p, j
/*set the buswidth of async device connected. 16bit*/
# k' { V' J* @+ D! W4 P8 k EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
! ~6 ]5 w& g8 T$ @* {) h$ L; d EMIFA_DATA_BUSWITTH_16BIT);
$ s5 O. V6 _: H* D/ ~" t ~6 F% s3 Q/ z# g8 \. t
/*selects the aync interface opmode. :Normal Mode*/& M7 f! \+ E9 P X
EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
7 C: M! r5 E+ H1 u* k# z EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
6 Y. E0 T4 \$ [- w& t- ^; U+ ~$ f: U: ], k; Q# O' T
/*Extended Wait disable.*/: d0 h: k: P; h# O+ r s: M$ x
EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
. d" T. w, P) S) t' o- S EMIFA_EXTENDED_WAIT_DISABLE);6 C# m" p' ~7 }' w; d5 N+ l2 p) Y @
# L- X) ~; J! F0 Y9 h
/*configures the wait timing for the device interfaced on CS2: o( m0 }( D1 H, F H
* W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/! V1 U) ?# i0 P0 t
EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,! V' X7 ~1 t# y ]. b" U% M. J
EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));" z) f$ Y, |% b" k3 f: @. h
3 b7 x! c4 U. }: Z7 j% x1 I! }
}
6 w4 R$ Q( J$ R+ d% ]还有cs4引脚的复用:3 W G1 R/ o" [5 c, {3 [
SYSCFG_PINMUX7_PINMUX7_11_8
8 [; i! l) l0 E0 [* { t4 x ^. `6 `& Q
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
8 W( U i3 w( O- X/ M% U1 K谢谢!
" q$ O) v3 l v- k0 C1 o: P& r. ]8 m9 S
# y4 S) n7 Z# t6 Y2 f+ e; {" s |
|