|  | 
板凳
 
 
 楼主|
发表于 2017-7-12 09:57:56
|
只看该作者 
| 本帖最后由 newdsp 于 2017-7-12 10:00 编辑 7 ]: o7 K3 s; E$ ? 
 / {* r  W9 T/ e+ J) V1 ihuman 发表于 2017-7-12 09:18$ r9 {9 X8 g$ a1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。* P- _- J$ @$ \5 n% f. e' k7 H
 2.可以, 修改方法:修改 ...
1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
 3 k# I+ ]' Z) T* @3 ?4 S1 y    将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
 I) Z5 [$ G7 D) d  l  d5 T( a   mem=32M@0xc0000000 mem=64M@0xcc000000;7 R9 t! |2 f1 @9 g) s3 I5 p
 这样做的目的,是给DSP预留足够的数据空间。
 ) C* U6 U8 E$ L% B) Y" [; n   这样改完后,Uboot无法引导LINUX。
 1 ]% }; ^; b/ V: ^/ H   然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;
 ; c2 l5 l' a) [: f& b* ^/ R9 a! U9 I+ Q2 A$ E" f3 K8 d
 2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:  Z1 C7 l) j: d9 q
 *  C000_0000 - CFFF_FFFF   1000_0000  ( 256 MB) External Memory. ?" x5 X1 K# c/ g7 i( H8 z
 *  ------------------------------------------------------------------------
 f9 @. M$ ~" q; ~1 H9 f: y   *  C000_0000 - C1FF_FFFF   200_0000  (  32 MB)         Linux
 ) S  U8 n; u: G( X6 S4 g8 y   *  C200_0000 - C200_FFFF     2_0000  ( 128 KB)         SR_0 (ipc)
 : W6 \9 L: Q- H. ^, x5 k   *  C201_0000 - C202_FFFF    FE_0000  (15.875MB)         SR_1 (data buffers)5 w) p( d8 c4 W- H7 l$ d( G& t
 *  C300_0000 - CBFF_FFFF   900_0000  ( 160 MB)         DSP_PROG (code, data)& O) b9 v( Z# Z% `/ [! o" j: ]
 *  CC00_0000 - CFFF_FFFF   400_0000  (  64 MB)         Linux
 ' t2 |& S! @) l+ }$ r  按照上述内存分配,DSP可以正常编译。
 " a5 k. m3 k) D+ I: O2 r  但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)0 I9 U7 e5 q) L& u: g2 V: f
 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。& H& p$ L  u9 Y9 k4 {3 ~6 t
 因此DSP最终也无法运行。
 % `* z. ^1 V3 H9 d1 v* X. H
 ( @4 q+ {6 D) Z, e6 [; N  v7 u& X4 U- Z
 另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。# m! x& q1 x) D1 Y
 
 | 
 |