2# db10
void main(void)
{
//--- CPU Initialization
InitSysCtrl(); // Initialize the CPU
InitWatchdog(); // Initialize the Watchdog Timer
InitGpio(); // Initialize the shared GPIO pins
InitXintf();
EDIS;
DINT;
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl(); // Initialize and enable the PIE
InitPieVectTable();
OSInit(); /* Initialize uC/OS-II */
OSTaskCreate(TaskStart, (void *)0, (void *)&TaskStk[0][0], 0);
OSStart();
}
void TaskStart(void *data)
{
data=data;
InitCpuTimers();
EALLOW; // This is needed to write to EALLOW protected registers
IER |= M_INT1;
PieVectTable.TINT0 = &OSTickISR;//ISRTimer0;//
PieVectTable.USER11 = &OSCtxSw;//任务切换模拟中断 用指令asm(" TRAP #30")来调用实现
// Enable TINT0 in the PIE: Group 1 interrupt 7
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
// Timer 1 connected to int13 by yang
XIntruptRegs.XNMICR.bit.SELECT= 0;
ConfigCpuTimer(&CpuTimer0, 150, 1000);
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
StartCpuTimer0();
OSTaskCreate(Task1, (void *)0, (void *)&TaskStk[1][0], 6);
while(1)
{
OSTimeDly(100);
}
}程序大概就是这个样子的
|