|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
8 k0 k+ n0 @& s4 z2 X* E1 t# P4 o* shuman 发表于 2017-7-12 09:18: h# B+ _4 t' e* g: w& {0 f* J
1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。0 V* I1 m, v" Y p# y
2.可以, 修改方法:修改 ... 6 f: C1 [+ ^) l% Y6 j" D( l
1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
. {9 b: K: P e1 N9 B 将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为- P2 S% e& E( \! S: D% o3 |
mem=32M@0xc0000000 mem=64M@0xcc000000;
$ h5 `2 w( n/ @8 K+ L2 ~ 这样做的目的,是给DSP预留足够的数据空间。6 G3 F$ e8 }" `% m) @
这样改完后,Uboot无法引导LINUX。
4 I' V& F" E/ |+ v% }& _ 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;. G+ j" i/ J: t7 K
% t2 A: k7 `/ {. x
2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:3 o6 V6 {7 E9 a& P7 c$ O
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
7 P0 |. g4 B+ ~4 t. ~6 i2 V * ------------------------------------------------------------------------( a8 K% `8 ?* A) V+ I1 g
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
- E* s0 ~8 e/ G0 F' x3 R# i; Z * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
* g' W, V5 z* A0 D- [: q * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
3 [3 E" J' b% I+ ` * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)8 t' O7 Y) s2 Y4 q" S; {% S: C% x
* CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux$ q1 C+ f4 e' y. U
按照上述内存分配,DSP可以正常编译。
3 g/ |: g- m9 G/ i$ a$ W 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
# }5 ?& G( x! {9 X" Y2 L 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
) E$ y% B5 q+ I& Q# [ 因此DSP最终也无法运行。
* ~, v8 W$ p" X
1 I8 o( j5 x1 Z! v" m$ P( s- D) M @ }
另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
+ D. D) x! E( }9 F3 Z; N |
|