亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于S3C2440 Nand Flash啟動模式的研究

        2013-10-22 12:49:32韓金利
        機(jī)械工程與自動化 2013年6期
        關(guān)鍵詞:寄存器嵌入式啟動

        韓金利

        (山西機(jī)電職業(yè)技術(shù)學(xué)院 數(shù)控工程系,山西 長治 046000)

        0 引言

        隨著嵌入式系統(tǒng)的發(fā)展,Nor Flash和Nand Flash已經(jīng)成為當(dāng)今市場上兩種重要的非易失閃存技術(shù)。由于Nor Flash的成本較高,容量較小,因此Nor Flash比較適合于存儲少量的代碼。而Nand Flash的單元尺寸幾乎是Nor Flash器件的一半,相對于并口Nor Flash而言,引腳數(shù)目大大減少,芯片接口簡單,使得芯片相關(guān)的外圍電路更簡化,避免了繁瑣的硬件連線[1],而且價格便宜,特別適合存儲大量數(shù)據(jù),具有很強(qiáng)的實用性。

        1 Nand Flash的硬件設(shè)計

        本文采用三星公司的32位RISC微處理器S3C2440作為控制器核心。S3C2440是高性能嵌入式微處理器,主頻可達(dá)400 MHz,具有外圍接口豐富、體積小、功耗低等特點;CPU電壓分為2組,核心電壓為1.2 V,I/O引腳電壓為3.3 V[2]。S3C2440要完成對Nand Flash的讀寫操作必須具備兩個條件:①對S3C2440 CPU上的Nand Flash控制器進(jìn)行合理配置;②外圍必須有與之相配套的Nand Flash存儲芯片。要讀取Nand Flash存儲器中的數(shù)據(jù),必須通過Nand Flash控制器發(fā)送命令給存儲器,所以,Nand Flash僅僅相當(dāng)于S3C2440的外部設(shè)備,并不位于S3C2440本身的內(nèi)存地址區(qū)[3]。

        本電路選用的Nand Flash為三星公司的K9F2G08 U0B芯片,它是一個256 MB的內(nèi)存,每頁的大小為2 112 B(2 048 B+64 B備用),每個塊的大小132 k B為(128 k B+4 k B備用)。K9F2G08 U0B的8個I/O引腳為數(shù)據(jù)/地址復(fù)用引腳。Nand Flash K9F2G08 U0B與S3C2440的接口控制電路如圖1所示。

        Nand Flash中8個I/O引腳為數(shù)據(jù)/地址/命令復(fù)用引腳。Nand Flash控制器設(shè)計命令鎖存使能(Co mmand Latch Enable,CLE)或者地址鎖存使能(Address Latch Enable,ALE),一開始先發(fā)出 CLE(或ALE)命令,這樣Nand Flash內(nèi)部才能根據(jù)傳入的內(nèi)容做出相應(yīng)的動作。

        在K9F2 G08 U0B與S3C2440芯片間進(jìn)行數(shù)據(jù)交換時,S3C2440必須對相關(guān)引腳進(jìn)行配置,需要配置的引 腳 有 NCON、OM0、OM1、GPG13、GPG14 和GPG15。其中,OM0、OM1決定S3C2440采用何種啟動方式(Nand Flash或者 Nor Flash),這里兩個引腳都接為低電平,S3C2440設(shè)置為Nand Flash啟動方式,NCON與GPG13、GPG14相配合設(shè)置,確定存儲器的頁容量和地址周期。GPG15確定存儲器的總線寬度,這里設(shè)置為0,表示寬度為8位。

        由于S3C2440芯片中集成了Nand Flash芯片控制器,因此對Nand Flash芯片進(jìn)行讀寫操作,只與S3C2440中的4個寄存器有關(guān),這4個寄存器為NFCONT、NFCMMD、NFADDR和NFDATA。

        2 軟件設(shè)計

        本設(shè)計中S3C2440采用Nand Flash啟動方式,上電后,CPU首先將Nand Flash中前4 k B的數(shù)據(jù)自動加載到SRA M中來運行,即ARM在Nand Flash啟動模式下啟動時,系統(tǒng)會將Nand Flash中前4 k B代碼拷貝到SRA M(也就是Steppingstone中);然后Nand Flash中的全部程序代碼拷貝到SDRA M中,最后由SRA M跳轉(zhuǎn)到SDRA M,程序正常執(zhí)行。其啟動加載過程如圖2所示。

        2.1 啟動流程圖

        本文中的部分功能用C語言實現(xiàn),故在程序開頭設(shè)置堆棧,再對SDRA M初始化,對Nand Flash控制器進(jìn)行配置,并使用匯編語言中的R0、R1、R2寄存器傳入?yún)?shù),然后啟動讀Nand Flash操作函數(shù),將Nand Flash數(shù)據(jù)讀入SDRA M中,最后調(diào)用閃燈程序。啟動流程如圖3所示。

        圖1 Nand Flash K9F2G08 U0B與S3C2440的接口控制電路

        圖2 啟動加載過程

        圖3 啟動流程

        2.2 Nand Flash讀操作流程

        Nand Flash芯片控制主要分兩個部分:①nand_init()中的初始化函數(shù),如nandflash_select_chip()、nandflash_write_c md()、nandflash_wait_idle()、nandflash_deselect_chip();②nand_read()中的讀寫函數(shù),如nandflash_select_chip()、nandflash_write_c md()、nandflash_wait_idle()、nandflash_deselect_chip()、nandflash_write_addr()、nandflash_read_data()。這兩部分讀寫函數(shù)相互配合著完成對Nand Flash芯片的讀操作。首先,程序需要讀寫Nand Flash芯片時,會調(diào)用nand_init(void)中的函數(shù),使能 Nand Flash控制器,初始化ECC,禁止片選,設(shè)置時序,初始化Nand Flash;接著,nand_read()中的讀寫函數(shù)就會調(diào)用nandflash_select_chip()、nandflash_write_c md()、nandflash_wait_idle()、nandflash_write_addr()、nandflash_read_data()、nandflash_deselect_chip(),最終達(dá)到將閃燈函數(shù)寫入SDRA M中。相關(guān)函數(shù)調(diào)用路線圖如圖4所示。

        圖4 函數(shù)調(diào)用路線圖

        Nand Flash中4 k B以后的數(shù)據(jù)被拷貝到片外內(nèi)存中使用,所以在程序設(shè)計時必須對Nand Flash進(jìn)行讀操作。讀操作流程如圖5所示[4]。

        Nand Flash讀數(shù)據(jù)函數(shù)關(guān)鍵代碼如下:

        圖5 Nand Flash讀操作流程

        3 結(jié)果驗證

        根據(jù)Nand Flash啟動方法,在Linux環(huán)境中,編寫一個閃燈測試程序,并將閃燈函數(shù)運行地址在鏈接文件(*.ld)中定位于0x30000000地址,當(dāng)程序開始執(zhí)行后,初始化程序?qū)? k B以后的數(shù)據(jù)全部拷貝到SDRA M中,開始地址為0x30000000,在初始化程序完成以后,CPU會自動去執(zhí)行30000000地址中的數(shù)據(jù),如果電路板閃燈,則說明Nand Flash中的程序被讀到SDRA M中,表示實驗成功,反之讀取不成功。

        以下為鏈接文件中的主要代碼:

        調(diào)用Nand Flash前必須為數(shù)據(jù)讀取函數(shù)傳送3個參數(shù):讀取數(shù)據(jù)存放在SDRA M的目的地址、所要讀取數(shù)據(jù)的源地址、所要讀取數(shù)據(jù)的長度。

        以下為3個參數(shù)傳遞的關(guān)鍵代碼:

        該實驗證明,Nand Flash的啟動過程是硬件首先將Nand Flash中前4 k B的內(nèi)容自動加載到片內(nèi)SRA M中,而且這4 k B程序同時也具備將Nand Flash中剩余數(shù)據(jù)拷貝到SDRA M中的功能。

        4 結(jié)束語

        詳細(xì)分析了Nand Flash控制器中相關(guān)寄存器的配置過程及其啟動原理,并給出了一種讀取Nand Flash中數(shù)據(jù)的方法,文中關(guān)鍵代碼段已經(jīng)得到實驗驗證,在相關(guān)程序的設(shè)計中具有一定的參考價值。

        [1]葉林俊.Nand Flash內(nèi)存設(shè)備的讀寫控制設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(12):16-19.

        [2]葉林俊.S3C2440 A嵌入式手持終端電源管理系統(tǒng)設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(9):28-31.

        [3]謝韋華,譚永東,徐偉華.Nand Flash的驅(qū)動程序設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(9):35-38.

        [4]韋東山.嵌入式Linux應(yīng)用完全開發(fā)手冊[M].北京:人民郵電出版社,2008.

        猜你喜歡
        寄存器嵌入式啟動
        Lite寄存器模型的設(shè)計與實現(xiàn)
        搭建基于Qt的嵌入式開發(fā)平臺
        霧霾來襲 限產(chǎn)再次啟動
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        安發(fā)生物啟動2017
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        西部最大規(guī)模云計算中心啟動
        俄媒:上合組織或9月啟動擴(kuò)員
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        少妇人妻真实偷人精品视频| h视频在线播放观看视频| 妺妺窝人体色www婷婷| 激情综合色五月丁香六月亚洲 | 乱中年女人伦av一区二区| 四虎影视一区二区精品| 中国精品久久久久国产| 亚洲乱码中文字幕三四区| 国模冰莲自慰肥美胞极品人体图| 少妇被躁爽到高潮无码文| 国产精品久久这里只有精品| 日本妇女高清一区二区三区| 国产三级在线观看完整版| 99精品视频在线观看免费| 少妇bbwbbw高潮| 中文字幕亚洲在线第一页| 日本肥老妇色xxxxx日本老妇| 国产av无码专区亚洲av手机麻豆 | 精品亚洲国产成人av| 97久久久久国产精品嫩草影院 | 日本高清h色视频在线观看| 国产在线不卡AV观看| 亚洲av毛片一区二区久久| 亚洲中文无码av永久| 黑人玩弄漂亮少妇高潮大叫| 99综合精品久久| 日本韩国亚洲三级在线| 日日天干夜夜狠狠爱| 国产精品久久久久免费a∨| 国产女主播免费在线观看| 丝袜美腿亚洲第一免费 | 天天综合网网欲色| 99偷拍视频精品一区二区| WWW拍拍拍| 国产国语按摩对白av在线观看 | 国产毛片av最新视频| 亚洲男同志网站| japanese色国产在线看视频| 在线免费看91免费版.| 超清精品丝袜国产自在线拍| 欧美人成在线播放网站免费|