教程里helloworld例程的IPC_start()出不来的问题。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7413|回复: 8
打印 上一主题 下一主题

教程里helloworld例程的IPC_start()出不来的问题。

[复制链接]

17

主题

30

帖子

149

积分

注册会员

Rank: 2

积分
149
跳转到指定楼层
楼主
发表于 2016-8-8 16:34:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近使用了教程里的helloworld例程实践一下,我再CCS里面新建了一个rtsc的工程,然后导入了helloworld例程的里的dsp文件夹和shared文件夹。删除里面的不需要的makefile等文件,其它没有任何修改。然后编译能正常通过了。我的平台是OMAPL138的,然后将hellworld例程里的arm的可执行程序app_host拷贝到板子里面。这个app_host是在串口终端手动执行的。然后我连上仿真器。调试CCS下的helloworld例程,在IPC_start()循环的下面设置了断点。将dsp程序跑起来后。然后串口终端输入命令./app_host DSP
3 N: w0 B$ u: P8 W( y# ~: j! i这样arm程序也跑起来了,但是发现CCS上面一直跑不到断点处。然后在IPC_start()处设断点,程序就停下来了,原来dsp程序一直在IPC_start()这个循环里面。请问为什么会这样呢?两个核都跑起来了为何dsp不能往下跑呢。helloworld的cfg和bld文件以及所有代码都没有改动,怎么不能跑呢?# F) @: S) W5 G3 }4 B' `8 p3 Q" M8 |
谁能解答一下?有什么可能?
6 I) m4 G# q* [2 m/ B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
沙发
发表于 2016-8-8 17:29:57 | 只看该作者
你是用ccs 直接加载的程序吗?4 g" T# o5 a6 V1 m

; u/ Y9 A1 A  M: V. `, L( ?要在 arm 板子上使用 slaveloader 加载你的 DSP 程序, C' s, u- L8 L% @/ J
然后在 ccs 下以 loadsymbol 的形式加载程序的 调试符号
) G( ~- w. `. x6 u可以参看创龙提供的 “OMAPL138 Syslink 双核 IDE 工程的建立与调试” 视频教程
回复 支持 反对

使用道具 举报

17

主题

30

帖子

149

积分

注册会员

Rank: 2

积分
149
板凳
 楼主| 发表于 2016-8-8 17:47:53 | 只看该作者
tenny 发表于 2016-8-8 17:29
! }2 p7 u. w0 t7 \' L6 n' U你是用ccs 直接加载的程序吗?
7 G# P2 M2 F7 t: C9 _! h& t8 o3 x
: Y' H2 W" M5 V" D6 U( G要在 arm 板子上使用 slaveloader 加载你的 DSP 程序
2 k- M4 V4 @  U7 a
set -x0 q  M# m0 [4 U) u* M
./slaveloader startup DSP server_dsp.xe674
- R- p- ~" v& ^7 e7 o2 ^#./app_host DSP
( i% r- n, U3 }+ Y#./slaveloader shutdown DSP1 h& x, ~; B. d. ]% u/ Z
我的run.sh脚本里把最后两行注释了。然后起来以后,CCS里面用loadsymbol和loadprogram都试过了。每次都在do{ipc_start ... ...}while 这个循环下面加断点后,然后手动输入./app_host DSP命令启动arm程序。但是都不能跑到断点处,都是在ipc_start()这边一直跑不出来。还有什么原因呢。
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
地板
发表于 2016-8-8 17:54:16 | 只看该作者
直接用没注释的 run.sh 可以跑?
回复 支持 反对

使用道具 举报

17

主题

30

帖子

149

积分

注册会员

Rank: 2

积分
149
5#
 楼主| 发表于 2016-8-8 18:01:53 | 只看该作者
