📄 k9f1g08u0m.c
字号:
/****************************************Copyright (c)**************************************************
** Beijing Visionox Technology Co.,LTD.
**
**
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2007-03-016
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Alan Dong
** Created date: 2007-03-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by: AlanDong
** Modified date: 2007-03-20
** Version: 1.1
** Descriptions: Read NandFlash data and send to TFT display successful
**
********************************************************************************************************/
#include "config.h"
#include "KEY_LED.h"
#include "TFT_LCD.h"
//void DisplayFlash(uint32 Fdata);
/*******************************************************************************************************/
void NF_Wait_RB()
{
while(!((IO1PIN>>25)&0x0001))
;
} //Wait Nand ready
void Write_Data(unsigned char S_Page,unsigned char E_Page,uint32 block)//,uint32 block)
{
uint32 i,j;
unsigned char NF_DATA1[2];
////////////////////////////
IO0SET=NAND_CLE;
IO0CLR=NAND_CS;
IO0CLR=NAND_WR;
IO0CLR=NAND_ALE;
IO0SET=NAND_RD;
IO1PIN=(IO1PIN&0xFF00FFFF)|0x00000000;
// for(i=0;i<35;i++);
IO0SET=NAND_WR;
IO0CLR=NAND_CLE;
IO0SET=NAND_ALE;
//Send NandFlash adress
IO0CLR=NAND_WR;
IO1PIN=(IO1PIN&0xFF00FFFF)|(0x00000000<<16);
IO0SET=NAND_WR;
IO0CLR=NAND_WR;
IO1PIN=(IO1PIN&0xFF00FFFF)|(0x00000000<<16);
IO0SET=NAND_WR;
IO0CLR=NAND_WR;
IO1PIN=(IO1PIN&0xFF00FFFF)|((S_Page)<<16);
IO0SET=NAND_WR;
IO0CLR=NAND_WR;
IO1PIN=(IO1PIN&0xFF00FFFF)|(block<<16);
IO0SET=NAND_WR;
//Send Read page instruction
IO0CLR=NAND_ALE;
IO0SET=NAND_CLE;
IO0CLR=NAND_WR;
IO1PIN=(IO1PIN&0xFF00FFFF)|(0x00300000);
// for(i=0;i<30;i++);
IO0SET=NAND_WR;
IO0CLR=NAND_CLE;
NF_Wait_RB();
//Maybe,because of the arm's high speed,we need to wait period of time
// for(i=0;i<350;i++);
for(j=0;j<1024;j++)
{
IO1DIR=IO1DIR&(~NAND_DATA);//Set D0~d7 used as input port for NF read
for(i=0;i<2;i++)
{
IO0CLR=NAND_RD;
NF_DATA1[i]=IO1PIN>>16; //Save data to a arry
IO0SET=NAND_RD;
}
IO1DIR=IO1DIR|NAND_DATA;
Write_data((NF_DATA1[0]<<8)|(NF_DATA1[1]<<16)); //
}
}
void NF_Init(void)
{//uint32 i;
// IO0SET=TFT_CS; //Unable TFT LCD
IO0CLR=NAND_ALE;
IO0CLR=NAND_CLE;
IO0CLR=NAND_CS;
IO0SET=NAND_WR;
IO0SET=NAND_RD;
// IO1DIR=IO1DIR|NAND_RB;
// IO1CLR=NAND_RB;
// ;
// ;
// ;
NF_Wait_RB();
// for(i=0;i<350;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -