|
板凳
楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑
6 \& C, w5 s$ K# e1 {human 发表于 2017-7-12 09:18; X" }! H4 |4 j, u( e& D
1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。
, R i, t" m( H2.可以, 修改方法:修改 ...
& U! i9 K$ V/ K6 [, A/ z3 f1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;
' B* l( t: P$ k9 R 将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为6 u" s) E5 z" Z4 R3 S
mem=32M@0xc0000000 mem=64M@0xcc000000;
/ f3 K- H# _4 ?; e" z$ v 这样做的目的,是给DSP预留足够的数据空间。& l' e S: d7 C* u. ^6 t; B3 p4 j
这样改完后,Uboot无法引导LINUX。& a9 A" ]$ E3 \; c- Z: p* l
然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;$ ~: O% r+ V: H& U# T( C
+ q* }( P$ }$ q- f2 @ S1 L
2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:
- o' O Z7 o. y v% k * C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
4 l) S' R) g6 B# ]6 H * ------------------------------------------------------------------------1 a$ I5 q2 g& @) E5 D
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux
2 `2 K. q3 U: l5 X * C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
! N0 X# y d+ o: }5 n; W: | * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
* ?9 g9 a5 Q& g# B" [1 C% N8 `! \ * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
# _; n- ?5 ^* @ * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux
+ _' d+ B. z! Y2 V, `2 S" { 按照上述内存分配,DSP可以正常编译。
; R* u6 t+ k' }: {/ k 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)" @/ O: o6 l% _5 ]- x: w
而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。; z- x1 T; q4 q/ F1 n
因此DSP最终也无法运行。- b0 q6 q- h0 y. W6 ]7 p2 W
1 r8 s8 i$ Z: X4 V1 N2 X& _
8 j8 I, t! v O另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。% \8 ?2 Y% g! L$ }
|
|