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

📄 2410loader.c

📁 mp4的源码,主要包括loader,usb driver,mp3 decoder,jpeg decoder,mpeg decoder部分.引导部分是基于arm9的s3c2410,部分代码未经过完善.
💻 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 "system.h"
#include "2410addr.h"
#include "2410lib.h"
#include "k9s1208.h"
#include "uart.h"

#define DOWNLOAD_ADDRESS	 	_RAM_STARTADDRESS+0x1000000

#define IMAGE_SIZE 25		//block number

//void (*run)(void)=(void (*)(void))(DOWNLOAD_ADDRESS);
void (*run)(void)=void (*)Main();
void Port_Init(void);
void Delay(int);
void printf(char *pt) ;

volatile unsigned char *downPt;

//****************************[SYSTEM]****************************************//
void Sys_Init(void)
{
    ChangeMPllValue(0x58,0x1,0x1);  	//Fin=12MHz FCLK=192MHz
    ChangeClockDivider(1,1);	   		// 1:2:4
	MMU_SetAsyncBusMode();				//if not ,arm will operate by hclk
	
	Port_Init();
    Uart_Init(PCLK, 115200);
    NF_Init();
	uda1341_Init();
	//Usb_Init();
	//MMU_EnableMMU();
	MMU_EnableICache();
	MMU_EnableDCache();

}	

void loader_main(void)
{
	register i,j;
	int tmp;
    
    Sys_Init();

    printf("\r\nNand Flash Booting Start...\n");
    downPt=(unsigned char *)DOWNLOAD_ADDRESS;
    j=0;
    while(j<(IMAGE_SIZE))
    {    
			j++;
			for(i=0;i<32;i++)		 // Read 32 page 
			{ 
				tmp = NF_ReadPage(j, i, (U8 *)downPt);		//(U32 block,U32 page,U8 *buffer)
	    		if(!tmp)			 
	    		{  
  					if(i!=0)
  					{
		    		printf("\r\nLoading Error!!!\n");	
		    		while(1);
					}
					break;		    // ECC error is considered as a bad block.
	    		}
  	    	downPt += 512;	   		// Next page
			}
    }
    printf("NAND Boot End\n");
    run();
}

⌨️ 快捷键说明

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