|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 ) c7 r8 K3 {& j
human 发表于 2017-7-12 09:18/ ^( O, _1 C/ k/ D. p
1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。
' S0 P% d" N/ [6 H* x: F# I) \2.可以, 修改方法:修改 ...
4 H/ b6 l; s4 I$ I4 |1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;, U9 s3 G7 R% e1 J& A7 d ~
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为( B9 A$ h/ ]4 U% m9 a+ J$ s% s8 q: J
mem=32M@0xc0000000 mem=64M@0xcc000000;
5 A6 l" `/ P; G: y$ B 这样做的目的,是给DSP预留足够的数据空间。
: J$ f @& O- Y4 l4 v! j 这样改完后,Uboot无法引导LINUX。
% H. E& G( V- P r/ @0 [7 Y4 L 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;: u8 ?$ z; j& [% \2 U
+ w, g/ C. f/ M$ r5 j; k) b2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
6 A2 ?% F' c; C2 X. F * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory3 t0 c- V4 w0 h
* ------------------------------------------------------------------------* d1 r: m: ~$ l# d. g( a
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
( J8 o; ~1 P" K4 n * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
9 ^: ^% Z5 s: V- o; `5 t- U * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
" [$ Q9 s9 X$ A2 v# Z+ ?: U. ^ * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
6 _' \ ~5 |9 j' ~' \5 @ * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux. B+ H. C4 E7 k: w# _3 x- ]
按照上述内存分配,DSP可以正常编译。/ A$ L' L4 b- }! }) b; Z/ ^
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000). y' ~. P9 Q7 Y2 s& {. t9 }
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。2 _* w8 ~" ]! N, o" l
因此DSP最终也无法运行。5 \* o( q6 e+ ]4 ] d
4 Q3 B8 J0 ~$ ]4 K
8 c1 A3 ~! X, J1 m! ~另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
( a/ y5 q7 ?5 U% [! G |
|