Thread 中讨论的其他器件:SYSBIOS
你好!!
这项质询是在没有满意答案的情况下提出的,所以我想再问一次
系统=裸机(即无操作系统、无 SYSBIOS 等)
现在、我将使用以下目录
ti/pdk_k2e_4_0_2/packages/ti/CSL/arch/a15 =>为我提供基本中断处理
按照 interrupt.h、"NUM_INTERRUPTS_EXTERNA"= 160。
根据 K2E 的数据表、中断总数= 480
对于160个中断、我已经检查了我的代码(如下所示)以使其轻松工作
INTC_Init();
intcnumb=120; stat=IntMasterStatusGet (); IntMasterIRQEnable (); intc_SystemEnable (intcnumb); intc_IntRegister (intcnumb、 intIsr、NULL); stat=IntMasterStatusGet (); a = 0; pinNum = 0; bankNum = 0; hGpio = CSL_GPIO_open (0); CSL_GPIO_setPinDirOutput (hGpio、pinNum); CSL_GPIO_setRisingEdgeDetect (hGpio、pinNum); CSL_GPIO_bankInterruptEnable (hGpio、bankNum); CSL_GPIO_clearOutputData (hGpio、pinNum); CSL_GPIO_getOutputData (hGpio、pinNum、&outData); CSL_GPIO_setOutputData (hGpio、pinNum); CSL_GPIO_getOutputData (hGpio、pinNum、&outData);
这里的中断完全触发、但当我尝试配置 NUM_INTERRUPTS_EXTERNAL 之上的任何中断时、如上所述、中断不会触发。 这是因为上面提到的目录中的 interrupt.c 可以检查是否存在(intrNum < NUM_INTERRUPTS_EXTERNAL)、但即使我绕过了这种情况、我仍然无法配置中断、这给我留下了2个选择
1.我将中断(例如 int numb 277)映射到160范围内的某个值
2.有一个寄存器允许我访问大于160的中断
无论在哪种情况下、我都不知道如何解决这个问题
提醒一下、系统是裸机 ARM 内核0