|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 , f! U9 S2 G# [7 m
human 发表于 2017-7-12 09:18
& S& `. m: q1 p/ k3 q+ ~" v1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。' M d0 O8 c j6 ?6 h
2.可以, 修改方法:修改 ...
4 D# G s5 D9 F) o5 D" a9 q u1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
5 F6 x- {( }' K' [2 Z 将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为/ q! L3 i* u( Z. l) {# j
mem=32M@0xc0000000 mem=64M@0xcc000000;
' k! R4 ~: z# g 这样做的目的,是给DSP预留足够的数据空间。& L' c8 |! t. Q% x/ ]) v3 F
这样改完后,Uboot无法引导LINUX。
& y: x$ H& H/ e/ u 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;6 ]8 h0 G3 c$ y
* B. G4 }4 j- h0 C1 t+ K3 B2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
# i- e* Y$ z6 X5 S, k/ } * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory4 F- D( ?% v. u- S
* ------------------------------------------------------------------------
1 [; V: U6 W, m0 i6 j. l2 U * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux. t5 G' ]7 k7 z( C. v7 X4 C
* C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)- S8 I8 q5 b+ l* _ C9 X
* C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers); d( ?0 r( ^1 a8 O
* C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)! v/ ?* e( d1 m8 F- M
* CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
" S- a6 o7 U8 P6 S8 Q 按照上述内存分配,DSP可以正常编译。: {. i9 H" y' j: J; l. W" ~
但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)" e& D0 @7 B2 ]" }( T. c$ `
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。
5 f9 d* ?6 ~, w# T3 O: l$ i0 i+ h 因此DSP最终也无法运行。
! g3 K2 C& m0 p$ m1 _+ K; A" t ?. Y2 L8 ^& c' w
- O8 z8 b- _2 @, X" j, k' C4 y6 {另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。8 m; w6 N6 `4 D2 [$ q
|
|