📄 main.c
字号:
//***************************************************************
// ARM BOOT ROUTE VER1.0@0x0C000000 for 44B0X release
// bjwork2007@gmail.com
// chenjun @ 2005-6-10
//***************************************************************
#include "..\inc\usart.h"
#include "..\inc\sysinit.h"
#include "..\inc\common.h"
#include "..\inc\utilities.h"
#include "..\inc\command.h"
#include "..\inc\NorFlash.h"
extern unsigned int ResetEntry;
extern unsigned int BaseOfROM;
extern unsigned int TopOfROM;
extern unsigned int BaseOfBSS;
extern unsigned int BaseOfZero;
extern unsigned int EndOfBSS;
/********************************************************************************************/
int main()
{
unsigned int i,AppBootSize,time_out;
void (*fp)(void);
PortInit();
puts("\n\n*******************************************************************************\n");
puts("** BJWORK ARM CORE STUDIO **\n");
puts("** NXP LPC2220/2210 ARM7TDMI BIOS Loader **\n");
puts("** VER 1.0.0.0 Chenjun 2008-07-20 **\n");
puts("*******************************************************************************\n\n");
printf("BaseOfROM = 0x%.8x\n",BaseOfROM);
printf("TopOfROM = 0x%.8x\n",TopOfROM);
printf("BaseOfBSS = 0x%.8x\n",BaseOfBSS);
printf("BaseOfZero = 0x%.8x\n",BaseOfZero);
printf("EndOfBSS = 0x%.8x\n\n",EndOfBSS);
printf("BIOSBase = 0x%.8x MaxSize = %dKBs\n",ROM_BASE,(APPBootBase-ROM_BASE)/1024);
printf("APPBootBase = 0x%.8x MaxSize = %dKBs\n",APPBootBase,(APPBase-APPBootBase)/1024);
printf("APPBase = 0x%.8x MaxSize = %dKBs\n\n",APPBase,(ROM_BASE+FlashSize-APPBase)/1024);
printf("LPC2220 use %dMHz extern crystal\n",(EXT_OSC_CLK/1000000));
printf("LPC2220 is running at %dMHz\n", (unsigned int)(MCLK/1000000));
printf("LPC2220 VPB is running at %dMHz\n", (unsigned int)(PCLK/1000000));
printf("Serial Baud rate is %d @ UART0\n", (SERIAL_BAUD));
puts("Build date:");puts(__DATE__);putch('-');puts(__TIME__);putch('\n');
printf("Flash ID is:%.8x\n\n", GetFlashID());
puts("Press any key to entry BIOS setup!\n");
time_out = 0x10000;
do{
if(kbhit())
{
goto BiosEntry;
}
}while(--time_out);
AppBootSize = *(unsigned int *)(APPBootBase);
if((AppBootSize > 0) && (AppBootSize < (APPBase-APPBootBase)))
{
puts("Boot from BIOS...Loading...");
for(i=0;i<AppBootSize;i++)
{
*(unsigned char *)(i+0x82000000) = *(unsigned char *)(i+APPBootBase+0x4);
}
puts("Successfully!\n\n");
fp = (void (*)(void))(0x82000000);
(*fp)();
}
BiosEntry:
puts("Press 'ls' to list command!\n\n");
prompt();
console();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -