📄 system.~h
字号:
// Function prototypes for core system functions in system.c
#ifndef __SYSTEM_H
#define __SYSTEM_H
#include "stdint.h"
#include "malloc.h"
#include "s3c44b0x.h"
#include "font.h"
#include "ff.h"
extern void *HandlerUndef; //; 0x04
extern void *HandlerSWI; //; 0x08
extern void *HandlerPabort; //; 0x0c
extern void *HandlerDabort; //; 0x10
extern void *HandlerIRQ; //; 0x18
extern void *HandlerFIQ; //; 0x1c
extern void *HandlerEINT0; //; 0x20
extern void *HandlerEINT1;
extern void *HandlerEINT2;
extern void *HandlerEINT3;
extern void *HandlerEINT4567;
extern void *HandlerTICK; //; 0x34
extern void *HandlerZDMA0; //; 0x40
extern void *HandlerZDMA1;
extern void *HandlerBDMA0;
extern void *HandlerBDMA1;
extern void *HandlerWDT;
extern void *HandlerUERR01; //; 0x54
extern void *HandlerTIMER0; //; 0x60
extern void *HandlerTIMER1;
extern void *HandlerTIMER2;
extern void *HandlerTIMER3;
extern void *HandlerTIMER4;
extern void *HandlerTIMER5; //; 0x74
extern void *HandlerURXD0; //; 0x80
extern void *HandlerURXD1;
extern void *HandlerIIC;
extern void *HandlerSIO;
extern void *HandlerUTXD0;
extern void *HandlerUTXD1; //; 0x94
extern void *HandlerRTC; //; 0xa0
extern void *HandlerADC; //; 0xb4
/*===========================================================*/
/*----- System -----*/
void wCPUInit();
void wDelayMs(u32 delay);
void wDelayCycles(u32 delay);
/*===========================================================*/
/*----- Interrupts -----*/
//Interrupts
#define portIntADC 0
#define portIntRTC 1
#define portIntUTXD1 2
#define portIntUTXD0 3
#define portIntSIO 4
#define portIntIIC 5
#define portIntURXD1 6
#define portIntURXD0 7
#define portIntTIMER5 8
#define portIntTIMER4 9
#define portIntTIMER3 10
#define portIntTIMER2 11
#define portIntTIMER1 12
#define portIntTIMER0 13
#define portIntUERR01 14
#define portIntWDT 15
#define portIntBDMA1 16
#define portIntBDMA0 17
#define portIntZDMA1 18
#define portIntZDMA0 19
#define portIntTICK 20
#define portIntEINT4567 21
#define portIntEINT3 22
#define portIntEINT2 23
#define portIntEINT1 24
#define portIntEINT0 25
//--------------------
/* Initializes interrupt controller*/
void wInterruptInit();
/* Initializes interrupt handler */
void wInterruptHandlerInit (u32 uxInterrupt, void *vFunction);
/* Enables specified interrupt*/
#define dwInterruptEnable(uxInterrupt) \
{ \
*intmsk &= ~(1<<uxInterrupt); \
}
/* Disables specified interrupt*/
#define dwInterruptDisable (uxInterrupt) \
{ \
*intmsk &= (1<<uxInterrupt); \
}
/* Clears interrupt flag */
#define dwInterruptClear(uxInterrupt) \
{ \
*i_ispc &= ~(1<<uxInterrupt); \
}
/*===========================================================*/
/*----- Inter-IC Sound (IIS) -----*/
void wIISInit();
/*===========================================================*/
/*----- LCD Controller -----*/
/* Returns pointer to framebuffer start */
void *wFramebufferStart();
/* Initializes LCD controller */
void wLCDInit();
/* Sets pixel (x;y) in framebuffer to color */
void wSetPixel(u32 x, u32 y, u08 color);
/* Clears LCD to black */
void wClearLCD();
/* Draws char c at (x;y) using fonts in font.h */
void wDrawChar(u08 c, u32 x, u32 y, u08 color);
/* Draws string */
void wDrawString(u08* s, u32 x, u32 y, u08 color);
/* Draws string of length */
void wDrawStringL(u08* s, u32 x, u32 y, u32 length, u08 color);
/* Fills a rextangle with color */
void wFloodFill(u32 x1, u32 y1, u32 x2, u32 y2, u08 color);
/* Sets framebuffer start */
void wSetFramebufferStart(u32 *addr);
//----------
/* Draws 32 bit integer s in hex format*/
void wDrawHex32 (u32 s, u32 x, u32 y, u08 color);
/* Draws 8 bit integer s in hex format*/
void wDrawHex8 (u08 s, u32 x, u32 y, u08 color);
/* Draws integer s using format c*/
void draw_number (u32 s, u32 c, u32 x, u32 y, u08 color);
/*===========================================================*/
/*----- MACROS -----*/
#ifndef sbi
#define sbi(x,y) x|=(1 << (y))
#endif
#ifndef cbi
#define cbi(x,y) x&=~(1 << (y))
#endif
#ifndef tstb
#define tstb(x,y) (x & (1 << (y)) ? 1 : 0)
#endif
#ifndef toggle
#define toggle(x,y) x^=(1 << (y))
#endif
#ifndef BIT
#define BIT(x) (1 << (x))
#endif
#define VICVectAddr VICAddress
#define VICVectCntl4 VICVectPriority4
#define dwConfigReg(vReg, ulValue, ulPos, ulLength) \
{ \
*(vReg) &= ~( (0xFFFFFFFF >> (32-ulLength)) << ulPos); \
*(vReg) |= (ulValue << ulPos)&( (0xFFFFFFFF >> (32-ulLength)) << ulPos); \
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -