|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
- ?9 s7 Y) ^" c: \5 S, M7 [human 发表于 2017-7-12 09:18
# P* T* N0 N. L/ M9 X( Q1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。
& O' p9 O- S. p/ T1 l2.可以, 修改方法:修改 ... 4 c3 C, i$ |" x2 T7 }0 \( J2 x' |0 t( ?' u
1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;4 x# T$ M( d. ~
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
+ G: M7 k( Q, {8 u' O mem=32M@0xc0000000 mem=64M@0xcc000000;
_* P, i1 T" _% z* ~' ?2 i* n 这样做的目的,是给DSP预留足够的数据空间。
8 g8 Z5 M& L7 }. c% U2 k: j 这样改完后,Uboot无法引导LINUX。
* y. {1 z' a% U) \$ t 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;
+ E! Q* d5 J$ e# }0 l, i! h( w/ c
$ D% `; ?7 q( M) M9 f2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
; N& h# d! u1 r& p * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
; m- A$ @/ k- p/ v+ ?7 d * ------------------------------------------------------------------------
9 {+ N% ?7 e- f* a/ Y * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
" u2 h; t, w9 n" n! K& N* }* @ * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)2 {+ \4 E9 O" h# f# D2 I
* C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers). F: h( w+ P0 y0 c( e. L
* C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
" D, Z" f7 i' G( H* I * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
4 _* |/ K: ]0 s' r( F 按照上述内存分配,DSP可以正常编译。- P; i, c$ x) ^! {4 w$ [; p6 V. Y! g% a
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
. N) v% `5 ?' ~8 d$ ^ J 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。! Z6 y0 n/ |6 w" Y, |+ m$ ]. c
因此DSP最终也无法运行。. y9 k( S" a* _4 m
* a) Z; h2 o3 B* U3 G9 P
- c9 a: G% B+ F% _- g另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
. _) q% _3 R$ k |
|