ARM學習之Nand FLash控制器

2021-08-06 03:45:51 字數 1758 閱讀 2725

今天學習了nand flash的一些內容。在此做下回憶和總結:

1.什麼是nand flash?

答:nand flash是一種非易失性的儲存性介質,一般用於儲存嵌入式系統執行所必需的作業系統、應用程式、使用者資料等,地位和pc上的硬碟類似。一般來說,它的介面引腳不像sdram那樣多(sdram有20多根),一般也就是十幾根。以三星公司的k9f1208u0m為例,如下所示。

正因為它的資料引腳較少,所以它的命令、位址、資料都是公用這一組io引腳再配上ale、cle等其他使能訊號進行傳輸的。操作nand flash(讀、寫、擦除)也和簡單,基本上是按照傳輸命令、傳輸位址、最後讀寫資料這樣乙個流程實現的。這些命令在具體的晶元手冊上都會有。

就像上面說的,命令、位址、資料都是通過那一組io引腳傳輸的,不過對於s3c2440晶元來說,它為我們準備好了一組暫存器(nfcon、nfcont等),我們只要操作具體的暫存器就可以實現上述流程。

2.static在嵌入式程式設計中的作用?

答:今天在看**的時候,看到了用static修飾的靜態函式。有點疑惑,所以查閱了解了一下。

有一篇csdn部落格上講的挺詳細的,先摘錄如下(

static從本質來講就兩個作用:

(1)、限定儲存域

(2)、限定作用域

一、限定儲存域:被static修飾的變數無論是區域性變數還是全域性變數都將被編譯器存放在靜態區。而實際上在gcc編譯完生成的elf格式檔案中並沒有靜態區這個概念,所謂靜態區是我們在概括討論程式資料段的一種泛稱。實際上編譯器會根據具體情況把被static修飾的變數分為兩類:當變數被定義並初始化為非零值的時候,變數將放在.data段;當否則為初始化或初始化為零的時候將放在.bss段。我們在不深入討論的時候暫且可以將此兩段概括為靜態區。而放在靜態區的變數由於儲存域的原因導致生命週期很長,長度為程式(確切講應該是該程式執行後的程序)的一次執行過程,而普通區域性變數由於在執行過程中被系統分配在棧區所以生命週期只是一次函式的呼叫過程。

第二、限定作用域:由於靜態還是普通區域性變數本身的作用域就是函式內部,因此static的作用域主要是對全域性變數和函式的限定。被staitc修飾的全域性變數或函式都被編譯器標記為僅在本檔案中使用,由於編譯器在編譯過程中是以.c結尾的原始檔為單位依次生成以.o結尾的目標檔案,所以最後聯結器在連線過程中將不允許被static修飾的變數或函式的位址對外鏈結。這樣既可以防止全域性變數或函式的重名問題,又可以防止由於無關的全域性變數誤操作引起的程式邏輯問題。因此static就限定了變數或函式的作用域。

volatile在嵌入式程式設計中的作用?

答:volatile是不穩定的意思,它是乙個變數修飾符,用來指示編譯器不要對此修飾符修飾的變數進行優化,否則可能會出現錯誤。簡單來說,當有些變數從記憶體中讀入到暫存器中的時候,可能會保留乙個備份,下次操作此變數的時候就不用在此從記憶體中讀取,直接使用這個備份暫存器中的值就可以了(這是由編譯器優化實現的)。但是在涉及到多執行緒或者有關硬體程式設計的時候,對有些變數不需要這些優化(可能是為了保持資料的穩定性、一致性),就用到了這個修飾符。

4.乙個小的發現:以前在程式設計的時候,定義了乙個結構體之後,都是用這個宣告的結構體定義乙個變數,由系統給我們分配這個變數的空間(動態或靜態)。今天在看**的時候,發現在底層的程式設計中,有的時候可以直接給變數賦乙個指定的值(長知識了)。如下圖所示,

嵌入式學習之Nand Flash

nand flash是flash儲存器的一種,其內部採用非線性巨集單元模式,為固態大容量記憶體的實現提供了廉價有效的解決方案。nand flash儲存器具有容量較大,改寫速度快等優點,適用於大量資料的儲存,因而在業界得到了越來越廣泛的應用,如嵌入式產品中包括數位相機 隨身聽 記憶卡 體積小巧的u盤等...

nandflash學習經歷

經過一段時間的奮鬥,終於對nandflash的框架有點了解!首先從 drivers mtd nand at91 nand.c開始分析 at91 nand probe 獲得nandflash 的型別 drivers mtd nand nand base.c nand scan 獲得真正nandflas...

ARM學習之ARM體系結構

本文主要針對arm cortex a9處理器的研究。arm採用的是32位的risc架構 資料型別 byte 位元組 8bit halfword 半字 16bit v4以上版本 word 字 32bit arm核心只提供fiq和irq兩種中斷向量。arm支援大端模式和小端模式兩種儲存方式。工作模式 u...