色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-01-10 10:05 ? 次閱讀

引言

CAN Bus(Controller Area Network),控制器區域網,起源于80年代,由國際標準化組織(ISO)所發布,因為利用雙線差動(two-wired differential),使其即使在電器條件惡劣環境下,也可正常運作的一種傳輸總線。又因雙線溝通的特性,大幅縮減了其應用線路的使用量,也降低傳統線路復雜易造成錯誤的發生機會。

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

圖1. Harvard結構

每個MAXQ器件采用以下存儲器類型:

1.閃存

2.SRAM

3.固定用途ROM

MAXQ器件也可從閃存、固定用途ROM或SRAM執行程序代碼。從某個存儲器段執行程序代碼時,其它兩個存儲器段可作為數據存儲器(更多詳細信息,請參閱從閃存執行程序和執行固定用途ROM函數部分)。這是因為程序和數據存儲器總線不能同時存取同一存儲器段。

有人可能認為采用Harvard結構的MAXQ微控制器也不能在非易失閃存中儲存數據。然而,MAXQ器件內嵌固定用途ROM函數,允許讀、寫非易失閃存數據。

從閃存執行程序

MAXQ器件中,從閃存執行應用程序時,數據存儲器為SRAM (讀和寫)和固定用途ROM (只讀)。從閃存執行代碼時,數據存儲器映射請參見表1,存儲器映射參見圖2.

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

SRAM數據存儲器在存儲器映射中位于地址0x0000至0x07FF (字節尋址模式下)或地址0x0000至0x03FF (字尋址模式下)。

固定用途ROM在存儲器映射中位于地址0x8000至0x9FFFh (字節模式)或地址0x8000至0x8FFF (字尋址模式下)。

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

圖2. 從閃存執行應用代碼時的存儲器映射

執行固定用途ROM函數

執行固定用途ROM函數時,數據存儲器為SRAM (讀和寫)和閃存(讀和寫)。從閃存執行應用程序且變量或數據對象位于閃存時,可通過固定用途ROM函數讀或寫這些變量或數據對象。通過跳轉至執行固定用途ROM函數,即可將閃存作為數據進行存取。從固定用途ROM執行代碼時,數據存儲器映射請參見表2,存儲器映射參見圖3.

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

1.SRAM數據存儲器在存儲器映射中位于地址0x0000至0x07FF (字節尋址模式下)或地址0x0000至0x03FF (字尋址模式下)。

2.字節尋址模式下,CDA0 = 0時,閃存的低半部分在存儲器映射中位于地址0x8000至0xFFFFh;CDA0 = 1時,閃存的高半部分在存儲器映射中位于地址0x8000至0xFFFFh.字尋址模式下,閃存在存儲器映射中位于地址0x8000至0xFFFF.

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

圖3. 執行固定用途ROM函數時的存儲器映射

閃存和SRAM中的存儲器分配

IAR嵌入式工作臺IDE用于編程基于MAXQ核的微控制器。IAR? C編譯器(用于MAXQ微控制器)提供用于定義閃存或SRAM位置中數據對象或變量的選項。編譯器具有特殊關鍵詞pragma location和pragma required;通過使用關鍵詞,可將存儲器分配給絕對地址的數據對象或變量。必須用IAR關鍵詞__no_init或const (標準C關鍵詞)聲明這些變量或數據對象。請參見下文中__no_init、const、pragma location和pragma required的關鍵詞說明。

關鍵詞說明

pragma location

#pragma location用于定義絕對地址的單個全局或靜態變量或數據對象。變量或數據對象必須聲明為__no_init或const.這對于必須位于固定地址的個體數據對象非常有用,例如變量、帶有外部或內部接口的數據對象或增加的硬件表項。

pragma required

#pragma required確保鏈接輸出中包括某個符號所需的另一個符號。該指令必須放在緊鄰第二個符號的前邊。如果符號在應用中不可見,使用該指令。例如,如果僅通過某個變量所在的段對其進行間接引用,必須使用#pragma required.

__no_init

正常情況下,應用程序啟動時,IAR運行時環境將全部全局和靜態變量初始化為0.IAR C編譯器支持聲明不初始化的變量,使用__no_init類型限定符。聲明為__no_init的變量在啟動時被禁止。不可能為__no_init對象賦予初始值。

例如:__no_init char MaximChar @ 0x0200;

本例中,聲明為__no_init的變量被放在默認數據存儲器(SRAM)的一個絕對地址。

const

const關鍵詞意味著對象為只讀。這類限定符用于表示直接或通過指針存取的數據對象,不可寫。當const隨關鍵詞#pragma location和#pragma required一起使用時,IAR分配#pragma location定義的位置的存儲器。這對于配置從外部接口進行存取的參數非常有用。這樣的閃存數據只能由固定用途ROM函數讀或寫。

IAR默認存儲器模型中,不可存取絕對地址的常量。利用選項Place constants in CODE (在IAR Project Option General Option Target window)使其可存取,如圖4所示。

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

圖4. IAR項目選項窗口

例1

const int FLASH_DATA0;

//FLASH_DATA0 is initialized to 0x0000 and linker will allocate memory address.

例2

#pragma location = 0xA000

const int FLASH_DATA1 = 0x1234;

#pragma required = FLASH_DATA1

本例中,存儲器分配為閃存地址0xA000,初始化為0x1234.

例3

#pragma location = 0xA002

__no_init const int FLASH_DATA2 //Memory is allocated at the address 0xA002 (byte address)

#pragma required = FLASH_DATA2

本例中,存儲器分配為閃存地址0xA002,不初始化。

上例中,有三個聲明為常量的對象,第一個初始化為0,第二個初始化為規定值,第三個不初始化。全部三個變量均在閃存中。

關鍵詞舉例

例1

下例中,FLASH_CONFIG為FlashMemoryMap結構變量。利用關鍵詞#pragma location和#pragma required顯式定義該結構變量的開始地址為"CONFIG_FLASH" (0xEE00)。

//Structure for Memory Map

typedef struct

{

unsigned char SYSTEM_CONFIG; //Address 0x00

unsigned char TEMP_CONFIG; //Address 0x01

unsigned char SLAVE_ADDR_A0; //Address 0x02

unsigned char NULL_A0_3; //Address 0x03

signed int INTERNAL_TEMP_THRES; //Address 0x04-5

signed int EXTERNAL_TEMP_THRES; //Address 0x06-7

signed int DS75_TEMP_THRES; //Address 0x08-9

}FlashMemoryMap;

#define CONFIG_FLASH = 0xEE00 //Flash Address

#pragma location = CONFIG_FLASH

const FlashMemoryMap FLASH_CONFIG = //Initialize data objects variable

{

0x00, // SYSTEM_CONFIG

0xFE, // TEMP_CONFIG

0xA0, // SLAVE_ADDR_A0

0x00, // NULL_A0_3

0x3200, // INTERNAL_TEMP_THRES

0x4200, // EXTERNAL_TEMP_THRES

0x5200 // DS75_TEMP_THRES

};

#pragma required = FLASH_CONFIG

為了在IAR嵌入式工作臺IDE中查看存儲器分配和初始化,進入View Memory.在顯示的編輯框中,在Go to框中鍵入0xEE00,然后從下拉框中選擇Code,如圖5所示。

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

圖5. 存儲器分配

例2

下例中,在地址0x0116創建DATA SRAMMemoryMap結構變量(DATA_MONITOR),該變量將被初始化(使用__no_init類型限定符)。

typedef struct

{

//Read Only

signed int INTERNAL_TEMP; //Address = OFFSET + 0x00-1

signed int EXTERNAL_TEMP; //Address = OFFSET + 0x02-3

signed int DS75_TEMP; //Address = OFFSET + 0x04-5

signed int VOLTAGE0; //Address = OFFSET + 0x06-7

signed int VOLTAGE1; //Address = OFFSET + 0x08-9

}SRAMMemoryMap;

#define CONFIG_SRAM 0x0116 //SRAM Address 0x0116

#pragma location = CONFIG_SRAM

__no_init SRAMMemoryMap DATA_MONITOR;

#pragma required = DATA_MONITOR

在IAR中調試時,為了查看該結構變量的內容,選擇變量,點擊右鍵,然后選擇Add to Watch選項,參見圖6.

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

圖6. IAR查看窗口

