導航:首頁 > 操作系統 > 單片機flash讀寫

單片機flash讀寫

發布時間:2022-08-11 03:45:15

① AVR單片機中如何寫flash,目前能夠讀出來,就是不知道怎麼將變數寫到flash任意地址中

如果是在單片機程序中寫Flash,這是一個很復雜的過程,
Atmega單片機
Flash分為兩個區:可讀寫區(RWW),不可讀寫區(NRWW)
RWW:
read-while-write,也就是常說的
bootloader
區,
NRWW:no-read-while-write
一般的應用程序是在NRWW區的,也就是說不可以對flash進行操作,但是你可以寫一段
程序下載
到RWW區,然後這一段的程序可能對整個Flash進行讀寫操作,所以你要實現寫Flash的話,你的應用程序必須跳轉到RWW區,將要寫的地址傳給它,然後由該部分的程序去完成操作,然後再跳回你的應用程序

② 單片機對flash的讀寫問題

stc單片機中的flash是程序存儲器 如果你要保存數據可以保存到EEPROM中,stc中有2K~10幾K不等,至於到底STC中的flash中能否用於保存除程序之外的數據,沒有研究過.......

③ 單片機中,對Flash的讀寫與外部RAM/EEPROM讀寫有什麼不一樣

FLASH是程序存儲器,嚴格來講是不允許MCU寫的,但是出於某些功能有的單片機允許MCU寫,但是為了安全寫FLASH會有一種相對復雜的操作。EEPROM是電可擦寫存儲器,他相對寫FLASH來說比較簡單,不同廠商的單片機EEPROM的操作也會有所不同。前面兩種都屬於間接定址,最後RAM是最簡單的讀寫,可以直接定址操作的。

④ 單片機讀寫flash為什麼必須是偶數地址

如果是操作16位匯流排,那麼訪問時必須按偶數地址對齊。
否則就不一定受這樣的限制。例如對串列Flash進行讀操作是可以對奇地址進行單位元組讀取的。

⑤ 新手請問師傅們我該如何通過spi讀寫這個單片機內FLASH

按寫的這個順序來操作啊。
先在偏移02h的寄存器寫好地址、在偏移03h的寄存器寫好數據,
然後向04h、05h寫入A5h、C3h解開防寫,
接著向00h依次寫入58A9h和A958h解鎖FLASH操作,
然後改寫01h寄存器的第4位到第2位,寫入FLASH操作命令,並將第0位置1,啟動操作,
回讀01h寄存器直到第0位變成0,表明操作完成,

⑥ 51單片機如何讀寫內置的Flash

寫進去還是很簡單的,用stc-isp一下子就寫進去了,要讀出來就麻煩了,寫進去的時候已經加密了,很難得反編譯的。

⑦ 如何用單片機讀寫FLASH

W25X_16嗎?SPI介面,要看你是何種單 片機,有硬體SPI介面和沒有配件SPI介面的區別在於讀寫一個位元組的方法不一樣,其餘上層函數是一樣的。如果是STM32單片機,野火和正點原子常式里的都有完整的源文件。

⑧ 讀寫flash和eprom的區別

FLASH的全稱是FLASH EEPROM,但跟常規EEPROM的操作方法不同。FLASH和EEPROM的最大區別是FLASH按扇區操作,EEPROM則按位元組操作,二者定址方法不同,存儲單元的結構也不同,FLASH的電路結構較簡單,同樣容量占晶元面積較小,成本自然比EEPROM低,因而適合用作程序存儲器,EEPROM麻煩的多,所以更「人性化」的MCU設計會集成FLASH和EEPROM兩種非易失性存儲器,而廉價型設計往往只有FLASH,EEPROM在運行中可以被修改,而FLASH在運行時不能修改,EEPROM可以存儲一些修改的參數,Flash中存儲程序代碼和不需要修改的數據,所謂的Flash是用來形容整個存儲單元的內容可以一次性擦除。所以,理論上凡是具備這樣特徵的存儲器都可以稱為Flash memory。EEPROM裡面也分FF-EEPROM和FLASH EEPROM的,現在大家所講的Flash memory實際上分為兩大類,一類是Floating Gate Debice,一類是Charge Trapping Debice,這里的分類標准主要是program與crase的機制不同。

一:FLASH和EEPROM的區別

1:相同點是兩者都能掉電存儲數據

2:不同點是:

A:FALSH寫入時間長,EEPROM寫入時間短。

B:FLASH擦寫次數少(10000次),EEPROM次數多(1000000次)

二:單片機的數據存儲器不能用FLASH,因為:

1:FLASH有一定的擦除,寫入次數,一般的單片機的FLASH擦除寫入次數的標稱值是10000次。

2:FLASH寫入數據需要比較長的時間,大約需要4-6ms,而且寫FLASH需要加上9V的高壓,麻煩。

