|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 ! K5 ^7 `0 G6 s# C
human 发表于 2017-7-12 09:18
2 D1 D8 [, \% [& O `1 M% _% t1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。
& Y: k" \3 t3 Z& A* I2.可以, 修改方法:修改 ...
3 \' H, @4 e4 w& v% |3 d5 F4 [1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;, V) V6 }3 r3 K# P$ A( z/ v
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
3 ]* N* a& |, B+ y mem=32M@0xc0000000 mem=64M@0xcc000000;/ @7 k, x+ N2 N7 {
这样做的目的,是给DSP预留足够的数据空间。! b' ]+ |! m! C( a! }0 ~. _* ]1 z& z$ x
这样改完后,Uboot无法引导LINUX。
' J) L# N: [% m) s+ b/ R& {+ ] 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;
6 F7 g7 a+ [ o4 q6 R( N" i4 P: |: P. k
2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:, Y$ J3 |5 T2 m8 _, D: x
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
$ |9 J3 w! h e: x0 Q * ------------------------------------------------------------------------
+ P& m: B" t! I2 C q v/ d * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
5 Z* u0 y. o& Z9 \ * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
3 @+ Q0 }4 |2 J * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
* v$ S$ K3 Y8 j5 m$ I * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
2 I- Q# |6 |" {- @ c' g * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
! l$ j5 V+ }- a- ] 按照上述内存分配,DSP可以正常编译。
6 Q! Q2 D Y* V$ B& } 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)1 o$ w! s& ]: ~* c6 d4 F# T3 A" T! |
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
1 l& R' }6 ^# r' { 因此DSP最终也无法运行。* }! ?. o i% x% O
3 N0 [# M3 @2 w0 }
! |( ]/ p8 [7 z- ]- z" W1 G另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。2 H; a- R% w) v$ _* o5 w
|
|