Intel? HEX文件中查看分配的存儲器

可在IAR嵌入式工作臺生成的Intel HEX文件中查看在代碼存儲器中為數據對象分配的存儲器。請參見圖7中的高亮部分。本例中,為數據對象分配的存儲器為閃存中0xEE00至0xEE15.

如何利用IAR嵌入式工具分配和存取MAXQ微控制器的存儲數據

圖7. 釋放模式下IAR生成的HEX文件

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7566

    瀏覽量

    151605
  • 嵌入式
    +關注

    關注

    5086

    文章

    19143

    瀏覽量

    306045
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2756

    瀏覽量

    463893
收藏 人收藏

    評論

    相關推薦

    如何為嵌入式應用選擇合適的微控制器

    。如果套件不存在那么特定部件很可能不是一個好的選擇,他們應該回過頭幾步,發現更好的部分。目前大多數套件的價格低于100美元。支付更多費用太多了。另一部分可能是更好的選擇。最后,我們可以得出結論,在為嵌入式應用選擇微控制器時需要考慮許多功能。包括硬件,
    發表于 12-21 17:58

    嵌入式相變存儲器在汽車微控制器中有什么優點?

    汽車微控制器正在挑戰嵌入式非易失性存儲器(e-NVM)的極限,主要體現在存儲單元面積、訪問時間和耐熱性能三個方面。在許多細分市場(例如:網關、車身
    發表于 08-13 06:47

    基于微控制器的現代嵌入式系統

    通常是基于微控制器(如含集成內存和/或外設接口的中央處理單元)的,但在較復雜的系統中普通微處理器使用外部存儲芯片和外設接口電路。與個人計算機這樣的通用計算機系統不同,嵌入式系統通常執行的是帶有特定要求...
    發表于 07-30 07:49

    嵌入式平臺上板載的微控制器是什么

    1 填空題嵌入式競賽平臺上板載的微控制器是: 3 級流水線,具有 128 Kbytes的Flash存儲空間。(請在第一、二空格處填寫10進制數值)解析:STM32G431RBT6采用采用
    發表于 11-08 06:09

    嵌入式編程和微控制器應用

    歡迎進入嵌入式編程和微控制器應用的世界!使用日益流行且價格適宜的AtmelAVR嵌入式控制器作為學習平臺。本書是目前可以獲得的最佳書籍之一。對于初學者,本書將會是極好的選擇。隨著
    發表于 09-20 07:52

    時間觸發嵌入式系統設計模式(使用8051微控制器開發可靠應用

    時間觸發嵌入式系統設計模式:使用8051微控制器開發可靠應用主要關注使用軟件模式迅速地開發時間觸發嵌入式系統的軟件,涉及的系統全部基于8051系列微控制器。時間觸發技術
    發表于 10-28 23:20 ?688次下載
    時間觸發<b class='flag-5'>嵌入式</b>系統設計模式(使用8051<b class='flag-5'>微控制器</b>開發可靠應用

    采用MAXQ610評估套件(EV kit)和IAR嵌入式工作

    采用MAXQ610評估套件(EV kit)和IAR嵌入式工作臺進行設計 摘要:應用筆記介紹怎樣面向MAXQ610低功耗RISC微控制器開發
    發表于 01-13 08:08 ?1044次閱讀
    采用<b class='flag-5'>MAXQ</b>610評估套件(EV kit)和<b class='flag-5'>IAR</b><b class='flag-5'>嵌入式</b>工作

    采用MAXQ610評估套件(EV kit)和IAR嵌入式工作

    摘要:應用筆記介紹怎樣面向MAXQ610低功耗RISC微控制器開發、構建并調試應用程序。文章使用了IAR™系統公司提供的IAR Embedded Workbench®
    發表于 04-23 15:50 ?1082次閱讀
    采用<b class='flag-5'>MAXQ</b>610評估套件(EV kit)和<b class='flag-5'>IAR</b><b class='flag-5'>嵌入式</b>工作

    MAXQ微控制器中JTAG接口引腳的復用

    摘要:通常在嵌入式應用中,微控制器的每個端口引腳都是必需的,沒有多余引腳。大部分MAXQ®微控制器帶有可重新進行寫操作的內部程序存儲器
    發表于 04-23 16:28 ?963次閱讀

    利用MAXQ1103微控制器產生RSA密鑰

    利用MAXQ1103微控制器產生RSA密鑰 摘要:Maxim的RSA密鑰生成庫提供了一個簡單易用的接口,利用MAXQ1103
    發表于 04-27 16:12 ?1004次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>MAXQ</b>1103<b class='flag-5'>微控制器</b>產生RSA密鑰

    MAXQ構架上閃存和SRAM存儲器分配

    本應用筆記介紹如何利用IAR嵌入式工作臺工具分配存取MAX
    發表于 06-21 14:44 ?2540次閱讀
    <b class='flag-5'>MAXQ</b>構架上閃存和SRAM<b class='flag-5'>存儲器</b>的<b class='flag-5'>分配</b>

    MAXQ1061加密控制器保護存儲安全

    MAXQ1061是用于嵌入式設備的DeepCover?加密控制器。DeepCover嵌入式安全方案采用多重先進的物理安全機制保護敏感數據,提
    的頭像 發表于 10-09 05:00 ?3785次閱讀

    使用IAR編譯MAXQ微控制器分配閃存和SRAM存儲器

    中,以訪問存儲數據。本應用筆記演示如何使用IAR嵌入式工作臺工具MAXQ
    的頭像 發表于 02-21 11:14 ?1410次閱讀
    使用<b class='flag-5'>IAR</b>編譯<b class='flag-5'>器</b>在<b class='flag-5'>MAXQ</b><b class='flag-5'>微控制器</b>上<b class='flag-5'>分配</b>閃存和SRAM<b class='flag-5'>存儲器</b>

    IAR編譯MAXQ2000評估板入門

    MAXQ平臺由一套世界級的工具支持,即IARMAXQ嵌入式工作臺。本應用筆記描述了如何創建、構建和調試用C語言編寫的面向
    的頭像 發表于 03-02 14:18 ?1350次閱讀
    <b class='flag-5'>IAR</b>編譯<b class='flag-5'>器</b>和<b class='flag-5'>MAXQ</b>2000評估板入門

    使用IAR嵌入式工作臺調用實用程序ROM函數用于MAXQ

    實現了所謂的“偽馮諾依曼”架構:開發人員可以在程序空間中存儲數據和表,但只能使用特殊的實用程序ROM例程。除了這些核心功能外,每個MAXQ微控制器的ROM都可以具有特定于該器件的例程。
    的頭像 發表于 03-03 14:14 ?1634次閱讀
    使用<b class='flag-5'>IAR</b>的<b class='flag-5'>嵌入式</b>工作臺調用實用程序ROM函數用于<b class='flag-5'>MAXQ</b>
    主站蜘蛛池模板: 男女免费观看在线爽爽爽视频| RUN AWAY无删减全集动漫| 久久成人无码国产免费播放| CHRISTMAS农村夫妻HO| 亚洲国产成人久久精品影视| 青青涩射射| 浪小辉军警服务员VIDEOS| 国产精品久久久久久影院| 99久久国产露脸国语对白| 亚洲综合国产精品| 偷拍国产精品在线播放| 欧美群交XXXCOM| 久久爽狠狠添AV激情五月| 国产一区二区波多野结衣| 纯肉无码AV在线看免费看 | 三级aa久久| 免费又黄又硬又爽大片| 精品性影院一区二区三区内射| 国产精品伦理一二三区伦理| yw193龙物免费官网在线| 18 japanese宾馆直播| 亚洲专区区免费| 亚洲精品第一页中文字幕| 无码精品AV久久久奶水| 日产国产欧美韩国在线| 欧美日本韩国一二区视频 | 亚洲黄色在线视频| 翁熄性放纵交换300章| 日本欧美高清一区二区视频| 嗯啊快拔出来我是你老师视频| 啦啦啦 中国 日本 高清 在线| 久久re热线视频精品99| 果冻传媒mv国产陈若瑶主演| 国产精品人妻99一区二| 国产福利视频一区二区| 国产 亚洲 中文字幕 在线| 成人影院久久久久久影院| 成人国产免费| 国产AV无码一二三区视频| 高中生被C到爽哭视频免费| 成人国产精品免费网站|