999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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.

猜你喜歡
嵌入式程序
試論我國未決羈押程序的立法完善
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)暗訪程序有待改進(jìn)
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 亚洲成a人片77777在线播放| 免费看一级毛片波多结衣| 午夜视频www| 欧美精品导航| 色天天综合| 激情综合婷婷丁香五月尤物| 狠狠亚洲婷婷综合色香| 免费在线成人网| 亚洲成人77777| 国产欧美又粗又猛又爽老| 老色鬼久久亚洲AV综合| 国产亚洲精品无码专| 国产激情在线视频| 亚洲无码日韩一区| 国产精品区视频中文字幕| 亚洲美女视频一区| 99精品视频在线观看免费播放| 久久亚洲综合伊人| 亚洲欧美另类视频| 亚洲AV无码久久精品色欲| 青草视频网站在线观看| 一区二区午夜| 青青青国产精品国产精品美女| 欧美精品啪啪一区二区三区| 国产白丝av| 国产欧美视频综合二区| 国产精品视频公开费视频| 毛片网站观看| 亚洲国产精品无码久久一线| 日本www在线视频| 97精品国产高清久久久久蜜芽| 九九热免费在线视频| 欧美.成人.综合在线| 国产永久免费视频m3u8| 中文字幕啪啪| 日韩精品一区二区深田咏美| 欧美成人影院亚洲综合图| 广东一级毛片| 国产成人啪视频一区二区三区| 中文字幕在线永久在线视频2020| 国产成人调教在线视频| 色天堂无毒不卡| 性视频一区| 国产精品福利尤物youwu | 国产精欧美一区二区三区| 欧美成人日韩| 国产小视频a在线观看| 国产精品yjizz视频网一二区| 亚洲视频色图| 不卡无码h在线观看| 无码中文字幕乱码免费2| 国产乱人伦精品一区二区| 成人免费一级片| 无码人中文字幕| 在线观看av永久| 日韩资源站| 亚洲黄网视频| 在线免费亚洲无码视频| 四虎亚洲精品| 欧美成人h精品网站| 午夜视频日本| 尤物视频一区| 国产国模一区二区三区四区| 亚洲视频黄| 欧美a在线看| 午夜不卡视频| 亚洲午夜国产片在线观看| 亚洲国产精品VA在线看黑人| 毛片在线看网站| 久久久久久高潮白浆| 日韩一区精品视频一区二区| 一本久道热中字伊人| 久久性妇女精品免费| 亚洲无码高清一区| 亚洲AV色香蕉一区二区| 精品国产成人av免费| 一本大道视频精品人妻 | 综合色天天| 99久久免费精品特色大片| 亚洲无限乱码| 国产自在自线午夜精品视频| 免费又爽又刺激高潮网址|