關於NandFlash 啟動問題

2022-06-25 02:12:11 字數 1236 閱讀 8351

最初學習嵌入式linux驅動時,按照韋東山老師的移植教程糊里糊塗的完成了2440的norflash和nandflash的啟動,

但並不明白所以然,所以就花時間研究一下,解除心中的疑惑。並附上韋東山的講解

如下圖2440的記憶體對映所示

norflash啟動

根據手冊可知,當晶元配置為norflash啟動時,晶元上電,晶元內部固化的**bootrom便會從bank0讀取可執行檔案到sdram中,從而執行norflash內部儲存的**。

nandflash啟動

而當晶元配置為nandflash啟動時,nandflash控制器的auto boot功能將會把nandflash的前4k資料拷貝到boot internal sram 的區域,三星手冊上稱之為墊腳石,前4k資料便在墊腳石中執行,那其他**該怎麼辦呢,所以這4k**中必須包含把nandflash其他資料拷貝sdram的功能。

1.問題一:nandflash的型號很多,在**啟動前cpu是怎麼做到時序匹配的?

通過2440配置管腳,來實現配置,如下圖所示。

2.問題二:那麼為什麼不直接把nandflash中的資料全部讀到sdram中直接執行呢?

個人猜測:由於讀取這4k**時,nandflash的ecc功能還未開啟,並且nandflash控制器還未被完全初始化,為了安全起見先讀取4k**

執行,對nandflash控制器和sdram控制器進行初始化,之後才把其他**拷貝到sdram中執行。

3.問題三:那為什麼norflash 啟動就不需要問題二中的操作呢?

個人猜測:norflash 的介面其實就是並口,資料線,位址線,時序是所有型號相容的,有相應要求的。那為什麼不對sdram初始化就能在sdram中執行,這不是推翻了上述norflash啟動的理論了嗎?

因此我再次懷疑,這就有點像stm32的操作了,唯讀段在norflash,讀寫段在4k 的sram內部執行,**中會對sdram進行初始化,並做其他操作。

這也就是為什麼說arm9是哈弗架構和馮諾依曼架構之間的問題吧,此處純粹瞎猜,有時間在研究一下。

關於tensorboard啟動問題

我在學習過程中遇到了tensorboard無法啟動的問題。按照網上的教程,我無法正常啟動tensorboard,全過程沒有報錯,但是開啟tensorboard顯示 如下圖 這種情況下,我在網上並沒有看到非常直接的解決方法,最後在群裡跟大家討論找到了解決方法,這裡跟大家分享一下啟動tensorboar...

關於tensorboard啟動問題

我在學習過程中遇到了tensorboard無法啟動的問題。按照網上的教程,我無法正常啟動tensorboard,全過程沒有報錯,但是開啟tensorboard顯示 如下圖 這種情況下,我在網上並沒有看到非常直接的解決方法,最後在群裡跟大家討論找到了解決方法,這裡跟大家分享一下啟動tensorboar...

關於從NAND Flash啟動的問題

椐了解 nor flash 是容量小,速度快,穩定性好,適合做程式儲存器。nand flash 總容量大,適合做資料儲存器是不能從nand flash啟動的,nand flash是的讀寫時序是不能直接有arm硬體產生的,要讀寫nand flash是要通過程式來實現的,很明顯能看出來的就是nand f...