Thread 中讨论的其他器件:SYSBIOS
您好!
我有一个程序以"配置"模式启动、此时 SysBIOS 未初始化、功能应用程序仍然未启动、在此配置中、我使用 FIFO 模式下的 SCI 执行一些调试/配置。
我的 SCI FIFO 的代码通过 以下方式初始化和解初始化:
void idSCIinitFIFO(void)
{
// Initialize PIE and clear PIE registers. Disables CPU interrupts.
Interrupt_initModule();
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
Interrupt_initVectorTable();
Interrupt_register(INT_SCIA_RX, sciaRXFIFOISR);
Interrupt_register(INT_SCIA_TX, sciaTXFIFOISR);
SCI_resetChannels(SCIA_BASE);
SCI_enableFIFO(SCIA_BASE);
SCI_enableInterrupt(SCIA_BASE, (SCI_INT_RXFF | SCI_INT_TXFF));
SCI_disableInterrupt(SCIA_BASE, SCI_INT_RXERR);
SCI_setFIFOInterruptLevel(SCIA_BASE, SCI_FIFO_TX0, SCI_FIFO_RX1);
SCI_performSoftwareReset(SCIA_BASE);
SCI_resetTxFIFO(SCIA_BASE);
SCI_resetRxFIFO(SCIA_BASE);
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);
// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
EINT;
ERTM;
}
void idSCIdisableFIFO(void)
{
// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)
// To disable if generates problems, actually deactivated in case is activated during initialization
DINT;
DRTM;
SCI_disableInterrupt(SCIA_BASE, (SCI_INT_RXFF | SCI_INT_TXFF | SCI_INT_TXRDY | SCI_INT_RXRDY_BRKDT | SCI_INT_RXERR));
SCI_resetTxFIFO(SCIA_BASE);
SCI_resetRxFIFO(SCIA_BASE);
SCI_disableFIFO(SCIA_BASE);
Interrupt_disable(INT_SCIA_RX);
Interrupt_disable(INT_SCIA_TX);
Interrupt_unregister(INT_SCIA_RX);
Interrupt_unregister(INT_SCIA_TX);
SCI_performSoftwareReset(SCIA_BASE);
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);
EINT;
ERTM;
}
似乎有剩余的东西,因为当我 Bios_Start ()我有一个未被处理的中断上升.
在启动 SYSBIOS 之前、有一些东西我漏掉了? 我强烈建议避免将此中断添加到 SYSBIOS、因为它实际上是在应用程序外部。