嵌入式开发者社区

标题: 双核运行问题 [打印本页]

作者: tulipyyf    时间: 2015-2-11 10:43
标题: 双核运行问题
DSP核部分使用UPP定时 (每2.5ms)接收FPGA数据,数据量为4096*16bits ,数据存储在DDR上,DSP开辟的DDR空间为单独的c2000000 c3FFFFFF ,这个空间是TI官方双核样例板提供的(ex04_sharedregion)样例。
4 z- ?$ @: l3 A/ N/ Y3 t: yARM与DSP和通过SYSLINK通信。
" Y, H  P$ ^* V! Z2 |' X9 I0 z1 p现在的问题是,当ARM部分应用程序规模小时,加载DSP核程序后,双核运行正常。当ARM部分应用程序组件增大时,发现加载DSP核心应用程序运行一下就会停止运行。但是如果修改DSP程序一关闭DSP核心部分的FPGA存储DDR数据功能,DSP核心能正常运行! h. ~5 _4 s/ f& V/ L2 S
我现在怀疑,是不是DDR使用出现问题,系统中DSP核心应用程序UPP定时存储数据到DDR,DSP程序又是在DDR上运行,ARM部分也是用DDR最为内存,如果DDR过于繁忙的时候,会导致DDR忙不过来,导致DSP核停止运行。
; ^# S' ^6 i/ y* Q+ B# p开机运行时设置的UBOOT参数如下:
3 C1 p' ~  q/ Csetenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 mem=32M@0xc0000000 mem=64M@0xc4000000
7 e: E7 Z/ D' \/ Z9 S6 B7 r5 F应该DDR在使用上没有冲突,上面空出的空间32M为DSP使用
- {1 g, o/ [6 O1 g+ \( t' m5 s* ^2 L- B/ r. t

( n1 y4 `& k; `8 j0 _# A
作者: 希望缄默    时间: 2015-2-11 11:24
将 uPP 数据缓存放置在 DSP L2 RAM 中+ L& v- h9 L2 }4 }5 A& b" a& g

作者: tulipyyf    时间: 2015-2-11 11:32
谢谢答复! ?1 g8 [8 j6 R6 `; [: z' {
但是问题是,我现在DSP部分的程序编写完毕后,使用“ex04_sharedregion”做ARM部分应用程序修改,运行没有问题。测试能稳定运行只是后来增加QT编程,加了其他组件后,出线问题
5 G% x2 d, n) ]3 L, f1 t  P第2 ,就是我现在存储的数据量比较大 如果存储在L2 RAM 上,空间应该不够。 总大小为(4096*16its)*8*20=640k*16bits 大小   循环存储
0 |, D% |/ f4 w% M2 K! {
作者: tulipyyf    时间: 2015-2-11 11:53
我想在怀疑是不是DDR 使用上有问题~~ 冲突导致 DSP核运行错误不工作了~~急盼传龙工程师回复
+ B" M6 j' K  H( a
作者: 希望缄默    时间: 2015-2-11 14:25
错误应该不会 但是负载大的话会造成运行缓慢' k  |1 I* A5 _- e' K& `% F% z" T7 F

作者: tulipyyf    时间: 2015-2-11 15:29
谢谢答复,追加问题说明,我理解是,DSP的DMA存储数据到DDR必须要优先级最高,如果他经常让给ARM运行的话,会导致UPP的DMA操作DDR是不是会错误~~
/ o+ @1 B5 A3 c; D
作者: 希望缄默    时间: 2015-2-11 16:09
tulipyyf 发表于 2015-2-11 15:29
" |6 i6 y# i, D2 ]9 A谢谢答复,追加问题说明,我理解是,DSP的DMA存储数据到DDR必须要优先级最高,如果他经常让给ARM运行的话, ...

. t+ d6 J8 ^" m+ I0 [# A8 {( R优先级是可以调整的
. t! H9 y$ N* X3 C+ W6 Y7 L至于你所诉情况 目前我们还没有遇到过
; T0 L, _& ^6 v- V但是我的建议还是需要高速存取的数据放到 L2! y- O  W3 @( k  M

作者: tulipyyf    时间: 2015-2-11 16:32
你好,我们发现问题了,现在是ARM的QT部分  当打开串口1后,系统DSP端直接不运行。说明打开串口1这个函数导致的错误。难道打开串口1导致DDR部分有问题。再次求解4 M+ e7 c  [, p- f5 P

作者: tulipyyf    时间: 2015-2-11 16:36
如注销打开串口1 函数,运行就没有问题~~  请教创龙工程师2 ]3 p0 G3 o: B- H% `) i; W1 I+ c

作者: 希望缄默    时间: 2015-2-11 16:36
tulipyyf 发表于 2015-2-11 16:32- l$ T3 \5 ?: {* q. o
你好,我们发现问题了,现在是ARM的QT部分  当打开串口1后,系统DSP端直接不运行。说明打开串口1这个函数导 ...

7 V5 u+ X2 ]( }如果你是参考的 AD7606 的例程 那个例程中 DSP 使用 串口1 输出状态信息~
2 X# t3 j' U1 `% {$ y# F
作者: tulipyyf    时间: 2015-2-11 16:38
DSP部分我没有使用串口
: G- m$ G; y$ @: V( R5 cARM部分 串口2是控制台,现在ARM部分串口1打开出线问题
- _$ w& b. `: n' Y7 A
作者: tulipyyf    时间: 2015-2-11 16:41
谢谢,我们DSP没有使用串口
$ `) W. @4 p/ m2 P) UARM部分串口2为控制台输出,串口1用作通信使用,ARM部分现在打开串口1发现直接导致DSP核停止运行+ N1 T/ g8 F; o9 k# s





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4