|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 $ W1 a" z/ Q1 Y+ h0 e2 Z0 X
human 发表于 2017-7-12 09:18
' Y6 \+ T( f2 g& a2 C. e1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。. s# g# J: q4 N5 W
2.可以, 修改方法:修改 ... ! X: v8 C& c! A( S) E* P4 O0 X) l
1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;0 u/ x8 [" n5 S2 w; y) M
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
0 {/ g2 d" q3 o* _% J( y$ m8 Z* b3 z mem=32M@0xc0000000 mem=64M@0xcc000000;
9 A0 g- x. b8 a; V- N# G6 J, g# O0 M 这样做的目的,是给DSP预留足够的数据空间。
+ ]# T t/ C8 s7 l2 y6 Y 这样改完后,Uboot无法引导LINUX。" j$ t4 v4 x8 m, D' H5 h& D$ z& P
然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;
4 Y0 O) M( [( y! E1 ]& o
9 Y+ u4 ]- D- h1 A, B% l) |2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:* Z. l1 S% a+ u6 P7 t; W4 N
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
, `6 A L }& c i * ------------------------------------------------------------------------8 |) L! v* q" z2 J( ]0 T
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
, n8 U4 G# O! }8 j * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
- q. K9 K; y: h( G * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
5 x: K/ J* j( |; Y! e) ~ * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
& m; u3 h& h5 W* }- L * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux/ y" d' c6 ^' [! O
按照上述内存分配,DSP可以正常编译。: C+ n& i U A, p6 F2 w+ o
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
; b! e8 U) J$ d. L" l& ^3 l 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。! X2 g2 H c3 O% g
因此DSP最终也无法运行。; D ^" z6 G7 B3 ?- @( a- y5 _3 s v7 ^
6 X0 e4 ~) s9 A' W" p
3 d1 ^& A2 b, S6 {9 P
另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。- }+ Q) B+ c u+ l [2 L! H
|
|