|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
/ g. a4 O* \6 u- J! Ohuman 发表于 2017-7-12 09:18& `8 ~4 O+ h+ v$ A7 L7 I. d
1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。3 E6 t! ^$ c! v1 U
2.可以, 修改方法:修改 ...
8 L' H- p4 `8 [2 A$ i% [( L1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
1 x1 y: B( H Y6 Z/ g3 h, _3 h 将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
) O0 i. m* E& A% z% D/ \ \ mem=32M@0xc0000000 mem=64M@0xcc000000;
k2 `4 z9 R" X4 G+ ~ 这样做的目的,是给DSP预留足够的数据空间。! n; b- p' u6 x
这样改完后,Uboot无法引导LINUX。
m( l0 y1 o; c. D 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;/ ]/ D# ^/ t; h# y+ @- i- U
7 _! V" }2 A( E$ c9 o" }2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
$ z; I( h# x( u+ C6 N' d * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory/ m7 Q1 g5 | r4 R7 D2 D0 g
* ------------------------------------------------------------------------
. E. |2 }0 h7 c) H. y5 V( _ * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux* S/ s0 b: L0 M. c
* C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
" G" R2 x! a$ P+ O* y. X" N * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
8 h# O6 i% O: p( A, b" e * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)( V7 L$ F8 u3 E+ {
* CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux4 W1 {9 h( a' Y; d) p
按照上述内存分配,DSP可以正常编译。. O6 o @2 I1 d9 I9 a
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
! }4 c$ _, Y0 h+ ] 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
& b- j7 P* P" S3 T4 M( | 因此DSP最终也无法运行。
7 B) `' i. h% l: q2 Z# g6 Y3 l. J3 \6 D4 R1 T9 A- d
; x) r" N6 P5 G4 m8 [
另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。; M* a+ `2 ~0 }( m7 M8 s
|
|