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.

AM5728: IPU 使用定时器出现:44000000.ocp:L3 Custom Error: MASTER IPU1 TARGET L4_PER1_P3 (Idle): Data Access in Supervisor mode during Functional access 问题

Part Number: AM5728

工程描述:使用CCS9.3,基于TI IPC例程ex02_messageeq工程开发

问题描述:在linux端加载编译好的固件就一直打印以下问题,能帮忙分析一下是什么问题导致的吗?谢谢!

定时器配置:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Timer_Params timerParams;
Timer_Handle myTimer;
Timer_Params_init(&timerParams);
timerParams.arg = 1;
timerParams.period = 1000000;
timerParams.periodType = Timer_PeriodType_MICROSECS;
timerParams.runMode = Timer_RunMode_CONTINUOUS;
timerParams.startMode = Timer_StartMode_USER;
myTimer = Timer_create(Timer_ANY, &timer_isr_function, &timerParams, NULL);
if (myTimer == NULL) {
System_abort("Timer create failed");
} else {
Timer_start( myTimer );
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

问题打印:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[ 621.772765] omap-iommu 58882000.mmu: 58882000.mmu: version 2.1
[ 621.785218] remoteproc remoteproc0: stopped remote processor 58820000.ipu
[ 621.793208] remoteproc remoteproc0: releasing 58820000.ipu
[ 621.799547] omap-rproc 58820000.ipu: assigned reserved memory node ipu1_cma@9d000000
[ 621.808533] remoteproc remoteproc0: 58820000.ipu is available
root@AM57xx-Tronlong:/app# [ 621.820692] remoteproc remoteproc0: powering up 58820000.ipu
[ 621.827303] remoteproc remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 4253360
[ 621.835313] omap-iommu 58882000.mmu: 58882000.mmu: version 2.1
[ 621.850917] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 621.856443] ------------[ cut here ]------------
[ 621.856459] WARNING: CPU: 0 PID: 992 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x25c/0x36c
[ 621.856466] 44000000.ocp:L3 Custom Error: MASTER IPU1 TARGET L4_PER1_P3 (Idle): Data Access in Supervisor mode during Functional access
[ 621.856541] Modules linked in: bc_example(O) cmemk(O) pru_rproc pruss_intc rpmsg_rpc rpmsg_proto pruss c_can_platform c_can can_dev omap_wdt snd_soc_simple_card snd_soc_simple_card_utils pvrsrvkm(O) snd_soc_omap_hdmi_audio m25p80 snd_soc_tlv320aic3x rtc_omap rtc_palmas extcon_palmas pruss_soc_bus omap_remoteproc virtio_rpmsg_bus rpmsg_core remoteproc sch_fq_codel cryptodev(O) [last unloaded: cmemk]
[ 621.856550] CPU: 0 PID: 992 Comm: kworker/0:0 Tainted: G W O 4.9.65-rt23 #55
[ 621.856553] Hardware name: Generic DRA74X (Flattened Device Tree)
[ 621.856570] Workqueue: events request_firmware_work_func
[ 621.856575] Backtrace:
[ 621.856590] [<c020b2a4>] (dump_backtrace) from [<c020b560>] (show_stack+0x18/0x1c)
[ 621.856597] r7:00000009 r6:600f0193 r5:00000000 r4:c10227e8
[ 621.856605] [<c020b548>] (show_stack) from [<c04ce8c0>] (dump_stack+0x8c/0xa0)
[ 621.856614] [<c04ce834>] (dump_stack) from [<c022d768>] (__warn+0xec/0x104)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 请贴出SDK版本,另外您是在添加了TIMER配置代码之后才出现问题的吗?是在DSP端添加的吗?请再详细描述一下,谢谢!

  • 版本信息:

    ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05
    ti-processor-sdk-rtos-am57xx-evm-04.03.00.05

    问题是在添加TIMER代码后出现的,是在IPU1上添加的。我这边使用的是“ti-linux-ipc-examples\ex02_messageq\src\ipu1”的例程进行修改的。例程可以正常使用。

  • 感谢提供信息,我会在咨询相关工程师后给您回复。

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    &ipu1 {
    status = "okay";
    memory-region = <&ipu1_cma_pool>;
    mboxes = <&mailbox5 &mbox_ipu1_ipc3x>;
    timers = <&timer11>;
    watchdog-timers = <&timer7>, <&timer8>;
    };
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    是否在IPU1中使用定时器需要指定“timer11”,也就是需改代码如下:
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Timer_Params_init(&timerParams);
    timerParams.arg = 1;
    timerParams.period = 1000000;
    timerParams.periodType = Timer_PeriodType_MICROSECS;
    timerParams.runMode = Timer_RunMode_CONTINUOUS;
    // timerParams.startMode = Timer_StartMode_USER;
    // myTimer = Timer_create(Timer_ANY, &timer_isr_function, &timerParams, NULL);
    myTimer = Timer_create(10, &timer_isr_function, &timerParams, NULL);
    if (myTimer == NULL) {
    System_abort("Timer create failed");
    } else {
    Timer_start( myTimer );
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    谢谢!

  • 您好我们已将您的问题升级到英文论坛,预计将在24小时内回复您。谢谢!

  • 报错问题解决了,预计是未先初始化定时器时钟,就开始操作定时器了。
    但是目前发现定时器无法正常工作,正在继续查找原因。