|
端午节快乐,请教个问题,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) {. g6 u$ U5 G: V" c C3 i' g
/* Power on the EMIFA */2 v k/ m6 E3 u- k$ c
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,% E% {/ O4 I8 a V0 @
PSC_MDCTL_NEXT_ENABLE);
5 g: l- F( r0 t; T! F
; w3 A9 B& u3 ?4 D0 n' L5 S$ Z p /*selects the EMIFA pins for use*/! O2 m0 U5 v; n7 _- W
EMIFAPinMuxSetup();1 T' s. [# [! t# W! ?2 g+ S1 G) g
. \7 @" ~) ~8 x
/*set the buswidth of async device connected. 16bit*/! ~* e# r4 `8 T6 K: _9 `- r
EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,* @7 l( T. }4 l( O
EMIFA_DATA_BUSWITTH_16BIT);
$ z- d1 `/ R Z4 A
. Z5 C- @# S' h2 R+ P' ]8 z p; m /*selects the aync interface opmode. :Normal Mode*/0 ~/ F7 S% P( [" d& }5 E* E
EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,$ I F8 z" ?7 K+ S( p1 k8 B+ J
EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
& Z, Z$ i0 q ~
) I5 N, u+ v) V0 d# [ /*Extended Wait disable.*/. k* \5 Z4 \3 ]7 `. E% a5 T# a
EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
( y$ c7 ?$ F& t8 D" v EMIFA_EXTENDED_WAIT_DISABLE);
0 }$ J5 g7 L4 b" l" K, U5 h
: Z' z% @3 C( ~4 b! O3 m: [ /*configures the wait timing for the device interfaced on CS27 U% w2 C4 A; d0 u" ?5 s
* W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/
1 z( K, Z7 p5 `1 @6 y: o; o EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,1 X- g L* C* Q' k. g( @% C* l+ Z
EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));2 Y( R9 O q3 I2 ?0 K2 ^) W
7 T4 k8 A9 g' P, I}: M% w/ B) M( g. B+ z# O
还有cs4引脚的复用:
# N: Y. f+ Z4 I7 F" E8 ?# MSYSCFG_PINMUX7_PINMUX7_11_8" I- j/ \) S4 H/ h+ ^2 i) M
8 R1 Y0 \. Y8 v2 F9 t6 K1 L/ H
最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?+ Z3 R7 \# V% a8 s( S
谢谢!
6 X" j: m. l+ u" T. U
7 z, C* {) H# L/ F" L; P* U. [+ b' [# g4 i( d) K+ ~- q. A
|
|