999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于IAR EW430開發(fā)環(huán)境的FRAM應(yīng)用研究

2017-12-06 05:30:26張侃侃
電子測(cè)試 2017年21期

張侃侃

(中國電建集團(tuán)中南勘測(cè)設(shè)計(jì)研究院有限公司,湖南長(zhǎng)沙,410014)

基于IAR EW430開發(fā)環(huán)境的FRAM應(yīng)用研究

張侃侃

(中國電建集團(tuán)中南勘測(cè)設(shè)計(jì)研究院有限公司,湖南長(zhǎng)沙,410014)

本文基于TI的MSP-EXP430FR5739 LaunchPad 硬件評(píng)估套件和 IAR EW430 IDE開發(fā)環(huán)境,研究了MSP430FR5739型MCU的FRAM分區(qū)配置方法,分別采用程序代碼關(guān)鍵字聲明法及面對(duì)復(fù)雜應(yīng)用滿足更高定制要求時(shí)修改XLINK配置文件法共兩種方法實(shí)現(xiàn)了分區(qū)調(diào)配,編寫了相應(yīng)測(cè)試程序進(jìn)行實(shí)驗(yàn),驗(yàn)證結(jié)果達(dá)到了預(yù)期。同時(shí)對(duì)實(shí)際應(yīng)用中FRAM分區(qū)后應(yīng)進(jìn)行MPU保護(hù)做出闡述,本文提出的方法可用于MSP430FR系列其他型號(hào)MCU器件的FRAM調(diào)配。

FRAM MCU;地址空間;內(nèi)存調(diào)配

0 引言

MSP430是TI(美國德州儀器)推出的超低功耗MCU(微控制器:Microcontroller Unit),其中MSP430FR系列是TI把最新的半導(dǎo)體FRAM技術(shù)應(yīng)用在MCU上。其中,鐵電隨機(jī)存儲(chǔ)器FRAM(Ferroelectric Random Access Memory)是最新的非易失性存儲(chǔ)器技術(shù),它具有寫入次數(shù)幾乎無限(高達(dá)100萬億次),掉電不易失、存取時(shí)間對(duì)稱、讀寫速度快,耐受度高,功耗低等一系列優(yōu)勢(shì)[1],特別是在MCU應(yīng)用中允許開發(fā)人員通過軟件動(dòng)態(tài)調(diào)配數(shù)據(jù)和程序存儲(chǔ)分區(qū)大小,真正實(shí)現(xiàn)了二者的統(tǒng)一,具有很強(qiáng)的技術(shù)優(yōu)勢(shì),因而在自動(dòng)控制、儀器儀表嵌入式設(shè)計(jì)領(lǐng)域中受到越來越多的關(guān)注。

本文基于IAR EW430的環(huán)境,對(duì)MSP430FR5739型MCU的FRAM分區(qū)配置方法進(jìn)行研究,提出了兩種不同的方法來實(shí)現(xiàn)分區(qū),并通過測(cè)試程序驗(yàn)證了其可行性。對(duì)于其他型號(hào)MCU器件的FRAM調(diào)配,可參考本文中的方法。

1 一體化FRAM型MCU

嵌入式微控制器MCU的性價(jià)比一直是技術(shù)人員在選型時(shí)需要著重考慮的問題,其速度快功耗低與經(jīng)濟(jì)性之間的矛盾向來不容易解決。FRAM型一體化MCU的出現(xiàn)很好地解決了這一難題,它解決了傳統(tǒng)SRAM+Flash架構(gòu)的MCU的最主要兩方面的性價(jià)比問題。

第一,在進(jìn)行一些數(shù)學(xué)運(yùn)算的應(yīng)用中,需較大的RAM空間來存放數(shù)據(jù)樣本,未必要用到大容量的用于存儲(chǔ)程序的Flash,如數(shù)據(jù)采集中的標(biāo)準(zhǔn)差運(yùn)算。但在MCU器件選型手冊(cè)中,一般大容量的片內(nèi)RAM都配備了更大容量的片內(nèi)Flash,相對(duì)應(yīng)型號(hào)器件的價(jià)位也較高,因此在此方面的應(yīng)用性價(jià)比很低。而一體化FRAM型MCU可以根據(jù)應(yīng)用程序的需要?jiǎng)討B(tài)劃分?jǐn)?shù)據(jù)和代碼存儲(chǔ)區(qū)空間,可做到“按需調(diào)配”,如圖1所示。

圖1 支持“按需使用滑動(dòng)條分割”數(shù)據(jù)和代碼存儲(chǔ)空間

第二,幾近無限的寫入次數(shù),并且數(shù)據(jù)不易失。在一些成本控制嚴(yán)格的應(yīng)用中,可以省去后備電池或者EEPROM。

綜上所述,嵌入式SOC結(jié)合FRAM形成的一體化MCU具有很強(qiáng)的技術(shù)優(yōu)勢(shì)。本文主要在IAR EW430 開發(fā)環(huán)境下,基于TI的MSP-EXP430FR5739 LaunchPad 硬件評(píng)估套件,對(duì)型號(hào)為MSP-430FR5739的MCU的FRAM進(jìn)行分區(qū)配置,同時(shí)編寫了測(cè)試程序進(jìn)行實(shí)驗(yàn)驗(yàn)證,對(duì)于其他型號(hào)MCU器件的FRAM調(diào)配,可參考本文進(jìn)行。

根據(jù)MSP430FR5739的器件手冊(cè)描述[3],圖2為芯片的內(nèi)存組織結(jié)構(gòu)圖。

從圖2中可以看出,MSP430FR5739器件片上有1K的SRAM(地址為:0x1C00~0x1FFF),15.5K的FRAM(地址為:0xC200~0xFFFF),其中 Main Memory 的地址為 :0xC200~0xFF7F。本文對(duì)數(shù)據(jù)和程序存儲(chǔ)空間的調(diào)配劃分,指的就是對(duì)Main Memory進(jìn)行配置。在下面的內(nèi)容中將詳細(xì)介紹配置方法。

圖2 MSP430FR5739內(nèi)存組織結(jié)構(gòu)圖

2 FRAM配置實(shí)現(xiàn)

本節(jié)對(duì)FRAM進(jìn)行重新配置是基于IAR EW430開發(fā)環(huán)境進(jìn)行的,IAR EW430默認(rèn)的鏈接器配置文件是*.xcl(XLINK Configuration File),即IAR的XLINK配置文件,其后綴名為.xcl。該文件位于軟件安裝目錄下“430configlinker”文件夾中。每個(gè)型號(hào)的器件對(duì)應(yīng)唯一的XLINK配置文件,其中,MSP430FR5739對(duì)應(yīng)的配置文件為lnk430fr5739.xcl。

在IAR默認(rèn)的lnk430fr5739.xcl中,可以看到如下的命令行:

// RAM memory

-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=1C00-1FFF

-Z(DATA)CODE_I

-Z(DATA)DATA20_I,DATA20_Z,DATA20_N

-Z(DATA)CSTACK+_STACK_SIZE#

// FRAM memory

// Read/write data in FRAM

-Z(CONST)DATA16_P,DATA20_P=C200-FF7F

-Z(DATA)DATA16_HEAP+_DATA16_HEAP_SIZE,DATA20_HEAP+_DATA20_HEAP_SIZE

在上面的代碼中,通過對(duì)不同字段進(jìn)行預(yù)配置,可以告知鏈接器對(duì)不同類型的變量(字段)按照預(yù)配置地址參數(shù)進(jìn)行空間分配。對(duì)FRAM的劃分從根本上都和XLINK配置文件有關(guān),下文中介紹兩種方法來實(shí)現(xiàn)對(duì)FRAM的分區(qū)調(diào)配。

