📄 board.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -