📄 main.c
字号:
#include "sysconf.h"
#include "snds.h"
#include "HW_func.h"
#include "HW_Periph.h"
#include "OS_Main.H"
/*回调句柄*/
//-++-++-+-++++--+--+------++-+++--++----+-++-++-+-++--+-+
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;
//下面是三种系统异常的中断回调函数,在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 + -