第一種方法是在不改變默認(rèn)配置文件的前提下,在程序代碼中定義前綴為“__persistent”的變量數(shù)組來將其定義在FRAM中。在上述命令行中可以看到,默認(rèn)配置文件lnk430fr5739.xcl中已經(jīng)指定了“Z(CONST)DATA16_P,DATA20_P”分配在FRAM區(qū)域的0xC200~0xFF7F地址空間,因此,我們只要在程序代碼中定義變量或數(shù)據(jù)塊時(shí),采用關(guān)鍵字“__persistent”進(jìn)行聲明,編譯鏈接器會(huì)自動(dòng)將其分配到FRAM區(qū)域0xC200~0xFF7F地址空間中。

為了測(cè)試該功能,我們?cè)贛SP-EXP430FR5739 LaunchPad的測(cè)試程序上添加“zkTestFram.c”模塊,使用關(guān)鍵字“__persistent”定義了一個(gè)“FRAM_LEN = 2048”長(zhǎng)度測(cè)試數(shù)組,聲明代碼如下:

__persistent volatile unsigned char testFram[FRAM_LEN];

采用framInit()對(duì)數(shù)據(jù)塊進(jìn)行初始化,代碼如下:

void framInit( void )

{

for(int i = 0; i < sizeof(testFram); ++i)

{ testFram[i] = (unsigned char)i; }

return;

}

程序下載后,進(jìn)入調(diào)試界面,可以看到testFram [FRAM_LEN]數(shù)組被編譯器分配的首地址為0xC200,尾地址為0xC9FF,共2048個(gè)數(shù)據(jù)存儲(chǔ)單元。如圖3所示,圖3(a)是變量監(jiān)視窗口testFram的首地址0xC200,;圖3(b)是MCU相對(duì)應(yīng)FRAM區(qū)的內(nèi)存內(nèi)容;圖3(c)和圖3(d) 所示是testFram的尾地址0xC9FF及相對(duì)應(yīng)FRAM區(qū)的內(nèi)存內(nèi)容。并且,測(cè)試程序中的其他變量或數(shù)據(jù)被編譯器分配在SARM地址“0x1C00~0x1FFF”空間,如圖4所示。

圖3 testFram數(shù)組在FRAM區(qū)的首尾、內(nèi)存地址

圖4 程序中其他變量或數(shù)據(jù)被分配在SRAM地址

第二種方法,根據(jù)用戶應(yīng)用程序大小,自定義XLINK配置文件, 通過直接在lnk430fr5739.xcl配置文件中重新劃分變量和其地址空間來實(shí)現(xiàn)。這樣有利于后續(xù)的內(nèi)存分區(qū)保護(hù)。在進(jìn)行重新分配時(shí),一般按照如下原則進(jìn)行。

(1)臨時(shí)變量、堆棧區(qū)定義到SRAM;

(2)快速存取且需掉電保存的變量定義到FRAM。

根據(jù)上述原則,我們修改默認(rèn)的lnk430fr5739.xcl配置文件,修改后的文件內(nèi)容如圖5(b)所示。圖5(a)為修改前的原始文件內(nèi)容。

圖5 XLINK配置文件修改前后對(duì)比圖

通過修改配置文件,我們對(duì)不同字段進(jìn)行了地址空間預(yù)分配,其中堆棧區(qū)位于SRAM地址空間(1C00-1FFF),采用關(guān)鍵字__no_init聲明的變量位于FRAM區(qū)1KB長(zhǎng)度的D200-D5FF地址空間,其他的變量及數(shù)據(jù)塊位于FRAM區(qū)4KB長(zhǎng)度的C200-D1FF地址空間,程序代碼空間位于FRAM區(qū)約10K長(zhǎng)度D600-FF7F的地址空間。測(cè)試程序,如下:

#define FRAM_LEN 2048

extern volatile unsigned char testFram[FRAM_LEN];

extern void fRAMInit( void );

