?? main.c
字號:
#include "sysconf.h"
#include "snds.h"
#include "HW_func.h"
#include "HW_Periph.h"
#include "OS_Main.H"
/*回調(diào)句柄*/
//-++-++-+-++++--+--+------++-+++--++----+-++-++-+-++--+-+
extern void (*IntHandlerUndef)(REG32 *adr);
extern void (*IntHandlerPrefetch)(REG32 *adr);
extern void (*IntHandlerAbort)(REG32 *adr);
//-++-+--+-+++--++--+------+---+---++-+--+-++-+++--++--+++-++++--+-++-+--+
void UndefIntHandler(REG32 *adr);
void PrefetchIntHandler(REG32 *adr);
void AbortIntHandler(REG32 *adr);
//-++-+--+-++--++---+------++++--+-++-++++-+++-+-+
void C_Entry(void)
{
//中斷初始化(硬件控制器的配置、配置中斷服務程序)
//-++---++-++----+-++-+++---+------++---++-+++--+--++----+-++---++-++-+-++
InitInterrupt();//硬件控制器的配置
IntHandlerUndef = UndefIntHandler;
IntHandlerPrefetch = PrefetchIntHandler;
IntHandlerAbort = AbortIntHandler;//配置三個異常中斷服務程序
//-++-++-+-++++--+--+------++---++-++-++++-++--+---++--+-+
UART_Initialize();
IOPMOD |= 0xff; //設置GPIO全為輸出方式.
IOPDATA= 0xff;
OS();
}
U32 *UndefIntAddr;
U32 *PrefetchIntAddr;
U32 *AbortIntAddr;
//下面是三種系統(tǒng)異常的中斷回調(diào)函數(shù),在C_Entry中配置
void UndefIntHandler(REG32 *adr)
{
UndefIntAddr = (U32*) adr;
Print("\n** Trap : Undefined Handler\n") ;
Print("\rUndefined Address : %08x ",adr);
Print("\rUndefined Data : %08x ",*adr);
while(1);/*dy's debug*/
}
void PrefetchIntHandler(REG32 *adr)
{
PrefetchIntAddr = (U32*)adr;
Print("\n** Trap : Prefetch Abort Handler\n") ;
Print("\rPrefetch Abort Address : %08x ",adr);
Print("\rPrefetch Abort Data : %08x ",*adr);
while(1);/*dy's debug*/
}
void AbortIntHandler(REG32 *adr)
{
AbortIntAddr = (U32*)adr;
Print("\n** Trap : Data Abort Handler\n") ;
Print("\rData Abort Address : %08x ",adr);
Print("\rData Abort Data : %08x ",*adr);
while(1);/*dy's debug*/
}
//-++++--+-++-++++-+++-+-+--+------++----+-+++--+--++--+-+
//-++-++-+-++++--+--+------++--++--+++--+--++-+--+-++--+-+-++-+++--++--+--
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -