|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 $ o! k7 B4 Y: i A6 t& }
human 发表于 2017-7-12 09:18
3 ?7 f: m) ~, L6 D8 R& E1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。" y4 x- a: g# u: ^ d$ T$ O& x
2.可以, 修改方法:修改 ... # w1 K9 N0 k) w( t3 t
1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;# h* |7 f, y9 z* U2 l" F
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为1 {8 O# K! z: Q# | `5 q% S4 N
mem=32M@0xc0000000 mem=64M@0xcc000000; L. d" _8 U% R; H- ~
这样做的目的,是给DSP预留足够的数据空间。, q9 t9 Y7 z+ f+ A% q( D
这样改完后,Uboot无法引导LINUX。
+ X ?$ O( {" s; n# t4 o 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;! _1 I- U4 S1 J) D
+ Q4 g% O r6 {6 Q1 E% t5 n2 T$ I2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:( X3 ~. |* U! }2 a/ \; `' l. X' l/ Z
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
1 O( J+ @7 a- u- [& _ * ------------------------------------------------------------------------
! O" O' Y) ^/ Y * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
/ S+ t, O! K; _7 p * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
6 {# O; A- |3 V+ u1 e9 Z * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
+ S" P' b# y) [% c7 Y- I& k * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
# N2 J" f8 w* a9 X" A6 a$ i * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
6 a2 [# |7 a. k8 ^# o6 b8 Y 按照上述内存分配,DSP可以正常编译。" _' t; {6 @3 |6 x; }, ^- ?) @
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
( H2 H' E4 b& L/ m4 m4 r 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
2 ^: t4 \! b# q" r& Q8 k- w5 ` 因此DSP最终也无法运行。
2 f" d! e% Y! X [4 t) I. u
/ k7 f6 m/ L1 r3 U
% w z/ y( I4 D另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
* a) w' e0 {& V2 W3 Z* u+ o# S% v |
|