正常的任务能运行,但是fifo中断函数没办法执行,配置情况下
#include <xdc/std.h> #include <xdc/runtime/Error.h> #include <xdc/runtime/System.h> #include <ti/sysbios/BIOS.h> #include <ti/sysbios/knl/Task.h> #include <xdc/runtime/log.h> #include "DSP28x_Project.h" // Device Headerfile and Examples Include File #include <xdc/cfg/global.h> void func_tsk0(void); void func_tsk1(void); void sciaRxFifoIsr(void);
/*
* ======== main ========
*/
Int main()
{
InitSysCtrl();
DisableDog();
InitSci();
Task_Handle task;
Error_Block eb;
System_printf("enter main()\n");
Error_init(&eb);
task = Task_create(taskFxn, NULL, &eb);
if (task == NULL) {
System_printf("Task_create() failed!\n");
BIOS_exit(0);
}
BIOS_start(); /* does not return */
return(0);
}
void sciaRxFifoIsr(void)
{
System_printf("enter_isr\n");
while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
SciaRegs.SCITXBUF=0xff; // Send data
ScicRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag
ScicRegs.SCIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag
}
void scia_fifo_init(void)
{
SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
SciaRegs.SCICTL2.bit.TXINTENA =1;
SciaRegs.SCICTL2.bit.RXBKINTENA =1;
SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz.
SciaRegs.SCILBAUD =0x00E7;
// SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 25MHz.
// SciaRegs.SCILBAUD =0x0044;
// SciaRegs.SCIHBAUD = 0x0000;
// SciaRegs.SCILBAUD = SCI_PRD;
SciaRegs.SCIFFTX.all=0xC028;
SciaRegs.SCIFFRX.all=0x2070;
SciaRegs.SCIFFCT.all=0x00;
SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset
SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;
SciaRegs.SCIFFRX.bit.RXFIFORESET=1;
}
程序运行情况如下


