0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

指定了SDRAM卻燒寫到了Nand flash的詳細(xì)分析

h1654155971.7688 ? 2017-12-21 18:14 ? 次閱讀

在剛開始學(xué)習(xí)ARM9的裸機(jī)編程和Linux系統(tǒng)移植的時(shí)候,燒寫Nand flash內(nèi)存的時(shí)候?qū)σ恍┲付ǖ牡刂樊a(chǎn)生了疑惑。

看過很多教學(xué)視頻,他們在燒寫程序到Nand flash的時(shí)候一般會(huì)指定一個(gè)地址0X3000_0000,而S3C2440的官方手冊上指明了0X3000_0000地址對應(yīng)的片內(nèi)外設(shè)是SDRAM。這不禁讓人產(chǎn)生疑問:明明是指定了SDRAM卻燒寫到了Nand flash,這到底是為什么呢?

要解答這個(gè)問題,首先要從Nand flash本身的結(jié)構(gòu)說起。Nand flash的結(jié)構(gòu)和RAM不一樣,它的數(shù)據(jù)線是復(fù)用的,內(nèi)與足夠的地址線用來尋址,對于它的數(shù)據(jù)存取通常是以塊為單位。這一點(diǎn)跟Nor flash不一樣,Nor flash帶有RAM接口,有足夠的地址線進(jìn)行尋址,所以CPU可以訪問Nor flash內(nèi)部的每一個(gè)字節(jié),程序可以在nor flash中運(yùn)行,而Nand flash不行,所以Nand flash中的程序想要運(yùn)行必須拷貝到內(nèi)存(一般是SDRAM)當(dāng)中來。

當(dāng)我們想燒寫程序至Nand flash中時(shí),會(huì)借助一個(gè)“中轉(zhuǎn)站”,既SDRAM。程序先燒寫到SDRAM中(這就是指定0X3000_0000地址的原因),然后在從SDRAM中拷貝到Nand flash中去,而這個(gè)拷貝工作由實(shí)現(xiàn)燒寫到Nor flash中的uboot程序引導(dǎo)完成。

此外,當(dāng)我們向2440開發(fā)板移植Linux系統(tǒng)的時(shí)候,要向Nand flash燒寫三個(gè)文件,分別是:uboot、Linux kernel和文件系統(tǒng)。每一步的燒寫也跟前面一樣借用SDRAM作為燒寫的“中轉(zhuǎn)站”。但是,我們在燒寫的時(shí)候并沒有對每一步的燒寫地址做特定的處理,那怎么能夠保證寫著三個(gè)文件的時(shí)候后面的不會(huì)覆蓋前面的呢?個(gè)人理解是:還是Nor flash中的uboot程序的功勞,它會(huì)引導(dǎo)著三個(gè)文件分別拷貝到Nand flash的不同位置中。

那么說完了Nand flash燒錄的問題,自然而然就應(yīng)該說一下Nand flash中程序運(yùn)行的問題。前面我們說到,Nand flash中不可以執(zhí)行程序,而在我們選擇從Nand flash啟動(dòng)的時(shí)候,S3C2440會(huì)自動(dòng)將Nand flash的前4KB的代碼拷貝到內(nèi)存當(dāng)中一個(gè)Stepping Stone(一般稱為墊腳石)的片內(nèi)內(nèi)存當(dāng)中(這一步操作由芯片內(nèi)部的硬件決定,不用我們操心),PC跳轉(zhuǎn)到0地址去執(zhí)行這些代碼。

但是這個(gè)片內(nèi)內(nèi)存只有4KB,當(dāng)我們在Nand flash中的程序大于4KB的時(shí)候怎么辦呢?

這時(shí)候就是這最先拷貝過去的4KB代碼發(fā)揮作用的時(shí)候了。這4KB的代碼會(huì)幫我們初始化SDRAM,然后將Nand flash中剩下的代碼一并拷貝到SDRAM中,PC跳轉(zhuǎn)到SDRAM中去執(zhí)行剩下的程序(所以我們的裸機(jī)程序一般不會(huì)超過4KB)。

雖然說燒寫只有短短的幾步,但是其中蘊(yùn)含的知識(shí)點(diǎn)還是蠻多的,這或許也就是嵌入式的特點(diǎn)吧。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18973

    瀏覽量

    301997
  • SDRAM
    +關(guān)注

    關(guān)注

    7

    文章

    422

    瀏覽量

    55133
  • NAND
    +關(guān)注

    關(guān)注

    16

    文章

    1666

    瀏覽量

    135931
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1614

    瀏覽量

    147652

原文標(biāo)題:為什么指定了SDRAM,程序卻燒寫到了Nand flash?

文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    教你用JLINKNOR/NAND FLASH

    your_file.bin 0x30000000 g 這時(shí),你的文件已經(jīng)被下載到SDRAM 0x30000000去了。 后面的操作就是u-boot的命令。2.4 使用u-bootFla
    發(fā)表于 03-27 09:51

    uboot代碼詳細(xì)分析

    [url=]uboot代碼詳細(xì)分析[/url]
    發(fā)表于 01-29 13:51

    寫雖然只有簡單幾步,蘊(yùn)太多知識(shí)點(diǎn)

    flash的時(shí)候一般會(huì)指定一個(gè)地址0X3000_0000,而S3C2440的官方手冊上指明了0X3000_0000地址對應(yīng)的片內(nèi)外設(shè)是SDRAM。這不禁讓人產(chǎn)生疑問:明明是指定
    發(fā)表于 12-15 20:29

    請問程序如何寫到指定FLASH中?

    concerto f28m35請教:程序如何寫到指定FLASH中?用仿真器可以直接下載嗎?我對程序寫沒有清晰的概念,求賜教!
    發(fā)表于 10-30 10:14

    請問u-boot寫ucosii系統(tǒng)能不能寫到nand flash中去?

    SDRAM中并且可以運(yùn)行,一斷電就沒了。。。。能不能寫到nand flash中去呢,就像寫l
    發(fā)表于 08-06 23:29

    詳細(xì)分析一下USB協(xié)議

    本文跟大家一起詳細(xì)分析一下USB協(xié)議。
    發(fā)表于 05-24 06:16

    詳細(xì)分析stm32f10x.h

    每日開講---學(xué)習(xí)STM32不得不看的剖析(詳細(xì)分析stm32f10x.h)摘要: 學(xué)習(xí)STM32不得不看的剖析(詳細(xì)分析stm32f10x.h)。/**這里是STM32比較重要的頭文件*******************************************
    發(fā)表于 08-05 07:44

    詳細(xì)分析VTIM和VMIN的功能

    上一篇文章中,我們詳細(xì)分析VTIM和VMIN的功能,《嵌入式Linux 串口編程系列2--termios的VMIN和VTIME深入理解》 也明白這兩個(gè)參數(shù)設(shè)計(jì)的初衷和使用方法,接下來我們 就
    發(fā)表于 11-05 07:09

    詳細(xì)分析嵌入式Linux系統(tǒng)啟動(dòng)流程

    在嵌入式Linux專題(一)中已經(jīng)對嵌入式Linux系統(tǒng)的架構(gòu)及啟動(dòng)流程有初步的介紹,本文將詳細(xì)分析嵌入式Linux系統(tǒng)啟動(dòng)流程。
    發(fā)表于 11-05 09:25

    電子工程師必須掌握的20個(gè)模擬電路詳細(xì)分析

    內(nèi)含參考答案以及詳細(xì)分析
    發(fā)表于 10-07 07:15

    筆記本使用十大陋習(xí)詳細(xì)分析

    筆記本使用十大陋習(xí)詳細(xì)分析 電腦越來越平民化,可是電腦總是出問題   由于摩爾法則的影響,整個(gè)IT產(chǎn)品業(yè)界的產(chǎn)品售價(jià)正在
    發(fā)表于 01-20 14:18 ?330次閱讀

    電子整流器工作原理詳細(xì)分析

    電子整流器工作原理詳細(xì)分析
    發(fā)表于 02-27 10:43 ?2.5w次閱讀

    Buck變換器原理詳細(xì)分析

    Buck變換器原理詳細(xì)分析
    發(fā)表于 09-15 17:26 ?30次下載
    Buck變換器原理<b class='flag-5'>詳細(xì)分析</b>

    物聯(lián)網(wǎng)的產(chǎn)業(yè)生態(tài)是怎樣的詳細(xì)分析概述

    物聯(lián)網(wǎng)的產(chǎn)業(yè)生態(tài)是怎樣的詳細(xì)分析概述
    的頭像 發(fā)表于 12-08 10:00 ?5085次閱讀

    正激有源鉗位的詳細(xì)分析

    正激有源鉗位的詳細(xì)分析介紹。
    發(fā)表于 06-16 16:57 ?61次下載