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

        ?

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

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

        韓金利

        (山西機電職業(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ù),具有很強的實用性。

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

        本文采用三星公司的32位RISC微處理器S3C2440作為控制器核心。S3C2440是高性能嵌入式微處理器,主頻可達400 MHz,具有外圍接口豐富、體積小、功耗低等特點;CPU電壓分為2組,核心電壓為1.2 V,I/O引腳電壓為3.3 V[2]。S3C2440要完成對Nand Flash的讀寫操作必須具備兩個條件:①對S3C2440 CPU上的Nand Flash控制器進行合理配置;②外圍必須有與之相配套的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芯片間進行數(shù)據(jù)交換時,S3C2440必須對相關(guā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芯片進行讀寫操作,只與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控制器進行配置,并使用匯編語言中的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(),最終達到將閃燈函數(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進行讀操作。讀操作流程如圖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é)束語

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

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

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

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

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

        猜你喜歡
        嵌入式程序
        試論我國未決羈押程序的立法完善
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        搭建基于Qt的嵌入式開發(fā)平臺
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        創(chuàng)衛(wèi)暗訪程序有待改進
        Altera加入嵌入式視覺聯(lián)盟
        精品久久久久久无码人妻热| 国产精品中文字幕日韩精品| 国产亚洲精品视频一区二区三区| 在线看无码的免费网站| 亚洲 欧美 影音先锋| 日韩在线不卡一区在线观看| 免费av一区男人的天堂| 亚洲熟女精品中文字幕| 国产在线精品欧美日韩电影| 中文字幕乱码亚洲无线精品一区| 蜜桃av在线播放视频| 久久久亚洲av波多野结衣| 亚洲乱码av中文一区二区| 白色橄榄树在线免费观看| 国产人妖在线观看一区二区三区| 高h喷水荡肉爽文np肉色学校| 最新国产av无码专区亚洲| 无码a级毛片免费视频内谢| 国产交换精品一区二区三区| 精品一区二区三区免费视频| 天天爱天天做天天爽| 一区二区高清视频在线观看| 午夜国产视频一区二区三区| 精品深夜av无码一区二区| 国产精品网站夜色| 亚洲国产av高清一区二区三区| 真实国产乱子伦精品视频 | 国产在线精品亚洲视频在线| 日韩人妻精品中文字幕专区| 国产午夜精品理论片| 亚洲成a人片在线播放观看国产| 男人一插就想射的原因| 亚洲国产一二三精品无码| 久久久久国色av∨免费看| 亚洲一区二区三区品视频| 日韩亚洲精品中文字幕在线观看| 中文字幕乱伦视频| 国产精彩刺激对白视频| 日本视频一中文有码中文| 波多野42部无码喷潮| 高清国产一级毛片国语|