|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
5 w7 }1 Z4 m+ O$ P5 w7 w' Ihuman 发表于 2017-7-12 09:18
+ Q( e" A+ I/ B/ V1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。
) i/ `. h( I7 N, Q( ~: W, }* R) h2.可以, 修改方法:修改 ...
8 g2 t6 D. A8 q7 g3 X1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;- H* W7 l; p' p
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
3 g, q, w! u2 z- T, N d mem=32M@0xc0000000 mem=64M@0xcc000000;7 w% B4 {' X4 _* s6 w, O, i
这样做的目的,是给DSP预留足够的数据空间。. j* H) a1 l; d6 D
这样改完后,Uboot无法引导LINUX。
1 `/ O4 s% D1 j7 g! o8 W 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;2 q# r' h$ P2 f) ^5 X% E
7 f% k6 t7 x' r7 \) O2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
, q- o: {, L ~6 ?+ u s * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory4 y3 @, F+ x% e, {
* ------------------------------------------------------------------------
( `0 K" ~$ y6 G, K2 S4 w8 Q * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux" A+ w( f0 f' J+ c+ ~0 @! _ j
* C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)* p# W# j n2 Q. j
* C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)! z7 J6 B" k& O5 Z( F% ~
* C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)) e+ ]" P- \; V! I" _) e
* CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
+ F5 T7 F% f. M* I. { 按照上述内存分配,DSP可以正常编译。0 c+ Y6 F8 E( k% E s6 }4 i
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
. q, G; }, F3 y) F 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
/ O7 p! s1 f2 X' t6 y 因此DSP最终也无法运行。
8 i1 ^( f& O; K0 u5 @
- x+ Q; O7 L R) l+ O
. L) @- l8 P. w& W另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。7 K8 Y v9 g2 ]1 J2 A
|
|