嵌入式开发者社区

标题: tl-messageq-gpmc-edma [打印本页]

作者: tang2018    时间: 2019-3-18 10:03
标题: tl-messageq-gpmc-edma
1.在tl-messageq-gpmc-edma例程中,改写了main_host.c文件,如下:
/*
*  ======== Main_main ========
*/
Int Main_main(Void)
{
    UInt16      remoteProcId;
    Int         status = 0;
    Int         i;
    Int         FPAG_DATA_SIZE = 0;

    printf("--> Main_main:\n");

    remoteProcId = MultiProc_getId(Main_remoteProcName);

    /* application create phase */
    status = App_create(remoteProcId);

    if(status < 0) goto leave;

    /* application execute phase */
    //status = App_exec();
    for(i = 0; i < 6; i++)
{
    status = App_exec(FPAG_DATA_SIZE);

    if(status < 0) goto leave;

    printf("FPAG_DATA_SIZE = %x, i = %d\n",FPAG_DATA_SIZE, i);

    FPAG_DATA_SIZE = FPAG_DATA_SIZE + 8 * 0x1000;

    printf("FPAG_DATA_SIZE = %x, i = %d\n",FPAG_DATA_SIZE, i);
}

    /* application delete phase */
    status = App_delete();

    if(status < 0) goto leave;
       
leave:
    printf("<-- Main_main:\n");

    status = (status >= 0 ? 0 : status);
    return (status);
}

在这个循环中,App_create执行1次,App_exec执行6次,App_delete执行1次,在执行./app_host DSP1时出现以下问题,就是App_exec只执行了1次,第二次时卡在了App_exec: message received, sending message 16,现象如下:
root@AM57xx-Tronlong:~/gpmc_edma_test/bin_003# ./app_host DSP1
--> main:
[  185.116656] omap-iommu 41501000.mmu: 41501000.mmu: version 3.0
[  185.122560] omap-iommu 41502000.mmu: 41502000.mmu: version 3.0
--> Main_main:
--> App_create:
/dev/mem opened.
Memory mapped at address 0x4f8b5000.
/dev/shm/gpmc_save opened.
App_create: Host is ready
<-- App_create:
--> App_exec:
App_exec: sending message 1
msg->addr = 99300000
msg->size = 40000
App_exec: sending message 2
msg->addr = 99301000
msg->size = 20000
App_exec: sending message 3
msg->addr = 99302000
msg->size = 15550
App_exec: sending message 4
msg->addr = 99303000
msg->size = 10000
App_exec: sending message 5
msg->addr = 99304000
msg->size = ccc8
App_exec: sending message 6
msg->addr = 99305000
msg->size = aaa8
App_exec: sending message 7
msg->addr = 99306000
msg->size = 9248
App_exec: sending message 8
msg->addr = 99307000
msg->size = 8000
App_exec: MessageQ_get msg addr 0x99300000, cmd 0x1000000
App_exec: message received, sending message 9
App_exec: MessageQ_get msg addr 0x99301000, cmd 0x1000000
App_exec: message received, sending message 10
App_exec: MessageQ_get msg addr 0x99302000, cmd 0x1000000
App_exec: message received, sending message 11
App_exec: MessageQ_get msg addr 0x99303000, cmd 0x1000000
App_exec: message received, sending message 12
App_exec: MessageQ_get msg addr 0x99304000, cmd 0x1000000
App_exec: message received, sending message 13
App_exec: MessageQ_get msg addr 0x99305000, cmd 0x1000000
App_exec: message received, sending message 14
App_exec: MessageQ_get msg addr 0x99306000, cmd 0x1000000
App_exec: message received, sending message 15
App_exec: MessageQ_get msg addr 0x99307000, cmd 0x1000000
App_exec: message received, sending message 16
App_exec: MessageQ_get msg addr 0x99300000, cmd 0x0
App_exec: message received, sending message 17
App_exec: MessageQ_get msg addr 0x99301000, cmd 0x0
App_exec: message received, sending message 18
App_exec: MessageQ_get msg addr 0x99302000, cmd 0x0
App_exec: message received, sending message 19
App_exec: MessageQ_get msg addr 0x99303000, cmd 0x0
App_exec: message received, sending message 20
App_exec: MessageQ_get msg addr 0x99304000, cmd 0x0
App_exec: message received, sending message 21
App_exec: MessageQ_get msg addr 0x99305000, cmd 0x0
App_exec: message received, sending message 22
App_exec: MessageQ_get msg addr 0x99306000, cmd 0x0
App_exec: message received, sending message 23
App_exec: MessageQ_get msg addr 0x99307000, cmd 0x0
file write times 32 KB cost: 0.023774 Sec, rate 1.314461MB/s
App_exec: message received, sending message 24
App_exec: message received
App_exec: message received
App_exec: message received
App_exec: message received
App_exec: message received
App_exec: message received
App_exec: message received
App_exec: message received
<-- App_exec: 0
--> App_delete:
<-- App_delete:
FPAG_DATA_SIZE = 8000, i = 0
FPAG_DATA_SIZE = 10000, i = 0
--> Main_main:
--> App_create:
/dev/mem opened.
Memory mapped error 0x99300000.
/dev/shm/gpmc_save opened.
App_create: Host is ready
<-- App_create:
--> App_exec:
App_exec: sending message 1
msg->addr = 99300000
msg->size = 80000
App_exec: sending message 2
msg->addr = 99302000
msg->size = 40000
App_exec: sending message 3
msg->addr = 99304000
msg->size = 2aaa8
App_exec: sending message 4
msg->addr = 99306000
msg->size = 20000
App_exec: sending message 5
msg->addr = 99308000
msg->size = 19998
App_exec: sending message 6
msg->addr = 9930a000
msg->size = 15550
App_exec: sending message 7
msg->addr = 9930c000
msg->size = 12490
App_exec: sending message 8
msg->addr = 9930e000
msg->size = 10000
App_exec: MessageQ_get msg addr 0x99300000, cmd 0x1000000
App_exec: message received, sending message 9
App_exec: MessageQ_get msg addr 0x99302000, cmd 0x1000000
App_exec: message received, sending message 10
App_exec: MessageQ_get msg addr 0x99304000, cmd 0x1000000
App_exec: message received, sending message 11
App_exec: MessageQ_get msg addr 0x99306000, cmd 0x1000000
App_exec: message received, sending message 12
App_exec: MessageQ_get msg addr 0x99308000, cmd 0x1000000
App_exec: message received, sending message 13
App_exec: MessageQ_get msg addr 0x9930a000, cmd 0x1000000
App_exec: message received, sending message 14
App_exec: MessageQ_get msg addr 0x9930c000, cmd 0x1000000
App_exec: message received, sending message 15
App_exec: MessageQ_get msg addr 0x9930e000, cmd 0x1000000
App_exec: message received, sending message 16

这是什么原因呢?是因为没有起中断吗?中断这块在哪看呢?怎么确定中断没有起?或者怎么控制起中断呢?

作者: 梁淑怡-Tronlong    时间: 2019-3-19 08:47
您好,
   您可以查看GPIO_IRQSTATUS_RAW_0寄存器,并读取其值。
[attach]4842[/attach]


作者: tang2018    时间: 2019-3-25 16:07
梁淑怡-Tronlong 发表于 2019-3-19 08:47
您好,
   您可以查看GPIO_IRQSTATUS_RAW_0寄存器,并读取其值。

您好,
     这个截图是哪个文件里的?
作者: 梁淑怡-Tronlong    时间: 2019-3-25 18:54
[attach]4858[/attach]




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