|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
: K% u7 Q$ D( {$ }# o v/ ]human 发表于 2017-7-12 09:18! N' j& J9 m. Q+ ~7 L# w
1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。' a: r) Y$ E9 E: {
2.可以, 修改方法:修改 ...
1 A& [) Q0 u8 r2 ?# g1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
# ?# _& t8 _$ \$ L' V3 ` 将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
9 o& x. j8 u0 P3 g T mem=32M@0xc0000000 mem=64M@0xcc000000;: Q, `! H7 ?$ P
这样做的目的,是给DSP预留足够的数据空间。7 m# v, Z5 L( ?) j% M
这样改完后,Uboot无法引导LINUX。3 r* X6 g9 P4 t9 s
然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;0 g! a _& T( H" i9 @7 ~
! _; q# }+ x' R% r2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
& ^3 K: q7 p9 T3 T * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
. _: p3 o4 `# ]: h' U * ------------------------------------------------------------------------
# N" T0 q+ e: _- _: G6 ] * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux( f6 S6 ]8 Y8 R$ E# M# L2 R; h
* C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
$ t |% v3 D$ r$ p' o * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
; ?( H- \; T/ f, _2 w. j * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
& G S% o5 ]1 x6 x+ ?1 z, n' c( e+ V, L * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux2 j3 m6 u6 ?" ~/ Q8 ~0 n4 L
按照上述内存分配,DSP可以正常编译。4 {0 @* l2 m% {) ]) [+ x
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
4 k1 Y6 p" A' x4 _! h' S 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。- E: g3 U/ m9 ?9 M% R
因此DSP最终也无法运行。
* F; ?6 J: F" ^! K: B- k
' V1 _, u3 O, ~) A6 n; K0 k0 V6 b3 O+ ?
另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
' w" W, t4 E1 g( f0 q) r+ h |
|