版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1引言隨著消費類電子產(chǎn)品包括 PDA MP3智能手機等手持設備的市場需求逐步擴大,產(chǎn) 品間的競爭也愈發(fā)激烈,降低產(chǎn)品的設計成本, 提升產(chǎn)品的市場競爭力成為嵌入式系統(tǒng)開發(fā)者所面臨的重大挑戰(zhàn)。NANDFLASH和NORFLAS作為兩種主要的非易失性存儲器,被應用于各種嵌入式系統(tǒng)。其中NANDFLASH主要優(yōu)點在于存儲密度高、容量大,有更占優(yōu)勢的存儲性價比。 但是NANDFLAS由于其獨特的頁式讀寫方式,并不適合程序的直接執(zhí)行。因此,從NAND FLASHB動需要片上存儲器作為代碼執(zhí)行的中轉區(qū)。本文所討論的一種系統(tǒng)啟動方式,是在缺少片上存儲器支持的情況下,實現(xiàn)系統(tǒng)直接從NAND FLASHB動。論文
2、中充分考慮了如何實現(xiàn)軟、硬件之間的協(xié)同工作,以完成SOC系統(tǒng)的設計。2 NAND FLASH控制器的結構本文所討論的NANEFLASH控制器是針對一款基于 ARM7TDM的SoC芯片,該控制器在芯片中的位置如圖1所示,作為AMBA總線上的一個從設備集成于 AHB上。主要模塊包括總線接口模塊、FIFO緩沖模塊、ECC編碼模塊以及邏輯控制模塊。AKMCQR11(JMACOMA:ANDFLASHMl MOR V圖I NAND FLAST1K 其泵純架觸:ffe器DMA廉刁、 廠#沖打丸人1*岸、/叨礦*對 廠A用麗A轉卅科側細朋 丿Tja助 制右罵丿f:忙遜齊丿嚴斜卑 高濯丿1v Ia粗找配3卡r
3、-CrvMhAh、 廠聆図云人廠、廠祀*廠ft1 wh%hn 涯電p #丿*r檸撿邸?總嚇安事弓打茅尸4電;輕斗陽Z NANH FI-ASH工作的秋件配JtiC用出總線接口模塊主要的功能是轉換 AMBA總線上的控制和數(shù)據(jù)信號:將總線上的數(shù)據(jù)送 入FIFO或將數(shù)據(jù)從FIFO讀出到總線上,將總線上的控制信號轉換時序后送到控制模 塊。NAND控制器包含一個寬度為 32 b,深度為4的緩沖FIFO,用于解決高速總線與低速 設備之間數(shù)據(jù)傳輸速度的匹配問題。為提高總線的傳輸效率,以及控制器設計的便利性,NAND FLAS!在總線上的數(shù)據(jù)傳輸采用DMA的方式來完成。譬如在讀取FLASH一頁數(shù)據(jù)時,數(shù)據(jù)持續(xù)寫
4、入控制器 FIFO, FIFO滿時發(fā)出DMA專輸?shù)恼埱?,同時暫停FLASH 的數(shù)據(jù)讀取,控制信號 nRE拉高,直至DMA向應請求即FIFO不滿時,F(xiàn)LASH的數(shù)據(jù) 傳輸重新開始。當選擇應用的FLASH位寬為8,頁大小為(512+16)B時,控制器需要發(fā)出(32+1)次4拍字寬度的DMA專輸請求來完成數(shù)據(jù)和校驗信息的讀取。控制模塊的上作主要是將總線接口轉換的控制信號,按照NANDTASH的接口協(xié)議.將片選、地址、命令、讀寫使能按照所配置的時序要求,發(fā)送到NAND FLASH中,并且控制數(shù)據(jù)的傳輸個數(shù),以及DMA青求、數(shù)據(jù)傳輸完成中斷、數(shù)據(jù)錯誤中斷等系統(tǒng)信號。 NAND FLASHY靠性相對較差,
5、存儲器芯片中有壞塊的存在,會導致存儲數(shù)據(jù)出錯。ECC校驗模塊針對 NAND FLASH的可靠性問題,提供了一種查錯、糾錯的機制。ECC校驗碼在數(shù)據(jù)讀人時,由硬件計算完成后寫入到FLASH的校驗位中,當此頁數(shù)據(jù)讀出時,校驗碼再次生成與存儲器校驗位中的數(shù)據(jù)進行比較,若相同則沒有損壞位,若不同,則給出出錯中斷,軟件通過檢查比較結果,判斷出錯位的位置進行糾錯處理。糾 錯功能僅針對單bit位的出錯,當一個以上位同時在一頁中出現(xiàn)時,ECC校驗不能給出出錯位正確的位置。3 NAND FLASHX作的軟件流程按照上節(jié)對控制器結構以及傳輸機理的分析,NANDFLAS的使用需要在FLASH控制器模塊以及DMA控制
6、器模塊的協(xié)同下完成,工作的軟件流程如圖2所示。軟件驅動的主要工作是配置DMA模塊以及FLASH控制模塊,當傳輸完成,檢測到中斷后,軟件查詢狀態(tài)寄存器,其中的狀態(tài)位來自FLASH當一次操作完成后,控制器自動向FLASH發(fā)出查詢狀態(tài)的命令 0x70,讀出的狀態(tài)字保存在控制器的狀態(tài)寄存器中。4 NAND FLASH系統(tǒng)啟動的傳統(tǒng)模式目前支持從NAND FLAS!啟動的SoC芯片中,一般都內嵌有片內存儲器。各個處理器 廠商對這塊片上存儲器定義的容量大小有所不同,但是啟動模式都是比較一致的。NAND FLASHY頁順序讀取的方式,意味著對當前的存儲地址訪問后就無法馬上再次 訪問,需在當前頁訪問完成后,
7、重新對此頁訪問時,才可對先前的地址單元再次訪問, 這就導致了一些程序語句無法執(zhí)行,譬如跳轉、循環(huán)等語句的使用。 因此NANDFLASH僅作為啟動代碼的存儲區(qū), 而真正執(zhí)行的存儲器區(qū)域是內嵌的片上存儲器或者片外的SDRAM以上文中描述的控制器為例,按照這種啟動模式,程序搬運以及執(zhí)行的過程如下:AREA NANDFKM)丁CODE REATONLYENTRY/始配矍DMA控制簽mov mov add fTKJV add str mov mov add MrrhttOxHOOOOOO /設松DMA寄祁蘇甚址 rO 韓 0x1000rO*rltrO/ 墓址 0x1 100)000r2, #0x200r
8、l.r2.rl/ DMA地JlE襦存需地址DMA 掠地川 0x11000200 rlt # 0x30000000r2,0x1000rl * r2fl井 0x8/ DMA 忡標能址 0x30001000mov mov add add str mov cidd str0x210000tt 0x2400rl,tl.r2rt * r 1 Jt 0x9brltrOt4lOx4 / DMA 擰制謁薦器 0x21249H rlt #0x300rl i rl T # 0x5門,旳配? DMA通道使能需存器0x305/DMA控制器配巡第束開始配冒NAND FLASH控制誥mov addrO- Oxi 10000
9、00rO.rO么 OxlOO/地址奇存器地址0xl 1000100movstrmovniov addstrrlr2 rl tri 0x53rl/配時斥寄存器2 0x514353/ NANO FLASH桂制器配吮結束 mov mov add addmov movmovmovaddmovaddstrrlO 0x11000000 rlbltOxlOG rlOrlO*rl 1 rlO*rlO 命 0x4 rlh# 0x80000000 rOt #0x30000000 rl2,it0xe5000000 rl3Ox8aOOOO rl2rl2iiOxbOOO rl2rl2trl3/ rlO 中 0x1100
10、0104 / rll 中 0x80000000rl2.rO,/ 0x30000000/ r!2 中 Oxe58abOOOstrrllrlO/ 0x30000000 中存ttKS NAND ELASH 命令 /寄存器的值運行后NAND FLASH開始傳輸movr9 #0x100movrl 齊 0xe2000000movr2 0x590000addr!trlrl tr2addrl rl t Oxistrrl tfrO# #0x4/Oxc2599OOl 表示匯編 3 sub r9.r90x1/ 0x30000004 0xc2599001movrhiiOxlaOOOOOOmovr2# OxffOOOO
11、addrl rl f r2movr2ri rl, Oxfdstrrl rOjt # 0x4OxlafffHd 表示匯編 bneaniovr8 #0x30000000addr8,r8 #0xa00000addrlrlr2movr2 4? OxfOOOaddr! r2rladdrl .rl 孑0x8strrl tfrOj # 0x4H 0x30000008 Oxlafffffd/ rl 中存放 0xela0f008/0x30()0000c 中作放 0xela0f008mcvENDpc* rO/PC 向 0x3QQOOOOO SDRAM系統(tǒng)上電前,外部硬線NAND BOO開關選擇從 NAND FLA
12、SHn動。芯片設計時,默認DMA占有系統(tǒng)總線,DMA按照配置寄存器的默認值工作,其源地址指向NAND FLASH目標地址指向片上 SRAM NANDFLAS控制器在NAND300選中的情況下,默認向NAND FLASH的首頁發(fā)出讀命令。即上電后,DMA控制器以及NAND FLASHY制器默認的把FLASH存儲器中的第一頁搬到了片上 SRAM中。一直到DMA的工作完成前,ARM核無法 占用總線。此時零地址映射在片上SRAM DMA完成搬運后,ARM開始執(zhí)行程序。此段代碼完成的工作包括對 SDRAI控制器的初始化,從NANDTASH搬運核心代碼至SDRAM 配置地址重映射寄存器至零地址處,最后將P
13、C指向零地址的SDRAM在SDRAMS行的代碼開始真正啟動系統(tǒng)。5 NAND FLASH系統(tǒng)啟動的新方法一般情況下,片上存儲器在作為啟動代碼轉移階石的同時,往往在啟動后也有其特殊的作用??梢宰鳛樘厥獾某绦騾^(qū), 譬如在進行 MP3解碼過程中,核心解碼函數(shù)作為頻 繁調用的程序,可以安排在片上SRAM中,以提高讀取速度,提升系統(tǒng)性能。在SoC芯片開發(fā)過程中,在整體架構以及模塊功能的變化之后,這塊內嵌的SRAM失去了原來的作用,而僅作為 NAND FLASHB動時的代碼跳板,對于整個芯片而言,付出的代 價比較大。于是提出了在沒有片上存儲器的架構下,從NAND FLASHn動的一種新模式。在上述一般模式
14、啟動過程中,片上SRA晰起到的作用,就是執(zhí)行 NANDFLASH中第一頁的代碼,將真正的啟動代碼引入到 SDRAM最后將PC指針指向SDRAM在失去片上 SRAM勺支持后,可以在控制器的 FIFO中去執(zhí)行此段代碼,這需要在硬件以及軟件代 碼中作出適當?shù)母淖儭?1)首先需要改變的是地址映射的機制,系統(tǒng)上電后,ARM即從零地址開始執(zhí)行指令,零地址映射到NANEFLASH的FIFO入口地址,地址的譯碼過程由AMBA總線模塊完成。在外部硬線 NANDBOOT拉高的條件下,AMBA從設備地址 譯碼模塊在啟動過程中,將零地址的設備選擇權給到緩沖FIFO。在第一頁的指令執(zhí)行完畢后,PC指針也指向SDRAM(
15、2)其次是NAND FLASHY制器在啟動過程中,對數(shù)據(jù)的讀取方式。鑒于NAND FLASH大批量數(shù)據(jù)讀寫的特性,往往采用DMA方式對數(shù)據(jù)進行操作。啟動過程中,由ARMCore 直接向FIFO讀取數(shù)據(jù),在FIFO讀空的情況下,將從沒備READY言號拉低,等待NAND中的數(shù)據(jù)讀出。并且在此讀取過程中,DMA的請求被屏蔽。NAND FLASH型號類型眾多,從每頁容量大小、數(shù)據(jù)寬度、地址級數(shù)以及各型號芯片不同的時序參數(shù), 決定了一個控制器接口的兼容性要求相當?shù)母?。為了兼容從不同的NANDTASH啟動,設置了 4根硬線作為選擇。 NAND3OO選擇是否從 NANDTASH 啟動;PAGESIZE選擇每
16、頁大小,支持 512 B/page, 2 kB /page; IOWIDE選擇數(shù)據(jù) 端口的寬度,支持8位、16位;AD-DRESSCYCL選擇發(fā)送地址級數(shù), 支持3級、4級、5級地址。時序參數(shù)的配置值可以采用默認的寬松值,在讀取首頁信息之后,將配置值根據(jù)當前的時鐘頻率以及芯片類型,選擇舍適的時序值以達到最佳的性能。(4)存儲器首頁的代碼是在緩沖 FIFO中執(zhí)行的,F(xiàn)IFO的入口地址是一個高 24位的選通地 址,因此當系統(tǒng)啟動時,零地址開始增加,對FIFO中讀出的指令而言,低 8位地址的變化是無關的,F(xiàn)IFO始終被選通。指令的輸出是默認的順序輸出。這就要求首頁 的代碼中不可以出現(xiàn)循環(huán)、跳轉等語句
17、,并且要求在128條指令內完成需要的操作。6啟動代碼和流程的分析上述的匯編程序即是存放在NAND FLASHT頁的啟動代碼,啟動的流程如下:(1)配置DMA控制器的4個寄存器,通道使能后,等待FLASH發(fā)出的搬運請求; 配置NANDTASH控制器的3個寄存器,選擇適合的地址、時序參數(shù)與所用的 FLASH 芯片吻合;(3) 分別在r8r11中放入程序需要的備用值;(4) 將需要在SDRAM中運行的4條指令搬入 SDRAM 0x30000000處; 執(zhí)行Nop指令,Nop指令用于填充一頁 NANDFLAS中的剩余空間;(6)執(zhí)行在頁末的指令,將 PC指針指向SDRAMS 0x30000000處; 執(zhí)行SDRAM中的指令,首先啟動 NANDFLAS的數(shù)據(jù)傳輸,將程序搬往 SDRAM勺0x30001000處。其次執(zhí)行一個循環(huán)語句,等待第一頁的程序搬完,之
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四年級數(shù)學(簡便運算)計算題專項練習與答案
- 聯(lián)合企業(yè)激勵協(xié)議書(2篇)
- 癌癥康復課件教學課件
- 南京航空航天大學《電機學》2021-2022學年期末試卷
- 南京工業(yè)大學浦江學院《信息交互設計》2022-2023學年第一學期期末試卷
- 南京工業(yè)大學浦江學院《設計原理與設計管理》2021-2022學年第一學期期末試卷
- 分數(shù)的產(chǎn)生和意義說課稿
- 蹲踞式跳遠示范說課稿
- 銀凱工業(yè)園孵化產(chǎn)業(yè)園一區(qū)二期工程施工組織設計
- 《夏天的雷雨》的說課稿
- 事業(yè)單位招聘《綜合基礎知識》考試試題及答案
- 《突發(fā)事件應急預案管理辦法》知識培訓
- 江蘇省南京市建鄴區(qū)2024-2025學年九年級上學期期中考試物理試題(無答案)
- 中小學師德師風建設各項制度匯編
- 2024年保安員證考試題庫及答案(共260題)
- 公務員2024年國考申論真題(地市級)及參考答案
- XXXX酒店管理公司成立方案
- 民用無人機操控員執(zhí)照(CAAC)考試復習重點題及答案
- 疼痛科整體規(guī)劃和發(fā)展方案
- 2024年中國南水北調集團水網(wǎng)水務投資限公司及下屬單位社會招聘高頻難、易錯點500題模擬試題附帶答案詳解
- (新版)食品生產(chǎn)企業(yè)食品安全員理論考試題庫500題(含答案)
評論
0/150
提交評論