在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

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

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-21 11:14 ? 次閱讀

MAXQ器件提供特殊的實用ROM功能,調用ROM功能從程序存儲器讀寫數據。但是,存儲在程序存儲器中的數據不能直接在MAXQ微控制器上訪問。相反,實用程序ROM函數的起始地址集成在IAR嵌入式工作臺中,以訪問存儲的數據。本應用筆記演示如何使用IAR嵌入式工作臺工具在MAXQ微控制器上分配和訪問閃存和SRAM存儲器。

介紹

MAXQ架構描述了一個基于經典哈佛架構的強大單周期RISC微控制器,其中程序和數據存儲器總線是分開的。這種組織需要為每個存儲器提供專用總線(圖1),因此可以同時獲取指令和操作數。由于不存在對單個數據總線的爭用,MAXQ指令只能在一個周期內執行。

poYBAGP0PPKAPiCBAAAq26s7WvA226.png

圖1.哈佛建筑。

每個MAXQ器件包含以下存儲器類型:

閃存

SRAM

實用ROM

MAXQ器件還可以從閃存、實用程序ROM或SRAM執行程序代碼。從一個存儲器段執行程序代碼時,其他兩個存儲器段可用作數據存儲器(有關更多詳細信息,請參閱從閃存執行程序和執行實用程序ROM功能部分。這是因為程序和數據存儲器總線不能同時訪問同一存儲器段。

作為哈佛的機器,人們可能會認為MAXQ微控制器禁止將數據元件存儲到非易失性閃存中。但是,MAXQ器件設計有內置的實用程序ROM功能,允許在非易失性閃存中讀取和寫入數據。

從閃存執行程序

在MAXQ器件中,當應用程序從閃存中執行時,數據存儲器是SRAM(讀寫)和實用程序ROM(只讀)。從閃存執行代碼時,請參閱表1了解數據存儲器映射,有關存儲器映射,請參閱圖2。

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

實用程序ROM位于從地址0x8000到0x9FFFh(字節模式)或從地址0x8000到0x8FFF(字尋址模式)的內存映射中。

尋址模式 SRAM 實用ROM
起始地址 結束地址 起始地址 結束地址
字節模式 0x0000 0x07FF 0x8000 0x9FFF
字模式 0x0000 0x03FF 0x8000 0x8FFF

pYYBAGP0PPiABONLAACK9dm2icc247.png

圖2.應用程序從閃存執行代碼時的內存映射。

執行實用程序 ROM 函數

執行實用程序ROM功能時,數據存儲器是SRAM(讀取和寫入)和閃存(讀取和寫入)。當應用程序從閃存執行并在閃存中分配變量或數據對象時,可以通過實用程序ROM函數讀取或寫入這些變量或數據對象。通過將程序執行跳轉到實用程序ROM功能,現在可以將閃存作為數據進行訪問。從實用程序ROM執行代碼時,請參閱表2以獲取數據存儲器映射,有關存儲器映射,請參閱圖3。

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

在字節尋址模式下,當CDA0 = 8000時,閃存的下半部分位于從地址0x0到0xFFFFh的內存映射中,當CDA0 = 8000時,閃存的上半部分位于從地址0x0到1xFFFFh的內存映射中。在字尋址模式下,閃存位于從地址0x8000到0xFFFF的存儲器映射中。

尋址模式 SRAM
閃存下半部分 (CDA0 = 0)

閃存上半部分 (CDA0 = 1)
閃存
起始地址 結束地址 起始地址 結束地址 起始地址 結束地址 起始地址 結束地址
字節模式 0x0000 0x07FF 0x8000 0xFFFF 0x8000 0xFFFF
字模式 0x0000 0x03FF 0x8000 0xFFFF

poYBAGP0PQiAdZCEAACFcIajY04049.png

圖3.執行實用程序 ROM 功能時的內存映射。

閃存和SRAM中的內存分配

IAR嵌入式工作臺IDE用于編程基于MAXQ內核的微控制器。IAR? C編譯器(用于MAXQ微控制器)提供了在閃存或SRAM位置定義數據對象或變量的選項。編譯器具有特殊的關鍵字雜注位置所需的雜注;通過使用這些關鍵字,可以將內存分配給絕對地址處的數據對象或變量。這些變量或數據對象必須使用 IAR 關鍵字 __no_initconst(標準 C 關鍵字)聲明。請參閱下面所需__no_init、常量、雜注位置所需程序的關鍵字說明。

關鍵字描述

雜注位置

#pragma location 關鍵字用于將單個全局或靜態變量或數據對象放置在絕對地址處。變量或數據對象必須聲明為 __no_initconst。這對于必須位于固定地址的單個數據對象非常有用,例如變量、具有外部或內部接口的數據對象或填充硬件表。

需要編譯指示

所需的#pragma可確保鏈接輸出中包含另一個符號所需的符號。指令必須放在第二個符號之前。如果對符號的要求在應用程序中不可見,請使用該指令。例如,如果變量僅通過其所在的段間接引用,則必須使用必需#pragma。

__no_init

通常,IAR 運行時環境會在應用程序啟動時將所有全局變量和靜態變量初始化為 0。IAR C 編譯器支持使用 __no_init 類型修飾符聲明不會初始化的變量。使用 __no_init 聲明的變量在啟動時被禁止顯示。無法為__no_init對象指定初始值。

示例:__no_init字符馬克西姆查爾@0x0200;

在此示例中,聲明__no_init變量放置在默認數據存儲器 (SRAM) 中的絕對地址。

常量

const 關鍵字表示對象是只讀的。這種類型的限定符用于指示直接或通過指針訪問的數據對象是不可寫的。當 const 與關鍵字 #pragma 位置一起使用并且需要#pragma時,IAR 會在#pragma位置定義的位置分配內存。這對于可從外部接口訪問的配置參數非常有用。此類閃存數據對象只能由實用程序ROM功能讀取或寫入。

放置在絕對地址的常量變量在 IAR 的默認內存模型中不可訪問。使用選項“在 CODE 中放置常量”(在 IAR 項目pYYBAGP0NxiAYeTSAAAB-HzF9KM477.gif?imgver=1選項“常規選項pYYBAGP0NxiAYeTSAAAB-HzF9KM477.gif?imgver=1 pYYBAGP0NxiAYeTSAAAB-HzF9KM477.gif?imgver=1目標”窗口中)使其可訪問,如圖 4 所示。

poYBAGP0NyGAMPEmAADUzcDtYWY975.gif?imgver=1

圖4.IAR 項目選項窗口。

例 1

const int FLASH_DATA0;

//FLASH_DATA0 初始化為 0x0000,鏈接器將分配內存地址。

例 2

#pragma位置 = 0xA000

常量整數 FLASH_DATA1 = 0x1234;

所需#pragma = 此處FLASH_DATA1

內存在閃存地址 0xA000 處分配并初始化為 0x1234。

例 3

#pragma位置 = 0xA002

__no_init const int FLASH_DATA2 //內存在地址0xA002(字節地址)

處分配#pragma所需的 = FLASH_DATA2

此處,內存在閃存地址0xA002分配,無需初始化。

在上面的示例中,有三個 const 聲明的對象,其中第一個初始化為零,第二個初始化為特定值,第三個未初始化。所有三個變量都放置在閃存中。

審核編輯:郭婷

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

    關注

    48

    文章

    7831

    瀏覽量

    153256
  • 存儲器
    +關注

    關注

    38

    文章

    7603

    瀏覽量

    165798
  • 編譯器
    +關注

    關注

    1

    文章

    1651

    瀏覽量

    49698
收藏 0人收藏

    評論

    相關推薦

    帶有紅外收發的高性能16位RISC微控制器

    Maxim推出帶有紅外(IR)收發的高性能16位RISC微控制器MAXQ613。MAXQ610微控制
    發表于 07-28 15:26 ?45次下載

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

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

    應用編程MAXQ微控制器中可分區擦除的程序和數據閃存

    摘要:本應用筆記介紹了MAXQ微控制器中的程序和數據閃存,以及如何使用內置的應用ROM對閃存進行擦/寫。本應用筆記適用于所有使用分區擦除閃存
    發表于 04-23 17:16 ?733次閱讀
    <b class='flag-5'>在</b>應用編程<b class='flag-5'>MAXQ</b><b class='flag-5'>微控制器</b>中可分區擦除的程序和數據<b class='flag-5'>閃存</b>

    MAXQ8913微控制器中從RAM執行應用程序

    MAXQ8913微控制器中從RAM執行應用程序 MAXQ8913及其它MAXQ®微控制器
    發表于 01-11 17:56 ?1309次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>MAXQ</b>8913<b class='flag-5'>微控制器</b>中從RAM執行應用程序

    如何分配IAR編譯器的MAX微控制器閃存SRAM內存

    Abstract: MAXQ devices provide special utility ROM functions, which are called to read and write
    發表于 12-19 11:44 ?0次下載
    如何<b class='flag-5'>分配</b><b class='flag-5'>IAR</b><b class='flag-5'>編譯器</b><b class='flag-5'>上</b>的MAX<b class='flag-5'>微控制器</b><b class='flag-5'>閃存</b>和<b class='flag-5'>SRAM</b>內存

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

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

    STM32系列微控制器存儲器與外設

    STM32系列微控制器存儲器與外設
    發表于 09-29 14:50 ?7次下載
    STM32系列<b class='flag-5'>微控制器</b><b class='flag-5'>存儲器</b>與外設

    閃存儲器控制器選擇技巧

    現代快閃存儲器控制器中的磨損平衡技術已經有顯著進步,能夠克服快閃存儲器儲存介質固有的弱點,并幫助發揮出快閃存儲器的優勢。對于現代快閃存儲器
    發表于 03-07 09:45 ?1487次閱讀

    什么是微控制器?如何編程微控制器

    微控制器進行編程或刻錄意味著“將程序從編譯器傳輸到微控制器存儲器”。微控制器的程序通常是用C或匯編語言編寫的,最后
    的頭像 發表于 08-21 15:40 ?1.1w次閱讀

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

    發表于 11-17 12:42 ?0次下載
    使用 <b class='flag-5'>IAR</b> <b class='flag-5'>編譯器</b><b class='flag-5'>在</b> <b class='flag-5'>MAXQ</b>? <b class='flag-5'>微控制器</b><b class='flag-5'>上</b><b class='flag-5'>分配</b><b class='flag-5'>閃存</b>和 <b class='flag-5'>SRAM</b> <b class='flag-5'>存儲器</b>

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

    通常在嵌入式應用中,微控制器的每一個端口引腳都需要,沒有多余的端口引腳。大多數具有可重寫內部程序存儲器(如閃存或EEPROM)的MAXQ?
    的頭像 發表于 01-10 11:34 ?1368次閱讀

    MAXQ2000數據存儲器中實現軟堆棧

    ),存儲與數據和程序空間分開的專用內部存儲器中。通過子程序調用和中斷,這一硬堆棧可用于保存和恢復微控制器的操作狀態。
    的頭像 發表于 02-14 18:20 ?922次閱讀

    MAXQ8913微控制器的RAM執行應用代碼

    MAXQ8913和其他MAXQ微控制器使用的哈佛存儲器映射架構為用戶提供了根據需要將不同的物理存儲器段(如數據
    的頭像 發表于 02-21 16:18 ?714次閱讀
    從<b class='flag-5'>MAXQ</b>8913<b class='flag-5'>微控制器</b><b class='flag-5'>上</b>的RAM執行應用代碼

    IAR編譯器MAXQ2000評估板入門

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

    微控制器內部的存儲器有哪些

    微控制器(MCU)內部的存儲器微控制器系統的重要組成部分,它負責存儲程序代碼、數據以及控制邏輯等信息。這些
    的頭像 發表于 08-22 10:41 ?1130次閱讀
    主站蜘蛛池模板: 亚洲免费色 | 我爱操 | 日本一视频一区视频二区 | 五月天婷婷网址 | 日本美女黄网站 | 色色色色网 | 久久网综合 | 在线好吊色视频98gao | 午夜不卡影院 | 狠狠综合欧美综合欧美色 | 伊人啪啪| 精品国产_亚洲人成在线高清 | 欧美午夜片 | 天天做天天爱天天爽 | 日韩毛片网站 | 亚洲天堂资源网 | 欲色天天| www性| 热久久久 | 日本色黄| 天天操天天曰 | 久久婷人人澡人人爽 | 欧美一级视频免费观看 | 羞羞漫画喷水漫画yy漫画 | 爱爱免费视频网站 | 日本xxx69hd | 色色色色色色色色色色色色色色 | 免费高清在线爱做视频 | 诱人的老师bd高清日本在线观看 | 妖精视频亚洲 | 国产片18在线观看 | 天堂视频网 | 奇米影视四色7777久久精品 | 成人人免费夜夜视频观看 | 一久久 | 国产色婷婷精品综合在线 | 老师你好大好白好紧好硬 | 亚洲免费视频在线观看 | www毛片| 嫩草网 | 国产呦在线观看视频 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品