extern __no_init volatile unsigned char testFram2[128];

extern void fRAMInit2( void );

程序下載后進(jìn)入調(diào)試模式,如圖6(a)和圖6(b)可以看出testFram [FRAM_LEN]數(shù)組被編譯器分配的首地址為0xC222,尾地址為0xCA21,共2048個(gè)FARM數(shù)據(jù)存儲(chǔ)單元;如圖6(c)和圖6(d)可以看出testFram2 [128]數(shù)組被編譯器分配的首地址為0xD200,尾地址為0xD27F,共128個(gè)FARM數(shù)據(jù)存儲(chǔ)單元。

圖6 testFram[2048]及testFram2 [128]數(shù)組在FRAM區(qū)的首尾、內(nèi)存地址

綜上所述,利用IAR EW430的變量查看窗口及MCU的FRAM區(qū)的內(nèi)存,可以直觀呈現(xiàn)我們所定義的數(shù)據(jù)塊地址及內(nèi)容,和我們的預(yù)期相符,驗(yàn)證了這兩種內(nèi)存調(diào)配方法是切實(shí)可行的。

在上面的測(cè)試實(shí)驗(yàn)中,由于數(shù)據(jù)和程序代碼都在統(tǒng)一地址空間,并且FRAM易擦寫,為了確保應(yīng)用系統(tǒng)的最大魯棒性和數(shù)據(jù)完整性,應(yīng)為這些分區(qū)啟用MPU功能,有助于在程序故障(軟件崩潰),緩沖區(qū)溢出,指針損壞和其他類型的異常情況下,防止對(duì)存放FRAM區(qū)的數(shù)據(jù)和程序代碼意外的訪問修改[4]。

TI提供了MPU保護(hù)機(jī)制,可以對(duì)MCU的FRAM分三段保護(hù)。在上文第二種方法中,F(xiàn)RAM區(qū)被分為三段,我們可以在IAR EW430的器件啟動(dòng)加載過程“__low_level_init.c”文件中添加MPU相關(guān)的代碼進(jìn)行保護(hù)。如圖7所示為FRAM區(qū)的分段地址。

圖7 FRAM區(qū)分段地址

對(duì)應(yīng)的MPU保護(hù)單元配置代碼如下:

MPUCTL0 = MPUPW;

// Write PWD to access MPU registers

MPUSEG=0x0B09;

// 把Main memory 分成三段B1=0xD200, B2=0xD600

MPUSAM=(MPUSEG1WE | MPUSEG1RE | MPUSEG2WE |MPUSEG-2RE | MPUSEG3RE | MPUSEG3XE | MPUSEG1VS);

MPUCTL0=MPUPW | MPUENA; // Enable MPU protection

基于上述MPU配置代碼,如產(chǎn)生非法訪問,可以在對(duì)應(yīng)的中斷程序中進(jìn)行相應(yīng)的應(yīng)急處理。

除此之外,如果對(duì)MPU定制要求不高,也可以通過在IAR工程Project Options—> General Options—> MPU/IPE選項(xiàng)卡中選擇“Enable MPU”啟用MPU保護(hù)功能,如圖8所示。

3 總結(jié)

本文以MSP430FR5739器件為例,在IAR EW430 IDE環(huán)境下,通過使用兩種方法對(duì)FRAM進(jìn)行分區(qū)配置,為了滿足實(shí)際應(yīng)用的需求,在程序中加入了MPU分段權(quán)限保護(hù)單元,以防程序受干擾“跑飛”而導(dǎo)致的誤操作。同時(shí),本文編寫測(cè)試程序進(jìn)行了實(shí)驗(yàn)驗(yàn)證,證明配置方法可行,可滿足大部分的應(yīng)用情況。

圖8 IAR EW430中啟用MPU內(nèi)存保護(hù)

[1]鄧穎.MSP430FRAM鐵電單片機(jī)原理及C程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2012.

