娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

S3C2440之NAND FLASH移植到S3C2410的驅(qū)動分析

發(fā)布者:EternalSunset最新更新時間:2024-06-11 來源: elecfans關鍵字:S3C2440  NAND  FLASH  移植  S3C2410 手機看文章 掃描二維碼
隨時隨地手機看文章

S3C2440A的NAND FLASH驅(qū)動移植到S3C2410還是有些不一樣的,最主要的這兩個IC的NAND FLASH的寄存器有些不一樣,請看下面的兩者之間不同:

  1. //   

  2. // Copyright (c) Microsoft Corporation.  All rights reserved.   

  3. //   

  4. //   

  5. // Use of this source code is subject to the terms of the Microsoft end-user   

  6. // license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.   

  7. // If you did not accept the terms of the EULA, you are not authorized to use   

  8. // this source code. For a copy of the EULA, please see the LICENSE.RTF on your   

  9. // install media.   

  10. //   

  11. //------------------------------------------------------------------------------   

  12. //   

  13. //  Header: s3c2410x_nand.h   

  14. //   

  15. //  Defines the NAND controller CPU register layout and definitions.   

  16. //   

  17. #ifndef __S3C2410X_NAND_H   

  18. #define __S3C2410X_NAND_H   

  19.   

  20. #if __cplusplus   

  21.     extern 'C'   

  22.     {  

  23. #endif   

  24.   

  25.   

  26. //------------------------------------------------------------------------------   

  27. //  Type: S3C2410X_NAND_REG       

  28. //   

  29. //  NAND Flash controller register layout. This register bank is located    

  30. //  by the constant CPU_BASE_REG_XX_NAND in the configuration file    

  31. //  cpu_base_reg_cfg.h.   

  32. //   

  33.   

  34. typedef struct    

  35. {  

  36.     UINT32  NFCONF;             // configuration reg   

  37.     UINT8   NFCMD;              // command set reg   

  38.     UINT8   pad1[3];            // pad    

  39.     UINT8   NFADDR;             // address set reg   

  40.     UINT8   pad2[3];            // pad    

  41.     UINT8   NFDATA;             // data reg   

  42.     UINT8   pad3[3];            // pad   

  43.     UINT32  NFSTAT;             // operation status reg   

  44.     UINT32  NFECC;             // error correction code 0   

  45.   

  46. } S3C2410X_NAND_REG, *PS3C2410X_NAND_REG;      

  47.   

  48.   

  49. #if __cplusplus   

  50.     }  

  51. #endif   

  52.   

  53. #endif   

上面的代碼是S3C2410A的寄存器,我們在看看S3C2440A的寄存器地址說明:

  1. //   

  2. // Copyright (c) Microsoft Corporation.  All rights reserved.   

  3. //   

  4. //   

  5. // Use of this source code is subject to the terms of the Microsoft end-user   

  6. // license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.   

  7. // If you did not accept the terms of the EULA, you are not authorized to use   

  8. // this source code. For a copy of the EULA, please see the LICENSE.RTF on your   

  9. // install media.   

  10. //   

  11. //------------------------------------------------------------------------------   

  12. //   

  13. //  Header: s3c2440a_nand.h   

  14. //   

  15. //  Defines the NAND controller CPU register layout and definitions.   

  16. //   

  17. #ifndef __S3C2440A_NAND_H   

  18. #define __S3C2440A_NAND_H   

  19.   

  20. #if __cplusplus   

  21.     extern 'C'   

  22.     {  

  23. #endif   

  24.   

  25.   

  26. //------------------------------------------------------------------------------   

  27. //  Type: S3C2440A_NAND_REG       

  28. //   

  29. //  NAND Flash controller register layout. This register bank is located    

  30. //  by the constant CPU_BASE_REG_XX_NAND in the configuration file    

  31. //  cpu_base_reg_cfg.h.   

  32. //   

  33.   

  34. typedef struct    

  35. {  

  36.     UINT32  NFCONF;             // configuration reg   

  37.     UINT32  NFCONT;  

  38.     UINT8   NFCMD;              // command set reg   

  39.     UINT8   d0[3];  

  40.     UINT8   NFADDR;             // address set reg   

  41.     UINT8   d1[3];  

  42.     UINT8   NFDATA;             // data reg   

  43.     UINT8   d2[3];  

  44.     UINT32  NFMECCD0;  

  45.     UINT32  NFMECCD1;  

  46.     UINT32  NFSECCD;      

  47.     UINT32  NFSTAT;             // operation status reg   

  48.     UINT32  NFESTAT0;  

  49.     UINT32  NFESTAT1;  

  50.     UINT32  NFMECC0;             // error correction code 0   

  51.     UINT32  NFMECC1;             // error correction code 1   

  52.     UINT32  NFSECC;  

  53.     UINT32  NFSBLK;  

  54.     UINT32  NFEBLK;             // error correction code 2   

  55.   

  56. } S3C2440A_NAND_REG, *PS3C2440A_NAND_REG;      

  57.   

  58.   

  59. #if __cplusplus   

  60.     }  

  61. #endif   

  62.   

  63. #endif   

