|
|
板凳

楼主 |
发表于 2017-7-12 09:57:56
|
只看该作者
本帖最后由 newdsp 于 2017-7-12 10:00 编辑 & D. ?* J1 d8 [% V" v& s/ S4 i
human 发表于 2017-7-12 09:18; o4 y! H; Z, y; C2 k* G& O
1.EMIFA的BA1/BA0和触摸屏管脚连接是没有冲突的,可能是软件配置问题或信号干扰。5 c) E/ A2 `" H% `8 J
2.可以, 修改方法:修改 ...
" C; z) L" s- Q# |6 q1 J1.对ARM端的内存分配,我们按照文档《6-2-U-Boot启动参数详解.pdf》中的说明,调整了Uboot中ARM的内存分配;0 A( h) \- n/ `: o
将启动参数mem_args由原来的:mem=32M@0xc0000000 mem=192M@0xc4000000,调整为
: C. O5 q- O; U0 P/ u9 k' y mem=32M@0xc0000000 mem=64M@0xcc000000;8 F" y. G! R( \2 f, T" G
这样做的目的,是给DSP预留足够的数据空间。( r, d8 p7 r. k7 N i3 y0 V
这样改完后,Uboot无法引导LINUX。
& {3 G. p* F+ `1 u7 P 然后再次断电重启后,启动参数mem_args又恢复为原来的mem=32M@0xc0000000 mem=192M@0xc4000000,我们做的修改丢失了。但这时可以UBOOT引导LINUX;
- ?/ d" i& \3 n* u$ I0 h: X3 \
5 u. w, _# h$ q3 Q; B) P2. 对DSP端的内存分配,由于我们没有用仿真器,而是用makefile进行程序编译,因此对我们而言内存分配是一个叫config.bld的文件,我们的内存分配方式如下:8 c7 y! r1 R: s: @" U6 {* g+ }( ~7 x
* C000_0000 - CFFF_FFFF 1000_0000 ( 256 MB) External Memory
2 X |/ y1 e) M F s6 M * ------------------------------------------------------------------------
$ z( H0 b- z9 F! p$ ~) I" T * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux+ d1 t, Y' t: j% M! t5 C1 d
* C200_0000 - C200_FFFF 2_0000 ( 128 KB) SR_0 (ipc)
$ ?# A" U* e+ W* R( a$ @- A) p * C201_0000 - C202_FFFF FE_0000 (15.875MB) SR_1 (data buffers)
% I; _! x. s$ B# ~5 `" E * C300_0000 - CBFF_FFFF 900_0000 ( 160 MB) DSP_PROG (code, data)
9 D! |: S" L! H" J8 j" H * CC00_0000 - CFFF_FFFF 400_0000 ( 64 MB) Linux) Z4 T' @6 \( k: v p
按照上述内存分配,DSP可以正常编译。
5 p' A$ k k) X% _& p3 q 但由于ARM段在修改内存后不能启动(此时 mem=32M@0xc0000000 mem=64M@0xcc000000)
G Z- z' F* [. x9 i 而能启动时(此时mem=32M@0xc0000000 mem=192M@0xc4000000),ARM与DSP在0xc4000000~0xCBFF_FFFF之间有冲突,因此无法加载DSP。. h& N$ x' r6 d$ d% m Y) e
因此DSP最终也无法运行。( z% u k/ ~) R3 i- E4 T4 n' K
" K9 V) u$ N8 J9 m2 L/ y
; A& P. I8 T* O- Q. k( D另:对于触摸屏失效的解答,没有指导意义。因为冲突就在哪里摆着。且电路都是原来开发板采用的电路。
0 x! N) H7 Y# {! i: H& ] |
|