This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

运行IPC例程时DSP crash问题

Other Parts Discussed in Thread: AM5728

你好,我在AM5728的开发板上运行IPC的ex02_messageq时遇到DSP crash问题,使用sdk版本如下 :

ti-processor-sdk-linux-am57xx-evm-05.03.00.07 

ti-processor-sdk-rtos-am57xx-evm-05.03.00.07

错误信息如下:

root@am57xx-evm:~#./app_host DSP1
--> main:
--> Main_main:
--> App_create:
App_create: Host is ready
<-- App_create:
--> App_exec:
App_exec: sending message 1
App_exec: sending message 2
App_exec: sending message 3
[ 450.017945] remoteproc remoteproc2: crash detected in 40800000.dsp: type watchdog
[ 450.025572] remoteproc remoteproc2: handling crash #1 in 40800000.dsp
[ 450.032270] remoteproc remoteproc2: recovering 40800000.dsp
recvfrom failed: Link has been severed (67)
rpmsgThreadFxn: transportGet failed on fd 11, returned -20
[ 450.059996] remoteproc remoteproc2: stopped remote processor 40800000.dsp
<-- App_exec: -20
<-- Main_main:
[ 450.070285] remoteproc remoteproc2: powering up 40800000.dsp
<-- main:
[ 450.086765] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 4487396
[ 450.102100] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
[ 450.108039] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
root@am57xx-evm:~# [ 450.114955] alloc_contig_range: [99004, 99007) PFNs busy
[ 450.130659] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 450.136346] remoteproc remoteproc2: registered virtio0 (type 7)
[ 450.142474] remoteproc remoteproc2: remote processor 40800000.dsp is now up
[ 450.150198] virtio_rpmsg_bus virtio0: creating channel rpmsg-proto addr 0x3d

请问是什么原因。

非常感谢

  • 请问有重新build过例程吗?还是用的是预编译好的例程?请参考下面的帖子是否有帮助?
    e2e.ti.com/.../2894013
  • 你好,我是按照IPC例程说明重新编译的,编译过程没有问题。
  • 我的编译和操作过程与参考帖子基本一致,但是问题还是出现。
    使用如下命令来看,DSP应该是起来了。
    root@am57xx-evm:/lib/firmware# echo stop > /sys/class/remoteproc/remoteproc2/state
    [ 362.240011] remoteproc remoteproc2: stopped remote processor 40800000.dsp
    root@am57xx-evm:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc2/state
    [ 414.848622] remoteproc remoteproc2: powering up 40800000.dsp
    [ 414.860901] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 4487396
    [ 414.876004] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [ 414.881949] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [ 414.901843] virtio_rpmsg_bus virtio1: rpmsg host is online
    [ 414.905307] virtio_rpmsg_bus virtio1: creating channel rpmsg-proto addr 0x3d
    [ 414.914566] remoteproc remoteproc2: registered virtio1 (type 7)
    [ 414.923773] remoteproc remoteproc2: remote processor 40800000.dsp is now up
  • 刚发现一个新的问题,使用预编译好的simple_buffer_example例程:
    systemctl stop ti-mct-daemon.service
    echo 40800000.dsp > /sys/bus/platform/drivers/omap-rproc/unbind
    ln -sf /usr/bin/simple_buffer_example/release/server_dsp.xe66 /lib/firmware/dra7-dsp1-fw.xe66
    echo 40800000.dsp > /sys/bus/platform/drivers/omap-rproc/bind
    /usr/bin/simple_buffer_example/release/app_host DSP1

    测试能够正常运行,但是有以下问题
    1、测试完成后没有其他任何操作,过1、2分钟会出现如下错误,跟前面错误差不多,区别是这个例程运行成功了.
    root@am57xx-evm:~# [ 5106.379761] remoteproc remoteproc2: crash detected in 40800000.dsp: type watchdog
    [ 5106.388580] remoteproc remoteproc2: handling crash #1 in 40800000.dsp
    [ 5106.395054] remoteproc remoteproc2: recovering 40800000.dsp
    [ 5106.423715] remoteproc remoteproc2: stopped remote processor 40800000.dsp
    [ 5106.430564] remoteproc remoteproc2: powering up 40800000.dsp
    [ 5106.443624] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 4684680
    [ 5106.458577] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [ 5106.464552] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [ 5106.480707] virtio_rpmsg_bus virtio1: rpmsg host is online
    [ 5106.486274] remoteproc remoteproc2: registered virtio1 (type 7)
    [ 5106.492283] remoteproc remoteproc2: remote processor 40800000.dsp is now up
    [ 5106.499988] virtio_rpmsg_bus virtio1: creating channel rpmsg-proto addr 0x3d
    [ 5106.507284] omap-rproc 40800000.dsp: received echo reply from 40800000.dsp

    2、运行成功后,接着再运行两次测试就会失败,必须重新unbind/bind一下,不知道是否正常。
  • 你好,感谢回复。

    一开始我参考的是http://processors.wiki.ti.com/index.php?oldid=223643&title=IPC_Quick_Start_Guide编译例程,一直出现上述问题。后来对比http://processors.wiki.ti.com/index.php?oldid=230648&title=IPC_Users_Guide发现前者没有设置IPC_INSTALL_PATH环境变量(但是编译却没有错误)。我设置以后重新编译例程,“./ap_host DSP1”执行成功,但“./ap_host DSP2”执行失败,没具体看代码,不知道是否正常,但至少DSP1可以通信了。

    下班后板卡断电。今天重新上电运行例程,发现上面两个命令都无法执行成功。反复断电也无法成功执行“./ap_host DSP1”。不知道什么原因。

  • 感谢分享!

    你在重做上面的流程可以运行吗?

  • 重新编译没有再试,时间太长。

    现在就是这种状态了,之前可以运行的“./app_host DSP1”无论如何都不能运行,完全没有头绪。开发板厂家没有任何技术支持,我也是服了。

  • 更新:
    今天又试了一下,使用e2e.ti.com/support/processors/f/791/t/709708?Linux-AM5728-IPC-examples-crash-on-loading-in-DSP中提到的预编译好的v4.1版本DSP可执行文件,DSP1和2都能够正常运行(很早的时候试过不行,不知道当时操作是不是有误)。再换回最新的5.03版本还是报错。
    目前结论:
    v5.03版本自行编译的文件DSP1曾经执行成功,成功后1~2分钟后报错,再次运行测试也会报错;DSP2始终无法执行成功;
    v4.1版本预编译文件DSP1和2都可以执行成功,并且多次运行测试程序都没有问题;

    检查过Dsp1.fg文件与链接中的一致,不知道v5.03版本是否有其他bug,或者我编译有问题?
  • 另外请教一下:
    PROCESSOR-SDK-LINUX-AM57X与PROCESSOR-SDK-LINUX-RT-AM57X两个包的区别是什么,应用场景分别是什么?我看TI官网上都是具有同样版本的Linux内核。
    另外这两个包的历史版本在哪里下载?
    非常感谢。
  • RT的表示是实时系统,也就是打了实时补丁的