這兩者之間的差別是很大的。因此移植起來的難點主要是ECC部分,同時還有個別寄存器位地址不一樣,需要修改,見下面:

  1. //  Use Macros here to avoid extra over head for c function calls   

  2. #define READ_REGISTER_BYTE(p)       (*(PBYTE)(p))   

  3. #define WRITE_REGISTER_BYTE(p, v)   (*(PBYTE)(p)) = (v)   

  4. #define READ_REGISTER_USHORT(p)     (*(PUSHORT)(p))   

  5. #define WRITE_REGISTER_USHORT(p, v) (*(PUSHORT)(p)) = (v)   

  6. #define READ_REGISTER_ULONG(p)      (*(PULONG)(p))   

  7. #define WRITE_REGISTER_ULONG(p, v)  (*(PULONG)(p)) = (v)  

以上的代碼不論S3C2410還是S3C2440都可以用,我在移植的時候,這兩部是一樣的。當然至于S3C2443和S3C2450這部分的寄存器改變并不多,不過S3C2450的BSP中NAND FLASH驅(qū)動還是有很大的變化,那以后再來分析吧,現(xiàn)在還是分析這個,WINCE5.0下的。WINCE6.0的我還沒有來得急移植呢。我一般喜歡動手自己移植一遍,這樣能深入的了解WINCE的流程,同時對這顆IC,也更熟悉??纯磧烧咧g的不同吧。


S3C2440A的寄存器宏定義:

  1. //  MACROS   

  2. #define NF_CE_L()           WRITE_REGISTER_USHORT(pNFCONT, (USHORT) (READ_REGISTER_USHORT(pNFCONT) & ~(1<<1)))   

[1] [2]
關鍵字:S3C2440  NAND  FLASH  移植  S3C2410 引用地址:S3C2440之NAND FLASH移植到S3C2410的驅(qū)動分析

上一篇:ARM Linux S3C2440之ADC驅(qū)動實現(xiàn)
下一篇:S3C2440硬件編程實例

推薦閱讀最新更新時間:2025-04-17 02:10