tenny 发表于 2016-8-8 17:54
) c9 }6 i3 F& t& j+ L直接用没注释的 run.sh 可以跑?
2 P3 w  [3 U! q" d
直接跑例程里面的server_dsp.xe674和app_host时正常的。但是把这个helloworld的例程放到CCS里面自己编译出来以后的server_dsp.xe674就跑不了了。里面代码我什么都没有改,只是按照教程里的把makefile和删掉,把dsp里面的bin文件夹和config文件夹也删掉,然后clean一下,重新编译。然后app_host还是原来例程里的,没用换。这样就不行了,所以CCS调试加断点看了,才找到ipc_start()这里的问题。
. m' I* H( V  h' e$ Z请帮忙分析一下,我哪里会弄错了,包括cfg和bld文件也没动过。存粹是重新编译一下。
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
6#
发表于 2016-8-9 13:43:38 | 只看该作者
config.bld 文件问题吧,建议你参看 “OMAPL138 Syslink 双核 IDE 工程的建立与调试” 视频教程,里面有怎么在 ccs 下编译 ti 的 MessageQ 例程
回复 支持 反对

使用道具 举报

17

主题

30

帖子

149

积分

注册会员

Rank: 2

积分
149
7#
 楼主| 发表于 2016-8-9 13:56:28 | 只看该作者
tenny 发表于 2016-8-9 13:43
4 b) Q  h5 v- q1 a, U1 c% u2 C" sconfig.bld 文件问题吧,建议你参看 “OMAPL138 Syslink 双核 IDE 工程的建立与调试” 视频教程,里面有怎 ...
5 Q* C" \* V  N: {( Y
你好,首先感谢你的回复。
# Z8 S' g- o# G9 i4 K/ }“OMAPL138 Syslink 双核 IDE 工程的建立与调试”这个视频我后来看过了。我也自己从新在CCS下面新建一个工程,现在是这样的:我自己新建一个工程,然后导入helloworld例程的源码。我没有像视频里面那样重新建一个platform,我还有用的默认的platform,并且还是用的例程里面的config.bld.。然后我现在正常编译通过而且我将编译通过的out文件放进去直接用run.sh运行时正常的。
+ w6 ~" }  r9 r  y( G+ k2 o- z但是,目前的问题是,我想用CCS调试,用CCS加载的,用loadsymbols和loadprogram两种方式加载都试了,加载完成后然后在串口终端输入./app_host DSP以后,串口报错:8 D9 p3 r: Z) f) f% [5 g
root@omapl138-TY:~/5601#./app_host DSP
5 f, E) y: L( M. ]/ z' I( F*** Loader_getSymbolAddress: Failed to get the symbol address!
, e# G+ y/ {" j$ \5 ]3 c2 ^/ S) @% F& k        Error [0x8485f003] at Line no: 414 in file /home/hd/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/procMgr/common/Loader.c
  q( a+ A8 n& \' r# w*** ProcMgr_getSymbolAddress: Failed to get symbol address!/ Z" c5 I4 G0 m( H: E8 B9 u3 W
        Error [0x8485f003] at Line no: 2190 in file /home/hd/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/procMgr/common/ProcMgr.c
7 k* V+ C( I7 U4 d0 ]6 p+ f*** Platform_loadCallback: ProcMgr_getSymbolAddress failed
0 J3 F! @! A3 n8 l$ J+ C' r/ ?        Error [0xffffffff] at Line no: 1904 in file /home/hd/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/omapl1xx/Platform.c1 X; L5 |" Q( u: H
*** Ipc_control: Platform_loadCallback failed!
& y! k- i7 `7 |. _0 c! t, J+ @        Error [0xffffffff] at Line no: 828 in file /home/hd/ti/syslink_2_21_01_05/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Ipc.c( Y5 U2 m& f% ~' K

& Q2 T, ?7 R# x$ l请看一下,这个现象是啥情况。感觉我在板子上直接用run.sh运行程序,不管是例程里的out文件还是我自己编译的out文件,都能正常跑,但是一旦out文件用CCS加载以后,就不能正常跑了,我觉得以后要是想用CCS调试就不好用了。所以请帮忙看下现在的情况,为啥一用CCS加载就不能跑呢?/ S# Q8 ~/ ?. K& d
回复 支持 反对

使用道具 举报

17

主题

30

帖子

149

积分

注册会员

Rank: 2

积分
149
8#
 楼主| 发表于 2016-8-9 14:02:52 | 只看该作者
补充上面的:因为我看到视频教程里是从新建一个platform的。而我自己没有从新建一个platform,还是有CCS里面默认的OMAPL138的platform,因为这样编译出来的out文件在板子上直接slaveloader以后跑起来跟arm是能正常跑的并且正常通信的。所以我觉得就不需要新建platform了。但是用CCS加载就不行了,所以我觉得是加载的问题。请帮忙分析一下。我CCS下用loadsymbols和loadprogram方式都不能和arm正常跑,而且报上面的错误。slaveloader加载方式上有什么特别吗?
回复 支持 反对

使用道具 举报

0

主题

215

帖子

1246

积分

创龙

Rank: 8Rank: 8

积分
1246
9#
发表于 2016-8-10 08:54:47 | 只看该作者
不能用默认的 platfrom,按教程步骤走一遍吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-17 09:17 , Processed in 0.045060 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表