|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 * e3 I8 h; o' w
human 发表于 2017-7-12 09:18
/ U- T' j. i; c' K7 |# N5 l1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。7 [4 P: }0 Q& D# s4 F0 f7 u
2.可以, 修改方法:修改 ...
5 ~$ f9 }- D) E/ O. @1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;' [3 b& x( B6 q- [2 ?% S8 J2 ?
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
, D# L8 T$ f% {* B5 Q: G8 R mem=32M@0xc0000000 mem=64M@0xcc000000;
/ i1 \& O5 U+ r! o. w% t8 L 这样做的目的,是给DSP预留足够的数据空间。
6 K) A* N# o; b 这样改完后,Uboot无法引导LINUX。
1 E' v5 Y1 R9 J: J- W! J 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;6 l! P0 ?8 f0 z8 ?+ |) Q; M( e* b
/ |: E4 l- a& u- I+ F& i3 K+ ]2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:5 ~+ c6 X! y+ Z( ?4 f
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory) \) F g2 b. B/ v% ~+ S: U
* ------------------------------------------------------------------------ c# d7 E: ^" a0 c g- l8 d
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux9 N: _ H( L; ?# B- A( ~7 I5 S
* C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
8 Z0 j5 g8 ]# v5 ?9 m * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)) |. J. O* R& \1 p P
* C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)4 S& S& v s# Q/ M
* CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux! h" J+ B' n! g: k: e/ H
按照上述内存分配,DSP可以正常编译。
5 Z) J) X& N9 K. F6 k+ d* n 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)) R( R% J9 W: Z! T! s* K, M* o2 _2 y1 }
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
" o* f0 P# y8 f) k; ^9 s: ^ G 因此DSP最终也无法运行。
1 w! V! d% B7 a* | b; \& [1 B* d- A0 w8 R6 v& J% g: k; o& m
' ?2 w6 G0 x6 g E另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。7 s) C5 e- A& c) y9 N# x# ^. S- ~
|
|