📄 2410loader.c
字号:
/************************************************
* NAME : 2410loader.C *
* DESC : *
* History : 2002.02.25 ver 0.0 *
************************************************/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "option.h"
#include "def.h"
#include "2410addr.h"
#include "2410slib.h"
#include "2410lib.h"
#include "2410addr.h"
#include "k9s1208.h"
#include "mmu.h"
#define DOWNLOAD_ADDRESS _RAM_STARTADDRESS+0x1000000
#define LED_ON 0xa
#define LED_OFF 0x0
#define OS_IMAGE_SIZE 25
void (*run)(void)=(void (*)(void))(DOWNLOAD_ADDRESS);
void Port_Init(void);
void Led_Display(int);
void Delay(int);
volatile unsigned char *downPt;
void T4_Start(void);
void T4_Stop(void);
char *hex2char(int val);
void Main(void)
{
register i,j;
int tmp;
//MMU_EnableICache();
ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0x5c,0x4,0x0); //Fin=12MHz FCLK=200MHz
Port_Init();
Uart_Init(PCLK, 115200);
downPt=(unsigned char *)DOWNLOAD_ADDRESS;
NF_Init();
// Led_Display(LED_OFF);
T4_Start();
j=0;
while(j<(OS_IMAGE_SIZE)) { // Read 1~807 block(13635072B) for WinCE image
j++;
for(i=0;i<32;i++) { // Read 32 page
tmp = NF_ReadPage(j, i, (U8 *)downPt);
if(!tmp) { //(U32 block,U32 page,U8 *buffer)
if(i!=0) {
Uart_SendString("\r\nLoading Error!!!\n");
while(1);
}
break; // ECC error is considered as a bad block.
}
downPt += 512; // Next page
}
}
T4_Stop();
run();
}
void T4_Start(void)
{
Uart_SendString("\r\nNand Flash Booting Start...\n");
}
void T4_Stop(void)
{
//rTCON=(1<<22)|(0<<20); //Stop T4
Uart_SendString("NAND Boot End\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -