STM32 存儲器
一.存儲器
1.RAM,ROM,FLASH
ROM(Read Only Memory)隻讀存儲器和RAM(Random Access Memory)随機存儲器都是半導體存儲器。ROM 掉電不丢失,RAM 掉電丢失。
RAM
RAM分為兩大類,一種是靜态RAM(Static RAM 即SRAM),另一種是動态RAM(Dynamic RAM,即DRAM)。 SRAM,所謂“靜态”是指隻要不掉電,存儲在SRAM中的資料就不會丢失。SRAM是目前為止讀寫最快的儲存設備,它經常被用在CPU的一級緩沖,二級緩沖。價格昂貴。DRAM,保留資料時間很短,速度比SRAM慢,但是要比ROM快。DRAM分為很多種,常見的有FPRAM/FashPAGE,EDORAM,SDRAM,DDR RAM,RDRAM,SGRAM以及WRAM等。
DDR RAM(Date - Rate RAM)也被稱作為DDR SDRAM,這種改進型的RAM 和SDRAM不同之處在于它可以一個時鐘讀寫兩次資料,這樣就使資料傳輸的速度加倍了。目前電腦用的最多的記憶體就是DDR RAM,許多高端的顯示卡中也配有DDR RAM 來提高帶寬。
ROM
ROM可以分為PROM,EPROM,EEPROM。PROM是一次性的,也就是軟體灌入之後無法修改了,現在已經被淘汰了。Eprom是一種通用的存儲器,它是通過紫外線的照射來擦出的。E2PROM 是通過電子擦出的,但寫入時間很慢。
Flash
Flash存儲器又稱為閃存,它結合了ROM和RAM的長處,不僅具備電子可擦除可程式設計(EEPROM)的性能,還不會斷電丢失資料同時可以快速讀取資料(NVRAM的優勢),U盤和MP3就是用的這種存儲器。近年來Flash全面代替了ROM(EPROM)在嵌入式中的地位,用作存儲Bootloader 以及作業系統或者程式代碼或者直接當作硬碟使用。
目前Flash主要分為兩種NOR Flash和NADN Flash。NOR Flash資料線和位址線分開的,可以實作ram一樣的随機尋址功能,可以讀取任何一個位元組,但是擦除仍要按塊來擦。NAND Flash 同樣是按塊來擦除,但是資料線和位址線複用,不能利用位址線随機尋址。讀取隻能按頁來讀取。(nandflash安塊來擦除,按頁來讀,norflash沒有頁)由于nandflash引腳上複用,是以讀取速度比nor flash慢一點兒,但是擦除和寫入速度比nor flash快很多。nand flash内部電路更簡單,是以資料密度大,體積小,成本也低。是以大容量的都是nand flash。小容量的2-12M的多是nor flash。使用壽命上,nand flash的擦除次數是nor的數倍。而且nand flash可以标記壞塊,進而使軟體跳過壞塊。nor flash一旦損壞便無法再用。因為nor flash可以進行位元組尋址,是以在nor flash中運作。嵌入式系統多用一個小容量的nor flash存儲引導碼,用一個大容量的nand flash 存放檔案系統和核心。 Flash 和 EEPROM 的差別: EEPROM的擦除是以位元組為機關的,他可以往每一個bit中寫入0或者1。但是這樣做電路設計複雜,成本高。是以目前的EEPROM都是十幾千位元組到幾百千位元組,絕少有超過512K的。 Flash是在EEPROM之後發展而來的,它做的改進是在擦除時不再以位元組為機關,而是以塊為機關,這樣簡化了電路,資料密度更高,降低了成本。在STM32可以用flash模拟eeprom用來儲存少量資料如藍牙link key等!