三:至於EEPROM,可以作為數據存儲器,但是單片機如atmegal28,一般用RAM作為數據存儲器,因為EEPROM工藝復雜,成本高,適合於存儲掉電保護的數據,而這類數據往往不需要太多,所以一般的單片機都沒在內部集成EEPROM,需要的時候可以讓單片機外掛24C01一類的串列EEPROM。

區別:

1、 FLASH按扇區操作,EEPROM則按位元組操作

2、 FLASH寫入時間長,EEPROM寫入時間短

3、 FLASH擦寫次數少(10000次),EEPROM次數多(1000000次)

4、 FLASH的電路結構簡單,成本低,EEPROM工藝復雜,成本高

⑨ 如何用單片機讀寫FLASH

就是這段程序了。我一直用的。不懂的可以找我

#define CMD_IDLE 0
#define CMD_READ 1
#define CMD_PROGRAM 2
#define CMD_ERASE 3
#define ENABLE_IAP 0X82// SYSCLK<24M
#define IAP_ADDRESS 0X0000

void IAP_Disable()//Make MCU if safe state
{
//關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處於安全狀態,
//一次連續的IAP 操作完成之後建議關閉IAP 功能,不需要每次都關
IAP_CONTR = 0; //關閉IAP 功能
IAP_CMD = 0; //清命令寄存器,使命令寄存器無命令,此句可不用
IAP_TRIG = 0; //清命令觸發寄存器,使命令觸發寄存器無觸發,此句可不用
IAP_ADDRH = 0x80; // ??? 0x80 ????
IAP_ADDRL = 0;
}
//讀一位元組,調用前需打開IAP 功能,入口:DPTR = 位元組地址,返回:A = 讀出位元組
uchar Byte_Read(uint addr)
{
IAP_CONTR=ENABLE_IAP; //打開IAP 功能, 設置Flash 操作等待時間
IAP_CMD=CMD_READ; //IAP/ISP/EEPROM 位元組讀命令
IAP_ADDRL=addr; //設置目標單元地址的高8 位地址
IAP_ADDRH=addr>>8; //設置目標單元地址的低8 位地址
IAP_TRIG=0X5A;//先送 5Ah,再送A5h 到ISP/IAP 觸發寄存器,每次都需如此
IAP_TRIG=0XA5;//送完A5h 後,ISP/IAP 命令立即被觸發起動
_nop_();
IAP_Disable();//關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處於安全狀態
return IAP_DATA;
}

//位元組編程,調用前需打開IAP 功能,入口:DPTR = 位元組地址, A= 須編程位元組的數據
void Byte_Program(uint addr,uchar dat)
{
IAP_CONTR=ENABLE_IAP;//打開 IAP 功能, 設置Flash 操作等待時間
IAP_CMD=CMD_PROGRAM;//IAP/ISP/EEPROM 位元組編程命令
IAP_ADDRL=addr;//設置目標單元地址的高8 位地址
IAP_ADDRH=addr>>8; //設置目標單元地址的低8 位地址
IAP_DATA=dat;//要編程的數據先送進IAP_DATA 寄存器
IAP_TRIG=0X5A;//先送 5Ah,再送A5h 到ISP/IAP 觸發寄存器,每次都需如此
IAP_TRIG=0XA5; //送完A5h 後,ISP/IAP 命令立即被觸發起動
_nop_();
IAP_Disable();//關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處於安全狀態,
}
void Sector_Erase(uint addr) //擦除扇區, 入口:DPTR = 扇區地址
{
IAP_CONTR=ENABLE_IAP;
IAP_CMD=CMD_ERASE;
IAP_ADDRL=addr;
IAP_ADDRH=addr>>8;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
IAP_Disable();
}

閱讀全文

與單片機flash讀寫相關的資料

熱點內容
演算法申請著作權 瀏覽:213
以前手機號換了要怎麼登錄農行app 瀏覽:192
線切割編程系統怎麼繪畫 瀏覽:234
如何搭建雲伺服器異地容災 瀏覽:923
黃金拐點指標源碼 瀏覽:92
演算法導論第九章 瀏覽:276
鴿子為什麼生成伺服器沒反應 瀏覽:490
freebsdnginxphp 瀏覽:215
雜訊消除演算法 瀏覽:608
vue類似電腦文件夾展示 瀏覽:112
後備伺服器有什麼功效 瀏覽:269
連不上伺服器怎麼連 瀏覽:600
什麼構架的可以刷安卓系統 瀏覽:771
愛奇藝APP怎麼兌換CDK 瀏覽:994
程序員買4k顯示器還是2k顯示器 瀏覽:144
python多進程怎麼多窗口 瀏覽:818
電腦文件夾怎麼取消類別 瀏覽:47
cad拉線段命令 瀏覽:924
如何用電腦清理手機沒用的文件夾 瀏覽:100
儲存層次結構對程序員的意義 瀏覽:477