你好:
我使用的开发板是AM437X IDK。在CCS条件下进行编程。我直接将C:\ti\pdk_am437x_1_0_5\packages\ti\starterware\binary\dmtimer_app_cdt\bin\am43xx-evm\gcc。目录下的已经编译完成的文件通过SD卡下载进入开发板中,程序可以正常进入中断计数。
但是我把该工程移植到TIDEP0057中提供的程序工程文件中,移植以后程序可以编译成功,但是下载进去以后,程序进不了中断。不清楚这是为什么?
Jian Zhou:
是不是没有移植完整,另外检查下初始化的时候有没有使能中断。
bo LIU19:
回复 Jian Zhou:
但是我使用C:\ti\pdk_am437x_1_0_5\packages\ti\starterware\binary\dmtimer_app_cdt\bin\am43xx-evm\gcc。他提前编译好的二进制文件通过SD卡下载进开发板可以使用啊。所以代码应该不会出问题把,编译的代码应该就是这一份啊。我移植过去以后也没有落下什么东西,我仔细看了,该配置的都配置了。但是进不去中断,是因为我移植的工程里面跑了操作系统,建立了系统任务有关吗?该工程是TIDEP0057下面提供的 Tidcbv9 project 。
Jian Zhou:
回复 bo LIU19:
要检查中断配置这部分,看看是不是没有使能中断。
bo LIU19:
回复 Jian Zhou:
你好:
/* 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); }
中断配置信息都有了,中断也已经使能了啊。但是还是进不去。