Nand Flash的操作(S3C2440)
Nand Flash的概述 nandflash主要以page(頁)為單位進行讀寫,以block(塊)為單位進行擦除。每一頁中又分為main區(qū)和spare區(qū),main區(qū)用于正常數(shù)據(jù)的存儲,spare區(qū)用于存儲一些附加信息,如塊好壞的標記、塊的邏輯地址、頁內(nèi)數(shù)據(jù)的ECC校驗和等。 先看下電路原理圖 從原理圖可以看出: 在DATA0~DATA7上既傳輸數(shù)據(jù),又傳輸?shù)刂?,也傳輸命令?當ALE為高電平時傳輸?shù)氖堑刂贰?當CLE為高電平時傳輸?shù)氖敲睢?當ALE和CLE都為低電平時傳輸?shù)氖菙?shù)據(jù)。 假設燒寫NAND FLASH,把命令、地址、數(shù)據(jù)發(fā)給它之后,NAND FLASH肯定不可能瞬間完成燒寫的,怎么判斷燒寫完成? 通過狀態(tài)
[單片機]
對<font color='red'>Nand</font> <font color='red'>Flash</font>的操作(<font color='red'>S3C2440</font>)
s3c2410/s3c2440串口波特率的計算
要正確計算串口波特率,首先要搞清楚芯片的時鐘工作原理,這部分在s3c2410/s3c2440datasheet上寫的比較詳細,但對新手來說結(jié)合thisway同志“s3c2410完全開發(fā)流程”中的TIMER和CLOCK兩個實驗,邊做實驗邊看資料,更容易理解。 我這里只根據(jù)我的失敗經(jīng)驗談一下設置波特率寄存器UBRDIVn的值的計算要注意的一個問題。 datasheet上UBRDIVn寄存器部分寫著: UART BAUD RATE DIVISOR REGISTER There are three UART baud rate divisor registers including UBRDIV0, UBRDIV1 and U
[單片機]
基于S3C2410處理器目標板的Linux移植
引言 嵌 人式系統(tǒng)就是以應用為中心、以計算機技術為基礎,軟硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)。ARM嵌人式 芯片是一種高性能、低功耗的RISC芯片。它由英國ARM公司設計,世界上幾乎所有的主要半導體生產(chǎn)商都生產(chǎn)基于ARM體系機構的通用芯片,或在其專用芯 片中應用相關ARM技術。在2001年基于ARM內(nèi)核的處理器占市場份額的75%,成為業(yè)界的龍頭。 Linux 是免費發(fā)行的、快速高效的操作系統(tǒng) ,Linux的出現(xiàn)在計算機世界引發(fā)了一場革命。Linux操作系統(tǒng)以代碼開放、功能強大又易于移植成為嵌入式操作新興力量。嵌人式Linux是按照嵌人 式操作系統(tǒng)的要求設計的一種小型操作系統(tǒng),由一
[單片機]
s3c2440 移值u-boot-2016.03 第3篇 支持Nor flash 識別
當選擇,NOR flash 啟用時,才可以訪問 NOR FLASH 。 /common/board_r.c 364 line: initr_flash() flash_size = flash_init(); /drivers/mtd/cfi_flash.c 想要打開調(diào)試的話, 就定義這個 #define DEBUG flash_init() debug( JEDEC PROBE: ID %x %x %xn , info- manufacturer_id, info- device_id, info- device_id2); if (jedec_flash_match(info, info- start )) break; /d
[單片機]
<font color='red'>s3c2440</font> 移值u-boot-2016.03 第3篇 支持Nor <font color='red'>flash</font> 識別
Boa Web服務器在S3C2440開發(fā)板上移植
前面已經(jīng)在PC機上完成了boa服務器的移植工作,《Boa Web服務器在PC上移植 》見http://www.linuxidc.com/Linux/2011-10/44729.htm, 下面介紹一下在S3C2440硬件平臺上如何完成相應工作,兩者大同小異,細節(jié)上稍有不同,不同之處我用紫色標注了出來 一、配置編譯boa 1. #tar zxvf boa-0.94.13.tar.gz 2. #mv boa-0.94.13 boa_arm 3. #cd boa_arm/src 4.boa.conf生效目錄設置 boa啟動過程中需要讀取一個配置文件:boa.conf,它的路徑由以下文件決定 第30行 #define SERVER_
[單片機]
s3c2440 ads程序移植到keil中(一) 初步完成
1 與其他工程一直一樣 直接加入工程進行編譯 2440init.s(8): error: A1023E: File option.inc could not be opened: 等錯誤 直接把option.inc Memcfg.inc 2440addr.inc 直接放在2440init.s的目錄中 然后編譯 當前記過錯誤消失 出現(xiàn) .led.axf: Error: L6238E: 2440init.o(Init) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment o
[單片機]
<font color='red'>s3c2440</font> ads程序<font color='red'>移植</font>到keil中(一) 初步完成
[ARM筆記]驅(qū)動對設備的識別過程及實例——NAND Flash
驅(qū)動程序識別設備時,有以下兩種方法: (1)驅(qū)動程序本身帶有設備信息,比如開始地址、中斷號等;加載驅(qū)動程序時,就可以根據(jù)這些信息來識別設備。 (2)驅(qū)動程序本身沒有設備信息,但是內(nèi)核中已經(jīng)(或以后)根據(jù)其他方式確定了很多設備的信息;加載驅(qū)動程序時,將驅(qū)動程序與這些設備逐個比較,確定兩者是否匹配(math)。如果驅(qū)動程序與某個設備匹配,就可以通過該驅(qū)動程序來操作這個設備了。 內(nèi)核常使用第二種方法來識別設備,這可以將各種設備集中在一個文件中管理,當開發(fā)板的配置改變時,便于修改代碼。在內(nèi)核文件include/linux/platform_device.h中,定義了兩個數(shù)據(jù)結(jié)構來表示這些設備和驅(qū)動程序:platform_device結(jié)
[單片機]
NAND Flash產(chǎn)值上看270億美元 3D-NAND受矚
??? 2013年NAND Flash產(chǎn)業(yè)雖然被DRAM產(chǎn)業(yè)搶進鋒頭,但從應用面來看,NAND Flash仍是備受期待,估計2013年全球NAND Flash產(chǎn)值約246億美元, 2014年更上看270億美元,尤其未來產(chǎn)業(yè)在制程微縮的轉(zhuǎn)折點上,轉(zhuǎn)進3D-NAND Flash技術,可讓NAND Flash產(chǎn)業(yè)需求更加百花齊放。 NAND Flash產(chǎn)業(yè)應用備受期待,根據(jù)市調(diào)機構TrendForce 指出,2013年NAND Flash產(chǎn)業(yè)產(chǎn)值約246億美元,較2012年成長22%,2014年NAND Flash產(chǎn)業(yè)產(chǎn)值上看270億美元,固態(tài)硬碟(SSD)將是主要驅(qū)動力道,尤其NAND Flash成本逐年下降,反映制程微縮帶來的效應,
[手機便攜]
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 肃北| 久治县| 泰和县| 皮山县| 宜春市| 博罗县| 开阳县| 七台河市| 东乡族自治县| 射洪县| 农安县| 余庆县| 梁河县| 沿河| 温州市| 溆浦县| 甘孜县| 葵青区| 岫岩| 乌拉特中旗| 凤凰县| 台江县| 宾川县| 唐山市| 朝阳市| 徐汇区| 高雄县| 澳门| 龙泉市| 乌拉特中旗| 东阳市| 高安市| 罗源县| 富阳市| 岢岚县| 成安县| 赤城县| 科技| 佛坪县| 南江县| 成武县|