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

📄 main.c

📁 一个基于s3c2410平台的monitor程序
💻 C
字号:
//==================================================================
//Discription: the monitor program for the YF2410-III development bord,also suitable for all the smdk2410 compalible borad
//Author :Decell.Zhou
//Email:decell@163.com
//Version:
//			0.1|070701 first release
//			0.2|071107 second release,make the transmission more stable,fix some bug
//===================================================================
#include <stdlib.h>
#include <string.h>

#include "def.h"
#include "option.h"
#include "config.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
#include "timer.h"
#include "xmodem.h"
#include "nandWriter.h"

extern long dataLenght;

//===================================================================
void  __main(void)
{   
	
	int selection;
  
    ChangeClockDivider(1,1);          // 1:2:4    
    ChangeMPllValue(0xa1,0x3,0x1);    // FCLK=202.8MHz  
    Port_Init();					  //初始化I/O口
	
    Uart_Init(0,115200);			  //初始化串口
    Uart_Select(0);					  //选择串口0
	
	timerInit();		//initial the timer
	
	clearScreen();								  
    Uart_SendString("\n*S3C2410 Monitor Program v0.3,build 015\n");
    Uart_SendString("*NetKit Crop,Decell.Zhou\n");
    Uart_SendString("*Base on NK bootloader v0.2\n");
    Uart_SendString("*SAMSUNG S3C2410@266.0Mhz,ARM920T\n");
    Uart_SendString("*64MB SDRAM,64MB Nand Flash,2MB Nor Flash\n");
    Uart_SendString("*Baud rate=115200, no flow control,8n1\n");
    Uart_SendString("*RO Base = 0x31000000\n");
    Uart_SendString("*RW Base >= RO Base + Image Size\n");
    
	timerStart();//start the timer
	dataLenght = 0;//clear the xmodem transfer lenght
	
	
	for(;1;){
		
		Uart_SendString("\n\n\nplease select:\n");
		Uart_SendString("1.download a program to RAM and run.\n");
		Uart_SendString("2.download a program to RAM without running it\n");
		Uart_SendString("3.download a program to the nand flash\n");
		Uart_SendString("4.earse the nand flash\n");
		//Uart_SendString("5.dump memory\n");
		
		selection = Uart_Getch();
		switch(selection){
			case '1':{
				if(xmodemTransmit() == 0){// xmodem transmit successful
					Uart_SendString("Download completed successfully!!\n");
					Uart_Printf("program lenght:%ld Bytes\n",dataLenght);
					Uart_SendString("Press any key to run the program!\n");
					Uart_Getch();//waiting for the users reply
					xmodemJump();
				}else{
					Uart_SendString("Download terminate, retry anagin...\n");
				}
				break;
			}
			case '2':{
				if(xmodemTransmit() == 0){// xmodem transmit successful
					Uart_SendString("Download completed successfully!!\n");
					Uart_Printf("program lenght:%ld Bytes\n",dataLenght);
				}else{
					Uart_SendString("Download terminate, retry anagin...\n");
				}				
				break;
			}
			case '3':{
				if(nandWrite() == 0){
					Uart_SendString("write complete!\n");
				}else{
					Uart_SendString("write failure!\n");
				}
				break;
			}
			case '4':{
				if(nandErase() == 0){
					Uart_SendString("\nErase complete!\n");
				}else{
					Uart_SendString("\nErase failure!\n");
				}				
				break;
			}
			case '5':{
				break;
			}
			default:{
				Uart_SendString("Wrong selection,please try again\n");
			}
		}

	}
	
}

⌨️ 快捷键说明

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