|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 ( a2 S3 q9 {# l9 \" v& Y
human 发表于 2017-7-12 09:18
0 }: z" L3 p1 p3 a( U1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。8 x* ~$ v' S' l2 V ^+ b
2.可以, 修改方法:修改 ...
% S3 }5 k) x R; f4 P2 F2 u, h1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
O1 ?9 C2 K6 v `3 H 将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
6 e* T7 |7 j6 Y) A6 _ mem=32M@0xc0000000 mem=64M@0xcc000000;- m0 Z, N! }# }7 F/ J1 @# s1 x
这样做的目的,是给DSP预留足够的数据空间。2 Q3 k' J, ?: g2 F$ r
这样改完后,Uboot无法引导LINUX。# _5 g5 Q/ S2 H6 e. m. `! k7 m
然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;4 X7 m9 C! M: |* Q/ U- }( Y0 n- ?) P
( h* a' L9 t; e# a- K3 W+ l: c$ |3 Q2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:7 V/ M& U6 ]5 c1 J9 k7 P9 z
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory7 |& g5 t6 _6 ^9 n1 V3 Z( a" `
* ------------------------------------------------------------------------
$ u7 b# ~4 E) t! x) R8 a * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
4 U E' o( F3 k* {" k9 L) p/ x% L * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
3 k3 Q+ @4 Q: a% O* X' A * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
- d" h8 s! H3 q4 |% S# U/ B; } * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
( y% d, O1 Q( i8 p, B& x * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
5 ?0 G u; C# m# j( b 按照上述内存分配,DSP可以正常编译。2 p2 R$ l4 b0 Q% N" ?+ [
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)6 E8 u/ k& ~3 N$ R8 v
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。4 S! |; G8 q, F- p5 ~
因此DSP最终也无法运行。
) s9 Y( t# u; a! ~9 i# _) Y& R7 p, m& ?* u# @
, U9 A6 I4 u+ |2 v6 U
另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
) L( w2 w& s' v$ e7 q2 H |
|