[2]MSP430 FRAM Technology-How To and Best Practices(SLAA628).

[3]MSP430FR573x Mixed-Signal Microcontrollers Datasheet(Rev. K) (SLAS639K).

[4]MSP430FR57xx Family User’s Guide(SLAU272C).

[5]胡大可.MSP430 系列FLASH型超低功耗[5]16位單片機(jī)[M].北京:北京航空航天大學(xué)出版社,2001.

Research on Application of FRAM Based on IAR EW430 Development Environment

Zhang Kankan
(Power China ZhongNan Engineering Corporation Limited, ChangSha Hunan, 410014)

Based on TI’s MSP-EXP430FR5739 LaunchPad hardware evaluation kit and IAR EW430 IDE development environment, this paper studies the FRAM partition allocation method of MSP430FR5739 MCU, where two methods are introduced to achieve the partition deployment. This first one is keyword declaration method in program code. Another one is the modification method of XLINK configuration file to meet the higher customized requirements in complex application. Experiments are implemented to verify the two methods. At the same time, it is necessary to make MPU protection after FRAM partitioning in practical application. The proposed method can also be used for FRAM deployment in other types MCU devices of MSP430FR series.

FRAM;MCU; address space;memory provisioning

主站蜘蛛池模板: 毛片免费高清免费| 青青草国产精品久久久久| 亚洲视频黄| 亚洲综合色吧| 亚洲人成影视在线观看| 综合色亚洲| 亚洲国产成人麻豆精品| 天天操精品| 一本大道视频精品人妻| 国产精品极品美女自在线网站| 在线观看国产精美视频| 欧美在线视频a| 久久亚洲黄色视频| 五月婷婷亚洲综合| 色妞www精品视频一级下载| 国产极品美女在线| 国产91特黄特色A级毛片| 欧美精品黑人粗大| 成人免费网站久久久| 亚洲最猛黑人xxxx黑人猛交| 9久久伊人精品综合| 国产www网站| 人妻无码中文字幕第一区| 国产91熟女高潮一区二区| 国产国模一区二区三区四区| 国产免费人成视频网| 久久精品一品道久久精品| 国产午夜一级毛片| 在线观看无码a∨| 国产免费黄| 国产素人在线| 久久精品人人做人人爽电影蜜月| 日日摸夜夜爽无码| 免费A级毛片无码免费视频| 国产91精选在线观看| 亚洲国产成人久久精品软件| 色婷婷色丁香| 日韩AV手机在线观看蜜芽| 欧美精品aⅴ在线视频| 2022精品国偷自产免费观看| 97国产一区二区精品久久呦| 国产日韩欧美中文| av一区二区三区高清久久| 99在线视频免费观看| 91精品国产情侣高潮露脸| 97人人模人人爽人人喊小说| 麻豆AV网站免费进入| 久久a毛片| 99人妻碰碰碰久久久久禁片| 国产精品成| 欧美日韩免费| 无码人中文字幕| 国产日产欧美精品| 无码国内精品人妻少妇蜜桃视频| 色网站在线免费观看| 91成人精品视频| 亚洲一区波多野结衣二区三区| 男女男精品视频| 91久久夜色精品国产网站| 婷婷亚洲综合五月天在线| 精品国产一二三区| 欧美成人精品高清在线下载| 精品国产免费人成在线观看| 黄网站欧美内射| 色婷婷色丁香| 国产区免费| 久久人妻xunleige无码| 亚洲无码视频图片| 亚洲乱伦视频| 欧美成人亚洲综合精品欧美激情| 欧美性猛交xxxx乱大交极品| 国产精品亚洲一区二区在线观看| 午夜视频在线观看区二区| www亚洲精品| 国产综合日韩另类一区二区| 99久久性生片| 91原创视频在线| 国内毛片视频| 韩日无码在线不卡| 不卡午夜视频| 精品国产亚洲人成在线| 国产第一页第二页|