LCD實驗學習筆記(七) NAND FLASH

2022-03-15 15:37:03 字數 1806 閱讀 4114

s3c2440 cpu內建nand flash控制器。相關寄存大器起始位址為0x4e000000。

通過設定nfconf暫存器,設定nand flash 時序。

通過設定nfcont暫存器,使能nand flash、初始化ecc等。

**:#define gstatus1 (*(volatile unsigned int *)0x560000b0) //讀此暫存器可以知道cpu晶元型號

#define busy 1

#define nand_sector_size_lp 2048 //大頁每頁2048位元組

#define nand_block_mask_lp (nand_sector_size_lp - 1) //大頁掩碼???

typedef unsigned int s3c24x0_reg32;

//s3c2440 nand flash相關暫存器

typedef struct s3c2440_nand;

static s3c2440_nand * s3c2440nand = (s3c2440_nand *)0x4e000000;//s3c2440 nand flash 相關暫存器起始位址

//供外部呼叫的函式宣告

void nand_init(void); //初始化

void nand_read(unsigned char *buf, unsigned long start_addr, int size);//讀取資料到緩衝區

/* s3c2440的nand flash處理函式 */

static void s3c2440_nand_reset(void);

static void s3c2440_wait_idle(void);

static void s3c2440_nand_select_chip(void);

static void s3c2440_nand_deselect_chip(void);

static void s3c2440_write_cmd(int cmd);

static void s3c2440_write_addr_lp(unsigned int addr);

static unsigned char s3c2440_read_data(void);

//復位

static void s3c2440_nand_reset(void)

//等待就緒訊號

static void s3c2440_wait_idle(void)

//片選

static void s3c2440_nand_select_chip()

//取消片選

static void s3c2440_nand_deselect_chip()

//傳送命令

static void s3c2440_write_cmd(int cmd)

//傳送位址

static void s3c2440_write_addr_lp(unsigned int addr)

//讀資料

static unsigned char s3c2440_read_data(void)

//初始化nand flash

void nand_init(void)

//讀資料

void nand_read(unsigned char *buf, unsigned long start_addr, int size)

s3c2440_nand_select_chip();//發出片選訊號

int i, j;

for (i = start_addr; i < (start_addr+size);)

LCD實驗學習筆記(三) WATCH DOG

看門狗是為了能夠防止程式跑飛用的。程式應該定時的去餵狗。如果程式跑飛了,那麼就不會去餵狗了。如果超過了餵狗的時間,那麼狗就會生成乙個訊號來reset cpu。一般程式不需要,特殊情況下需要這種機制。看門狗預設在啟用狀態。狗自已倒數,然後自動使cpu重啟。watch dog register 看門狗暫...

ARM學習筆記 LCD顯示

lcd概述 lcd liquid crystal display 即液晶顯示器,是一種採用了液晶控制透光度技術來實現色彩的顯示器。lcd有多種型別,比如stn tft ltps tft oled等。cpu或顯示卡發出的影象資料是ttl訊號,lcd本身接收的也是ttl訊號。由於ttl訊號在高速率的長距...

LCD驅動 學習筆記 一

首先先介紹2個概念 68 system 介面和 80system介面。它們是比較流行的2中微處理器的介面。80system 簡單的來說,用read和write兩個訊號來表示讀寫。read為低,為讀 write為低,表示寫。68systeme wr為使能訊號。e wr為高,r w為高表示讀 e wr為...