www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式分享
[導(dǎo)讀]在嵌入式系統(tǒng)中,諸如變頻器和伺服驅(qū)動(dòng)器等工業(yè)應(yīng)用,乃至CD播放器等眾多消費(fèi)電子產(chǎn)品,都需要保存最近的用戶設(shè)置,在下次上電后加載使用。如果使用MCU內(nèi)置Flash,一般擦寫(xiě)次數(shù)限制在10k次,無(wú)法滿足壽命和耐久性要求,所以只能通過(guò)外置EEPROM實(shí)現(xiàn)。

在嵌入式系統(tǒng)中,諸如變頻器和伺服驅(qū)動(dòng)器等工業(yè)應(yīng)用,乃至CD播放器等眾多消費(fèi)電子產(chǎn)品,都需要保存最近的用戶設(shè)置,在下次上電后加載使用。如果使用MCU內(nèi)置Flash,一般擦寫(xiě)次數(shù)限制在10k次,無(wú)法滿足壽命和耐久性要求,所以只能通過(guò)外置EEPROM實(shí)現(xiàn)。

TI新推出的MSPM0系列MCU支持使用Flash模擬EEPROM,在小容量存儲(chǔ)需求的場(chǎng)合能節(jié)省外部EEPROM芯片,實(shí)現(xiàn)成本控制。MSPM0系列MCU的Flash容量覆蓋16KB到128KB,其中低32KB的Flash區(qū)域支持10萬(wàn)次擦寫(xiě),而剩余區(qū)域支持1萬(wàn)次擦寫(xiě),如下圖MSPM0G3507規(guī)格書(shū)所示。所以,在使用Flash模擬EEPROM時(shí),應(yīng)盡可能選擇低32KB區(qū)域。

當(dāng)使用<=32KB Flash容量產(chǎn)品時(shí),這時(shí)芯片的全部Flash區(qū)域都支持10萬(wàn)次擦寫(xiě),只需要根據(jù)用戶代碼量以及存儲(chǔ)需求確定模擬EEPROM的容量大小,然后放置到Flash的尾部地址即可。

當(dāng)使用>32KB Flash容量產(chǎn)品時(shí),這時(shí)用戶代碼占用空間可能較大,如果直接選取低32KB尾部地址作為模擬EEPROM,有可能與用戶代碼地址相沖突而造成誤擦寫(xiě),如下圖所示:

這時(shí)則需要在代碼中向編譯器聲明EEPROM的位置及長(zhǎng)度,使其安排Code及Data時(shí)避開(kāi)用戶設(shè)置的EEPROM區(qū)域。

在CCS IDE with TI Clang中,需要做兩步修改:

1. 在.cmd文件中添加Sections的聲明如下圖:

其中EEPROM 為自定義的section名字,0x00001000為自定義的開(kāi)始地址。

2. 在需要使用的.c文件中(如c)添加數(shù)組定義如下:

Fullscreen

1

const uint32_t EEPROM[4096] __attribute((used)) __attribute((section(".EEPROM")))={0};

以上語(yǔ)句定義了一個(gè)名為EEPROM、類型為uint32,長(zhǎng)度為4096的const數(shù)組,并且存放在上面開(kāi)辟的.EEPROM Sections,其中添加__attribute((used))可以避免編譯器把該數(shù)組優(yōu)化掉。

完成以上修改后,編譯器會(huì)避開(kāi)自定義的EEPROM SECTIONS,代碼只會(huì)存放于.text SECTIONS,這樣修改后就可以保證EEPROM地址和長(zhǎng)度都落在期望的Lower 32KB區(qū)域且不會(huì)與代碼段沖突。

添加修改并編譯后,查看Memory Allocation如下圖,可見(jiàn)EEPROM段與.text代碼段分開(kāi),所定義的EEPROM數(shù)組也成功初始化。

最后就可以進(jìn)行Flash的Erase/Program操作,具體可參考drivelib中的flashctl_program_with_ecc等例程,這里不再贅述。

本文針對(duì)MSPM0系列MCU使用Flash模擬EEPROM時(shí)需要在Lower 32KB開(kāi)辟EEPROM專用區(qū)域的工況,提出使用SECTIONS分配的方式解決與EEPROM和Code可能重合的問(wèn)題,配合SDK的Flash操作,可以很容易實(shí)現(xiàn)EEPROM在任意Flash區(qū)域的開(kāi)辟。

使用MCU(微控制器單元)內(nèi)置Flash存儲(chǔ)器具有多方面的優(yōu)勢(shì),主要包括以下幾點(diǎn):

1. 緊湊性和集成度

· 高度集成:內(nèi)置Flash存儲(chǔ)器直接集成在MCU內(nèi)部,與語(yǔ)音處理電路或其他核心電路緊密結(jié)合,構(gòu)成完整的系統(tǒng)。這種設(shè)計(jì)減少了外部電路的復(fù)雜性和所需元件數(shù)量,從而減小了整體系統(tǒng)的體積。

· 降低成本:由于減少了外部元件和連接的需求,使用內(nèi)置Flash的MCU在制造成本上通常更低。

2. 性能與效率

· 快速讀取和寫(xiě)入:內(nèi)置Flash通常能夠?qū)崿F(xiàn)數(shù)據(jù)的快速讀取和寫(xiě)入,這有助于提升系統(tǒng)的整體性能和響應(yīng)速度。

· 優(yōu)化程序執(zhí)行:對(duì)于支持XIP(eXecute In Place,芯片內(nèi)執(zhí)行)的Flash,應(yīng)用程序可以直接在Flash內(nèi)存內(nèi)運(yùn)行,無(wú)需先拷貝到RAM中,從而減少了程序啟動(dòng)時(shí)間和內(nèi)存占用。

3. 可靠性與穩(wěn)定性

· 減少外部干擾:內(nèi)置Flash減少了與外部電路的連接,降低了因外部電磁干擾或其他環(huán)境因素導(dǎo)致的數(shù)據(jù)錯(cuò)誤或損壞的風(fēng)險(xiǎn)。

· 保護(hù)機(jī)制:許多MCU內(nèi)置的Flash存儲(chǔ)器都配備了各種保護(hù)機(jī)制,如寫(xiě)保護(hù)、擦除保護(hù)等,以確保數(shù)據(jù)的安全性和完整性。

4. 應(yīng)用靈活性

· 多用途存儲(chǔ):除了存儲(chǔ)程序代碼外,內(nèi)置Flash的剩余空間還可以被用作數(shù)據(jù)存儲(chǔ)器,如模擬EEPROM(電可擦可編程只讀存儲(chǔ)器)的功能,用于存儲(chǔ)重要數(shù)據(jù)和關(guān)鍵記錄。

· 升級(jí)與維護(hù):部分MCU支持通過(guò)OTA(Over-The-Air,空中下載技術(shù))進(jìn)行固件升級(jí),內(nèi)置Flash為這一功能提供了便利的存儲(chǔ)空間。

5. 功耗優(yōu)勢(shì)

· 低功耗設(shè)計(jì):內(nèi)置Flash通常具有較低的功耗特性,有助于延長(zhǎng)MCU系統(tǒng)的電池壽命或降低整體能耗。

總結(jié)

綜上所述,使用MCU內(nèi)置Flash存儲(chǔ)器在緊湊性、集成度、性能與效率、可靠性與穩(wěn)定性、應(yīng)用靈活性以及功耗方面均表現(xiàn)出顯著優(yōu)勢(shì)。這些優(yōu)勢(shì)使得內(nèi)置Flash成為許多嵌入式系統(tǒng)和微控制器應(yīng)用的理想選擇。然而,需要注意的是,內(nèi)置Flash的容量可能相對(duì)較小,無(wú)法滿足所有應(yīng)用場(chǎng)景的需求。因此,在選擇使用內(nèi)置Flash還是外掛Flash時(shí),需要根據(jù)具體的應(yīng)用場(chǎng)景和需求進(jìn)行權(quán)衡。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