|
板凳
楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
3 Z" X6 O; W! Y* b( `human 发表于 2017-7-12 09:18
6 h5 A! _1 w( _. r% ^- I1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。) \4 L6 c8 c. A7 b( o9 I- o0 w
2.可以, 修改方法:修改 ... # J% w4 |' m, {# b9 n3 y8 o
1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;2 G7 c6 C3 X( i* t
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
$ a' D; j6 n2 j W3 } j) ^; o mem=32M@0xc0000000 mem=64M@0xcc000000;" |: A" n8 C* \- Z- q6 I
这样做的目的,是给DSP预留足够的数据空间。
/ ?4 d2 e, o/ o: B d$ |& ? 这样改完后,Uboot无法引导LINUX。* u3 m7 S& J" Y, B1 c
然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;2 n& M4 g; z/ Z" C( p! h) ?5 M
! D$ O4 U! B8 N" q4 J6 s K1 H5 C
2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:2 }# K1 V z. K3 {. C
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory8 G- v4 n6 ?& u9 z8 D
* ------------------------------------------------------------------------
% t' }# O5 P' s+ ?7 J+ @$ V1 F * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
3 l9 i8 g& R5 l) F * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
$ G! S3 O; D3 V+ w * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)$ `2 K8 W3 t; x4 s: Q. K8 @
* C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)# t0 ^% [$ [' t& r$ i( m
* CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux5 b( P% N e$ \* g/ t! R
按照上述内存分配,DSP可以正常编译。
; i- O" `: d1 w$ M% ^5 P) j" ^ 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
$ _# h# H, ]6 d4 j% c& l& C" O 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。& a4 ?& S5 f+ K$ T! }
因此DSP最终也无法运行。
+ @5 p6 ]4 A, y( n& B! }% \* M; X8 y, j; A, N
* v9 G. ]5 F: O
另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
" D) V2 r; m- y+ v8 a4 |; | |
|