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.

AM4379 DMTIMER移植

Other Parts Discussed in Thread: TIDEP0057

你好:

      我使用的开发板是AM437X IDK。在CCS条件下进行编程。我直接将C:\ti\pdk_am437x_1_0_5\packages\ti\starterware\binary\dmtimer_app_cdt\bin\am43xx-evm\gcc。目录下的已经编译完成的文件通过SD卡下载进入开发板中,程序可以正常进入中断计数。

   但是我把该工程移植到TIDEP0057中提供的程序工程文件中,移植以后程序可以编译成功,但是下载进去以后,程序进不了中断。不清楚这是为什么?

  • 是不是没有移植完整,另外检查下初始化的时候有没有使能中断。

  • 但是我使用C:\ti\pdk_am437x_1_0_5\packages\ti\starterware\binary\dmtimer_app_cdt\bin\am43xx-evm\gcc。他提前编译好的二进制文件通过SD卡下载进开发板可以使用啊。所以代码应该不会出问题把,编译的代码应该就是这一份啊。我移植过去以后也没有落下什么东西,我仔细看了,该配置的都配置了。但是进不去中断,是因为我移植的工程里面跑了操作系统,建立了系统任务有关吗?该工程是TIDEP0057下面提供的 Tidcbv9 project 。

  • 要检查中断配置这部分,看看是不是没有使能中断。

  • 你好:

    /* Perform initialization of Interrupt controller*/
    status = INTCInit(FALSE);

    int32_t DMTimerAppIntrConfig(dmtimerAppCfg_t *pDmtimerObj)
    {
    /* Precondition : Enable ARM interrupt control and initialise the Interrupt
    Controller. */

    /* local Structure which holds the Interrupt parameters. */
    intcIntrParams_t intrParams;
    int32_t returnVal = S_PASS;
    intrParams.triggerType = pDmtimerObj->trigType;

    /* Currently hard coded priority number */
    intrParams.priority = 0x20U;
    intrParams.pFnIntrHandler = pDmtimerObj->pFnIntrHandler;
    /* Pointer to the app object being passed to handler */
    intrParams.pUserParam = pDmtimerObj->pUserParam;
    /* Currently hard coded - non secure mode */
    intrParams.isIntrSecure = FALSE;

    returnVal = INTCConfigIntr(pDmtimerObj->intrLine, &intrParams,FALSE);

    return (returnVal);
    }

    if (NULL!= pDmtimerObj->pFnIntrHandler)
    /*there is an Interrupt handler to be installed */
    {
    /* Enable the DMTimer interrupts */
    DMTimerIntEnable(pDmtimerObj->instAddr, pDmtimerObj->intrMask);
    }

    中断配置信息都有了,中断也已经使能了啊。但是还是进不去。

x 出现错误。请重试或与管理员联系。