board.c
来自「嵌入式系统mcf5272华恒光盘开发板附源代码」· C语言 代码 · 共 82 行
C
82 行
#include "arch.h"#include "mcfuart.h"char ident[] = "Motorola 5307 C3";char copyright[] = "(C) 2002 Ken Treis (ken@reasonability.net)";extern unsigned int downloadPort;extern unsigned int image_size;extern unsigned char *xfer_addr;extern unsigned char *down_addr;extern unsigned char *dest_addr;extern unsigned char *source_addr;extern unsigned long consoleBase;void configureConsole(){ consoleBase = MCFUART_BASE1; configureSerial(consoleBase, 19200, MCF_CLK);}void configureAuxSerial(){ configureSerial(MCFUART_BASE2, 115200, MCF_CLK);}void setLED() {};void setImageParams(){ downloadPort = 1; image_size = 0x000f0000; source_addr = (unsigned char *)0xfff10000; down_addr = (unsigned char *)0xfff10000; xfer_addr = (unsigned char *)0x20000; dest_addr = (unsigned char *)0x20000;}void setupBoard(){ volatile unsigned char *mbar; mbar = (volatile unsigned char *) MCF_MBAR; // CS0: Flash *((volatile unsigned short *) (mbar + MCFSIM_CSAR0)) = 0xfff0; *((volatile unsigned long *) (mbar + MCFSIM_CSMR0)) = 0x000f0001; *((volatile unsigned short *) (mbar + MCFSIM_CSCR0)) = 0x1980; /* CS2-7 */ *((volatile unsigned short *) (mbar + MCFSIM_CSBAR)) = 0x0000; *((volatile unsigned short *) (mbar + MCFSIM_CSBAMR)) = 0xFF00;}static int delay(int size){ int i; for (i = 0; (i < size); i++) nop();}void setupDRAM(){ volatile unsigned char *mbar = (unsigned char *)MCF_MBAR; unsigned long junk; *((volatile unsigned short *) (mbar + MCFSIM_DCR)) = 0x8130; *((volatile unsigned long *) (mbar + MCFSIM_DACR0)) = 0x00000300; *((volatile unsigned long *) (mbar + MCFSIM_DMR0)) = 0x003c0001; *((volatile unsigned long *) (mbar + MCFSIM_DACR0)) = 0x00000308; junk = *((volatile unsigned long *) 0x200); nop(); *((volatile unsigned long *) (mbar + MCFSIM_DACR0)) = 0x00008300; delay(0x1000); *((volatile unsigned long *) (mbar + MCFSIM_DACR0)) = 0x00008340; *((volatile unsigned long *) 0x200) = 0x00000000; delay(0x10);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?