⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evm50100.h

📁 本source code 為s3c4510的bootloader
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _EVM50100_H_#define _EVM50100_H_/* 			*//* Modified by 		*//* Dmitriy Cherkashin 	*//* dch@ucrouter.ru	*//* 2002, 2003		*//*/			*/#ifdef  _S3C4530_	#define _KS32C50100_#else#ifndef _KS32C50100_ #define _KS32C50100_ #endif#endif 								// _S3C4530_/*=====================================================================*//*                                                                     *//*                     SYSTEM CLOCK CONTROL                            *//*                                                                     *//*   * fMCLK   SYSTEM CLOCK Oscillator frequency                       *//*   * REF_CYCLE  Unit[ms], Default refresh cycle is 14ms              *//*                                                                     *//*=====================================================================*/#define MHz      1000000#ifdef  _S3C4530_/* compiled with S3C4530 support */#define fMCLK                 50*MHz       #define MCLK2                 (fMCLK/2)#define fMCLK_MHz	      50 		#else#ifdef  _KS32C50100_/* compiled without S3C4530 support */#define fMCLK                 50*MHz       #define MCLK2                 (fMCLK/2)#define fMCLK_MHz	      50 		// unit MHz 	#else/* KS32C5000(A)*/#define fMCLK                 33*MHz       #endif#endif// Delay for clock stabilization when CPU clock change#define Delay4ClkCange    100      #define REF_CYCLE          16      // Unit[ms]. default refresh cycle 16ms. 	/* - *//*=====================================================================*//*                                                                     *//*                      DRAM MEMORY                                    *//*                                                                     *//*                                                                     *//*=====================================================================*///#define DownLoadArea	0x1000050   //User code down load area////////////////////////////////////////////////////////////////////////////////// SERIAL CHANNEL (UART0/UART1) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#define baudrate       38400    ////////////////////////////////////////////////////////////////////////////////// TIMER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////* This is the number of timer ticks that occur per second. */#define TICKS_PER_SECOND        100/* Number of ticks for one second  */#define ONE_SECOND              1000    /* Define data types for ks32c6x00 */#define U8            unsigned char#define S8            signed char#define U16           unsigned short#define S16           signed short#define U32           unsigned long#define S32           signed long#define REG8          volatile unsigned char#define REG16         volatile unsigned short#define REG32         volatile unsigned long#define BYTE          U8/* max/mins */#define USHORT_MAX   65535  /* The maximum value of a uint16 variable. */#ifndef NULL#define NULL 0#endif////////////////////////////////////////////////////////////////////////////////// main.c //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////extern U32 syscfg_pd_id;		// SYSCFG PD_ID field#ifdef  _S3C4530_ #define is_s3c4530(id) ( ((id) == SYSCFG_PD_S3C4530X) || ((id) == SYSCFG_PD_S3C4530A) )#else#define is_s3c4530(id) (0)#endif								/* _S3C4530_ */#ifndef __GNUC__extern char Image$$RO$$Base[];		// Image Read Only Baseextern char Image$$RO$$Limit[];		// Image Read Only Limitextern char Image$$RW$$Base[];		// Image Read/Write Baseextern char Image$$RW$$Limit[];		// Image Read/Write Limitextern char Image$$ZI$$Base[];		// Image Zero Init Base extern char Image$$ZI$$Limit[];		// Image Zero Init Limit#define Image_RO_Base	Image$$RO$$Base#define Image_RO_Limit	Image$$RO$$Limit#define Image_RW_Base	Image$$RW$$Base#define Image_RW_Limit	Image$$RW$$Limit#define Image_ZI_Base	Image$$ZI$$Base#define Image_ZI_Limit	Image$$ZI$$Limit#else extern char _stext[];extern char _etext[];extern char _sdata[];extern char _edata[];extern char _sbss[];extern char _ebss[];#define Image_RO_Base	_stext	#define Image_RO_Limit	_etext#define Image_RW_Base	_sdata#define Image_RW_Limit	_edata#define Image_ZI_Base	_sbss#define Image_ZI_Limit	_ebss#endif 								/* __GNUC__ */extern void Main(void);			// main Menu function extern void InitEvb(void);		// Init evaluation boardextern void ViewSysConfig(void);  	// View System Configureation////////////////////////////////////////////////////////////////////////////////// isr.c ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////* Macro fucntions */#define	Enable_Int(n)       INTMASK &= ~(1<<(n))/* clear interrupt source bit */ #define	Disable_Int(n)	    INTMASK |= (1<<(n))	/* set interrupt source bit */#define Clear_PendingBit(n) INTPEND  = (1<<(n))	/* clear pending pit */#define SetPendingBit(n)    INTPNDTST= (1<<(n))  /* set pending bit via Interrupt Pending Test Register */ /*  *     Prototype for interrupt functions  */#define	MAXHNDLRS	21			/* Maximum # of interrupt  handlers *//* Function Prototype for Interrupt. ATTENTION : call before enable interrupt */extern void InitInterrupt(void);/* Clear all interrupt related register. Disable all interrupts (include interrupt mask register global bit), clear pending register, all interrupt FIQ interrupts  */extern void ClrIntStatus(void);  		/* Function Prototype for Exception Vector */extern void ISR_UndefHandler(REG32 *adr);	/* Undefined instruction  */extern void ISR_PrefetchHandler(REG32 *adr);	/* Prefetch Abort */extern void ISR_AbortHandler(REG32 *adr);	/* Data abort handler */extern void ISR_SwiHandler(void);		/* Software interrupt */extern void ISR_IrqHandler(void);		/* IRQ */	extern void ISR_FiqHandler(void);		/* FIQ *//* Function Prototype for Interrupt Setup */extern void SysSetInterrupt(int vector, void (*)(void));extern void * SysGetInterrupt(int vector);extern void ViewIntConfig(void);		/* Print INTMODE, INTMASK, INTPRI, INTPEND, INTOFFSET */extern void IntTest(void);			/* Interactive request to enter interruspts priority for each of 21 sources */extern void SetPriority(void);			/* Interactive set interrupt mode register, interrupt mask register */extern void SetIntMode(void);			////////////////////////////////////////////////////////////////////////////////// uart.c //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SYMBOL DEFINITIONS //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#define KEY_NL          0x0A		/* new line LF */#define KEY_CR          0x0D		/* carriage return */#define KEY_BSP         0x08		/* back space */#define KEY_ESC         0x1B		/* escape */#define KEY_CTRLZ       0x1A#define KEY_RUBOUT      0x7F#define CONSOLE            0  		/* default console channel */////////////////////////////////////////////////////////////////////////////////// UART INITIALIZE FUNCTIONS ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////extern U32  UART_Initialize(void);	/* Init UART0, UART1 parameters in sysconf.h */extern int  UARTSetSpeed(U32 ch,int sp);/* set UART channel speed */extern int  UARTGetSpeed(U32 ch);	/* read UART channel speed */ extern int  UARTWaitTxComp(int /*ch*/); /* wait tx completion in polling mode */extern int  UARTSetLoopBack(int /*ch*/, int on);/* set loop back mode */ ////////////////////////////////////////////////////////////////////////////////// UART INTERRUPT SERVICE ROUTINES & CONTROL FUNCTIONS /////////////////////////////////////////////////////////////////////////////////////////////////////////extern void UARTTxIntOn(int /*ch*/);	/* Enable UART0/1 Tx interrupt, Set UART0/1 Tx Interrupt pending bit */extern void UARTTxIntOff(int /*ch*/);	/* Diasable UART0/1 Tx Interrupt, Clear UART0/1 Tx Interrupt pending bit*/	extern void UARTRxIntOn(int /*ch*/);	/* Enable UART0/1 Rx&Status Interrupt */	extern void UARTRxIntOff(int /*ch*/);	/* Disable UART0/1 Rx&Status Interrupt */	 				 /************************************************************************//*            UART STANDARD I/O FUNCTIONS FOR INTERRUPT             	*//************************************************************************/extern  int  i_getc(int /*channel*/, U8 * /*ch*/); /* get char in interrupt Rx queue*/ 		//extern  U32  i_gets(U32 /*channel*/, U8 *);	/* unused contain ERROR *//* put char in interrupt mode, if last transmission not completed, return 0  */extern  int  i_putc(int /*channel*/, U8 /*ch*/);/* put string to UART */extern  int  i_puts(int /*channel*/, char * /*string*/);/* formatted output to console */extern  int  i_flush(int /*channel */);/************************************************************************//*            UART STANDARD I/O FUNCTIONS FOR POLLING               	*//************************************************************************//* put char to UART0/UART1 in polling mode */extern int  put_char(int /*channel*/, char /*data*/);	extern int  put_str(int /* ch */, char * /*str*/);/* get char from UART0/UART1 in polling mode */ extern char get_char(int /*channel*/); 			extern int  rcv_char(int /* ch */, U8 * /*val*/);/* Can be used in polling mode */extern void put_byte(char /* ch */);	/* put char to console */extern char get_byte(void);		/* get char from console */extern char get_upper(void);		/* get upper char from console */ extern char get_last(void);		/* get last received from console charecter */ extern int  kbd_hit(void);		/* return 1, if console buffer not empty */			////////////////////////////////////////////////////////////////////////////////extern void  UartTest(void);		/* main UART test menu */extern U32   UARTAutoLoopBack(int);  	/* Internal loopback poll */extern void  StringEcho(U32 /*ch*/);	/* String echo in interrupt mode */extern void  UARTConfigView(void);	/* View UART0/UART1 configuration */extern void PrintMBIT(char * mes);extern void PrintUBIT(int ch, char * mes, U32 * val, U32 msk);extern void PrintSBIT(int ch, char * mes, U32 * st, U32 msk, char * v1, char * v0);extern void PrintEBIT(int ch, char * mes, U32 * st, U32 msk);typedef struct { char * str; U32    val;}ABIT;extern void PrintABIT(int ch, char * mes, U32 * st, U32 msk, ABIT * abit);////////////////////////////////////////////////////////////////////////////////// memory.c ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// return free dram regions, in input size - sizeof arrays base, limit,// in output count of free regions extern int FreeDramRegions(U32 * base, U32 * limit, int *size);/* constants for memory allocation functions from cacheble and notcachable areas *//* DRAM1 (if used)............0x2000000 *//* DRAM0 (16Mbyte)............0x1000000 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -