|
|
端午节快乐,请教个问题,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) {) c" v- `5 s, o( W! a2 E
/* Power on the EMIFA */' H P8 D/ N4 k4 ~
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_EMIFA, PSC_POWERDOMAIN_ALWAYS_ON,/ H* C% H0 Z( r. `) v8 _
PSC_MDCTL_NEXT_ENABLE);) D, o+ `' W$ D0 T# C, r$ a$ {
1 }# Z+ B" s0 P& M9 V
/*selects the EMIFA pins for use*/
; K+ R, o+ W3 \+ [4 o) }5 D EMIFAPinMuxSetup();. B4 D3 \8 P" Y( d6 x- f
/ T/ d6 Y) |( N% J
/*set the buswidth of async device connected. 16bit*/5 P5 z' G0 m# C! C& w( N
EMIFAAsyncDevDataBusWidthSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,1 G: E/ C; S* R- o6 B
EMIFA_DATA_BUSWITTH_16BIT); k" E, w! Q n8 G1 z5 @) U% m
; Z! h3 R2 Y) `4 {( ?
/*selects the aync interface opmode. :Normal Mode*/
' }: u, D- f1 B! |4 I# i EMIFAAsyncDevOpModeSelect(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,2 M% Y/ o+ _! x4 |! i K
EMIFA_ASYNC_INTERFACE_NORMAL_MODE);
: |+ T2 ~" r- }# M# q" i& a
6 L# j& S/ `/ @7 s, _. D z /*Extended Wait disable.*/) k; v; J4 C1 ~7 a0 i
EMIFAExtendedWaitConfig(SOC_EMIFA_0_REGS,EMIFA_CHIP_SELECT_4,
# Y) j4 b1 w; \ g5 L% h6 d k EMIFA_EXTENDED_WAIT_DISABLE);
7 x% `- K% B' u
2 \9 I; {5 o- r$ s /*configures the wait timing for the device interfaced on CS2
* V5 D2 Z- s7 B6 p6 {* p% n+ U3 a0 B * W_SETUP/W_HOLD W_STROBE/R_STROBE W_HOLD/R_HOLD TA*/, X: C8 M" M3 Y' H/ O( n5 X- O
EMIFAWaitTimingConfig(SOC_EMIFA_0_REGS, EMIFA_CHIP_SELECT_4,1 X; B! V! _, K( {8 x
EMIFA_ASYNC_WAITTIME_CONFIG(4, 4, 4, 4, 4, 4, 1));
% m% s `; _. p0 i. a7 O( ?3 W4 x1 _) L7 g, }& y
}3 t0 F3 o8 Q9 x% K8 t$ H9 o0 d, ~
还有cs4引脚的复用:% o9 `' ^2 R2 }) l9 \
SYSCFG_PINMUX7_PINMUX7_11_8
6 s$ v) g9 Z' ]" Z. s
$ C% Y! g7 Q& ?% J最后结果还是不能通信,请问下,对于EMIF使用CS4片选,还需要做其他工作吗?
* j% @7 ~8 ^5 \1 g, @& ]谢谢!0 M% Q D: x! ?/ I- v, N/ K
% l% e+ J5 y t! v! d" Z
- D4 x2 L) f( u# c- i |
|