使用只讀內(nèi)存釋放 RAM
出處:維庫(kù)電子市場(chǎng)網(wǎng) 發(fā)布于:2023-12-19 16:55:27
微控制器存儲(chǔ)器分為與電氣特性(例如,易失性與非易失性)和架構(gòu)因素相對(duì)應(yīng)的類別,例如 8051 內(nèi)部數(shù)據(jù)存儲(chǔ)器和“外部”數(shù)據(jù)存儲(chǔ)器之間的區(qū)別(外部 RAM 可以包含在-芯片)。例如:
了解微控制器只讀存儲(chǔ)器的重要一點(diǎn)是它不是只讀存儲(chǔ)器。首先,如果它真的是“只讀”的,那么它就毫無價(jià)值,因?yàn)?a target="_blank">MCU的編程器硬件無法向其中寫入程序指令。更重要的是,MCU 允許您從固件內(nèi)寫入該存儲(chǔ)器。因此,它實(shí)際上是可讀、可寫、非易失性存儲(chǔ)器,可用于一般數(shù)據(jù)存儲(chǔ)。
(注意:我相信從固件寫入代碼存儲(chǔ)器的能力現(xiàn)在相當(dāng)標(biāo)準(zhǔn),但如果您遇到不支持此功能的現(xiàn)代微控制器,請(qǐng)?jiān)谙旅娴脑u(píng)論部分告訴我們。)
在進(jìn)一步討論之前,我想澄清這一點(diǎn):當(dāng)您處理在程序運(yùn)行期間必須存儲(chǔ)的數(shù)據(jù)時(shí),代碼存儲(chǔ)器是 RAM 的替代品。
訪問 RAM 速度更快,根據(jù)我的經(jīng)驗(yàn),在固件執(zhí)行期間寫入代碼存儲(chǔ)器所需的過程很復(fù)雜,并且存在損壞閃存的風(fēng)險(xiǎn)。
不要使用代碼內(nèi)存來存儲(chǔ)需要頻繁修改的變量和數(shù)組——這些應(yīng)該位于數(shù)據(jù)內(nèi)存中。
如果您的 MCU 沒有足夠的 RAM 來容納所有經(jīng)常修改的變量,請(qǐng)使用不同的 MCU 或添加外部存儲(chǔ)芯片?!?br> 運(yùn)行前存儲(chǔ)
使用代碼存儲(chǔ)器補(bǔ)充 RAM 的更好方法是存儲(chǔ)常量值。這些可能是許多不同的東西:您將發(fā)送到 LCD 模塊的顯示模式、將通過SPI或UART傳輸?shù)墓潭ㄗ止?jié)或字符序列、將用于通過數(shù)字到音頻生成不同音頻的預(yù)先計(jì)算的正弦波值。 - 模擬轉(zhuǎn)換等。
將常量值存儲(chǔ)在閃存而不是 RAM 中很容易,因?yàn)槟恍鑼⑦@些值包含在固件中(作為普通變量或數(shù)組)并告訴編譯器您希望將它們存儲(chǔ)在代碼存儲(chǔ)器中。對(duì)于我的編譯器,我需要做的就是將關(guān)鍵字“code”放在變量名之前(請(qǐng)參閱下面的示例);您的編譯器可能有所不同。
無符號(hào)字符代碼 UART_Message[4] = {0xAA, 0xAA, 0x1C, 0x2D};
代碼存儲(chǔ)器有時(shí)非常豐富,以至于該技術(shù)可用于存儲(chǔ)某種基本圖像或簡(jiǎn)短的數(shù)字化音頻剪輯?! ?br> 運(yùn)行時(shí)存儲(chǔ)
運(yùn)行時(shí)存儲(chǔ)是使用代碼內(nèi)存替代 RAM 的更復(fù)雜的方法。您必須查閱 MCU 的數(shù)據(jù)表,甚至可能是相關(guān)的應(yīng)用說明,才能找到所需的過程并了解潛在的問題。例如,下圖傳達(dá)了有關(guān) 16 位 PIC 微控制器的閃存寫入過程的信息:
運(yùn)行時(shí)代碼內(nèi)存存儲(chǔ)對(duì)于保存設(shè)備操作期間生成的校準(zhǔn)值非常有用。在這種情況下,主要優(yōu)點(diǎn)是代碼存儲(chǔ)器是非易失性的,因?yàn)檫@些類型的數(shù)據(jù)通常不會(huì)消耗太多 RAM。運(yùn)行時(shí)代碼內(nèi)存存儲(chǔ)將幫助您應(yīng)對(duì) RAM 限制的一個(gè)例子是,如果您需要記錄一長(zhǎng)串測(cè)量值,這些測(cè)量值被收集,然后保留下來,直到操作員將測(cè)量值到 PC?!?br> 結(jié)論
對(duì)于那些像我一樣在用完閃存之前更有可能用完 RAM 的人來說,程序存儲(chǔ)器是一種寶貴的資源,因?yàn)樗梢宰屇谑褂幂^小的微控制器并消除復(fù)雜性和成本的同時(shí)滿足系統(tǒng)要求。包含一個(gè)外部存儲(chǔ)芯片。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- eMMC 屬于閃存還是內(nèi)存?從定義到應(yīng)用講透核心區(qū)別2025/9/15 15:24:16
- ddr4和ddr5內(nèi)存接口一樣嗎?全景解析2025/9/8 17:22:03
- 虛擬存儲(chǔ)器的概念和特征2025/8/4 16:49:21
- 鐵電存儲(chǔ)器和flash的區(qū)別2025/7/30 16:56:02
- 內(nèi)存頻率是什么_內(nèi)存頻率高有什么好處2025/7/29 17:07:27
- 交交型變頻器和交直交型變頻器的區(qū)別
- 800G DR8 與其他 800G 光模塊的對(duì)比分析
- UPS電源中電流電壓傳感器的應(yīng)用
- 51單片機(jī)電平特性是什么
- AC/DC 與 DC/DC 轉(zhuǎn)換器的工作原理與應(yīng)用
- PCB板層設(shè)計(jì)與電磁兼容性的關(guān)系解析
- 接觸器式繼電器怎么區(qū)分 如何測(cè)量好壞
- 車規(guī)級(jí)MCU介紹及應(yīng)用場(chǎng)景
- 電容選型時(shí)如何選擇產(chǎn)品的電壓
- 線性穩(wěn)壓電源與開關(guān)穩(wěn)壓電源:原理、特性及應(yīng)用