|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
2 M# \; v3 N( N2 rhuman 发表于 2017-7-12 09:18, I$ p! T, B- S3 M! l
1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。
) B' f" O, s) W. c5 l( ]! o/ q2.可以, 修改方法:修改 ...
2 ^" A- S% `+ m( X* o' o4 o8 T0 k1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
/ ?( ?; Z1 y' N% T 将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为& K6 l! B. y% v4 A
mem=32M@0xc0000000 mem=64M@0xcc000000;
4 Z' U1 z e9 M o, [2 ~& D 这样做的目的,是给DSP预留足够的数据空间。
k$ g; z9 Y+ {; }- d# C 这样改完后,Uboot无法引导LINUX。
& ` h2 l- m9 p 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;
; p. I5 T* V) b* N' E- Y/ a( I# \' S. Q& Y5 |
2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
2 i' l& }# m; p1 ] * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
9 t& w6 N% r' w+ ] * ------------------------------------------------------------------------" r; e! Z3 s, ?1 E) z
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
( G ~: G2 u C' n8 M! I* I * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)6 b5 h. Q+ s) x' {+ L9 i4 g
* C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)5 n( M0 M1 T' u& k' Y
* C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
! n( \4 W% k8 r1 F Z$ S * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
+ c# s( A" O% E 按照上述内存分配,DSP可以正常编译。
3 H; a7 T6 x+ I- Q# D2 @ 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)& q0 H t1 h) a* P5 d( _
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
- Y1 A, S1 j0 _6 `3 p* U6 n 因此DSP最终也无法运行。; ] r8 s N4 X0 p; d
: L& |% f1 b# u5 Q
. A+ [% A. Y F& b: M/ F另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
8 d3 E' V& c0 e7 P0 z7 C, N |
|