|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
2 Z; C, A; o/ ?: C' `human 发表于 2017-7-12 09:18
/ H3 r. n& |0 U1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。
7 s7 D, {1 h$ C8 q6 o2 Z: \2.可以, 修改方法:修改 ... 4 h: ?% t! } b0 |; B
1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;- q% ~' U7 B- x- }7 w& I0 z
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为% {* M& |7 k2 Q
mem=32M@0xc0000000 mem=64M@0xcc000000;
" a* G! N- k5 O5 X 这样做的目的,是给DSP预留足够的数据空间。) \# q' `* x4 Y9 D9 [& w
这样改完后,Uboot无法引导LINUX。
9 ?% B% u2 o4 `6 [. U: Y" \ 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;4 C' n! _+ X% e+ z4 f3 Z! B7 V
/ I- ?3 J: b( E4 i* _2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
/ D) E3 \: X9 L * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
8 p) u# v7 ~- s p8 P* U * ------------------------------------------------------------------------9 m- t* R' \. D$ P1 ~
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
0 ^; E* I& t" J' o * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
1 n; V, A; e4 ]6 ~! S: Q+ S9 `. p/ _ * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
& v) y% [8 ?; w9 M% ? * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)5 U% O" X+ Q* p8 l
* CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux$ s% [8 V; j! @" {9 L
按照上述内存分配,DSP可以正常编译。
4 R8 V4 ^3 m# Q# ?! X 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000): p" I3 h4 f! a0 r0 G1 C, u
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
A* K2 r- t2 K. j 因此DSP最终也无法运行。; F/ r6 h- x+ ^
, {2 X1 W- ~6 q; W$ b3 E4 |: B/ @7 S6 W) a8 Z4 J
另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
0 v. }. Q8 X' d8 \ |
|