哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

星星科技指導(dǎo)員 ? 來(lái)源:ADI ? 作者:ADI ? 2023-02-21 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MAXQ器件提供特殊的實(shí)用ROM功能,調(diào)用ROM功能從程序存儲(chǔ)器讀寫(xiě)數(shù)據(jù)。但是,存儲(chǔ)在程序存儲(chǔ)器中的數(shù)據(jù)不能直接在MAXQ微控制器上訪(fǎng)問(wèn)。相反,實(shí)用程序ROM函數(shù)的起始地址集成在IAR嵌入式工作臺(tái)中,以訪(fǎng)問(wèn)存儲(chǔ)的數(shù)據(jù)。本應(yīng)用筆記演示如何使用IAR嵌入式工作臺(tái)工具在MAXQ微控制器上分配和訪(fǎng)問(wèn)閃存和SRAM存儲(chǔ)器。

介紹

MAXQ架構(gòu)描述了一個(gè)基于經(jīng)典哈佛架構(gòu)的強(qiáng)大單周期RISC微控制器,其中程序和數(shù)據(jù)存儲(chǔ)器總線(xiàn)是分開(kāi)的。這種組織需要為每個(gè)存儲(chǔ)器提供專(zhuān)用總線(xiàn)(圖1),因此可以同時(shí)獲取指令和操作數(shù)。由于不存在對(duì)單個(gè)數(shù)據(jù)總線(xiàn)的爭(zhēng)用,MAXQ指令只能在一個(gè)周期內(nèi)執(zhí)行。

poYBAGP0PPKAPiCBAAAq26s7WvA226.png

圖1.哈佛建筑。

每個(gè)MAXQ器件包含以下存儲(chǔ)器類(lèi)型:

閃存

SRAM

實(shí)用ROM

MAXQ器件還可以從閃存、實(shí)用程序ROM或SRAM執(zhí)行程序代碼。從一個(gè)存儲(chǔ)器段執(zhí)行程序代碼時(shí),其他兩個(gè)存儲(chǔ)器段可用作數(shù)據(jù)存儲(chǔ)器(有關(guān)更多詳細(xì)信息,請(qǐng)參閱從閃存執(zhí)行程序和執(zhí)行實(shí)用程序ROM功能部分。這是因?yàn)槌绦蚝蛿?shù)據(jù)存儲(chǔ)器總線(xiàn)不能同時(shí)訪(fǎng)問(wèn)同一存儲(chǔ)器段。

作為哈佛的機(jī)器,人們可能會(huì)認(rèn)為MAXQ微控制器禁止將數(shù)據(jù)元件存儲(chǔ)到非易失性閃存中。但是,MAXQ器件設(shè)計(jì)有內(nèi)置的實(shí)用程序ROM功能,允許在非易失性閃存中讀取和寫(xiě)入數(shù)據(jù)。

從閃存執(zhí)行程序

在MAXQ器件中,當(dāng)應(yīng)用程序從閃存中執(zhí)行時(shí),數(shù)據(jù)存儲(chǔ)器是SRAM(讀寫(xiě))和實(shí)用程序ROM(只讀)。從閃存執(zhí)行代碼時(shí),請(qǐng)參閱表1了解數(shù)據(jù)存儲(chǔ)器映射,有關(guān)存儲(chǔ)器映射,請(qǐng)參閱圖2。

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

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

尋址模式 SRAM 實(shí)用ROM
起始地址 結(jié)束地址 起始地址 結(jié)束地址
字節(jié)模式 0x0000 0x07FF 0x8000 0x9FFF
字模式 0x0000 0x03FF 0x8000 0x8FFF

pYYBAGP0PPiABONLAACK9dm2icc247.png

圖2.應(yīng)用程序從閃存執(zhí)行代碼時(shí)的內(nèi)存映射。

執(zhí)行實(shí)用程序 ROM 函數(shù)

執(zhí)行實(shí)用程序ROM功能時(shí),數(shù)據(jù)存儲(chǔ)器是SRAM(讀取和寫(xiě)入)和閃存(讀取和寫(xiě)入)。當(dāng)應(yīng)用程序從閃存執(zhí)行并在閃存中分配變量或數(shù)據(jù)對(duì)象時(shí),可以通過(guò)實(shí)用程序ROM函數(shù)讀取或?qū)懭脒@些變量或數(shù)據(jù)對(duì)象。通過(guò)將程序執(zhí)行跳轉(zhuǎn)到實(shí)用程序ROM功能,現(xiàn)在可以將閃存作為數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn)。從實(shí)用程序ROM執(zhí)行代碼時(shí),請(qǐng)參閱表2以獲取數(shù)據(jù)存儲(chǔ)器映射,有關(guān)存儲(chǔ)器映射,請(qǐng)參閱圖3。

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

在字節(jié)尋址模式下,當(dāng)CDA0 = 8000時(shí),閃存的下半部分位于從地址0x0到0xFFFFh的內(nèi)存映射中,當(dāng)CDA0 = 8000時(shí),閃存的上半部分位于從地址0x0到1xFFFFh的內(nèi)存映射中。在字尋址模式下,閃存位于從地址0x8000到0xFFFF的存儲(chǔ)器映射中。

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

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

poYBAGP0PQiAdZCEAACFcIajY04049.png

圖3.執(zhí)行實(shí)用程序 ROM 功能時(shí)的內(nèi)存映射。

閃存和SRAM中的內(nèi)存分配

IAR嵌入式工作臺(tái)IDE用于編程基于MAXQ內(nèi)核的微控制器。IAR? C編譯器(用于MAXQ微控制器)提供了在閃存或SRAM位置定義數(shù)據(jù)對(duì)象或變量的選項(xiàng)。編譯器具有特殊的關(guān)鍵字雜注位置所需的雜注;通過(guò)使用這些關(guān)鍵字,可以將內(nèi)存分配給絕對(duì)地址處的數(shù)據(jù)對(duì)象或變量。這些變量或數(shù)據(jù)對(duì)象必須使用 IAR 關(guān)鍵字 __no_initconst(標(biāo)準(zhǔn) C 關(guān)鍵字)聲明。請(qǐng)參閱下面所需__no_init、常量、雜注位置所需程序的關(guān)鍵字說(shuō)明。

關(guān)鍵字描述

雜注位置

#pragma location 關(guān)鍵字用于將單個(gè)全局或靜態(tài)變量或數(shù)據(jù)對(duì)象放置在絕對(duì)地址處。變量或數(shù)據(jù)對(duì)象必須聲明為 __no_initconst。這對(duì)于必須位于固定地址的單個(gè)數(shù)據(jù)對(duì)象非常有用,例如變量、具有外部或內(nèi)部接口的數(shù)據(jù)對(duì)象或填充硬件表。

需要編譯指示

所需的#pragma可確保鏈接輸出中包含另一個(gè)符號(hào)所需的符號(hào)。指令必須放在第二個(gè)符號(hào)之前。如果對(duì)符號(hào)的要求在應(yīng)用程序中不可見(jiàn),請(qǐng)使用該指令。例如,如果變量?jī)H通過(guò)其所在的段間接引用,則必須使用必需#pragma。

__no_init

通常,IAR 運(yùn)行時(shí)環(huán)境會(huì)在應(yīng)用程序啟動(dòng)時(shí)將所有全局變量和靜態(tài)變量初始化為 0。IAR C 編譯器支持使用 __no_init 類(lèi)型修飾符聲明不會(huì)初始化的變量。使用 __no_init 聲明的變量在啟動(dòng)時(shí)被禁止顯示。無(wú)法為__no_init對(duì)象指定初始值。

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

在此示例中,聲明__no_init變量放置在默認(rèn)數(shù)據(jù)存儲(chǔ)器 (SRAM) 中的絕對(duì)地址。

常量

const 關(guān)鍵字表示對(duì)象是只讀的。這種類(lèi)型的限定符用于指示直接或通過(guò)指針訪(fǎng)問(wèn)的數(shù)據(jù)對(duì)象是不可寫(xiě)的。當(dāng) const 與關(guān)鍵字 #pragma 位置一起使用并且需要#pragma時(shí),IAR 會(huì)在#pragma位置定義的位置分配內(nèi)存。這對(duì)于可從外部接口訪(fǎng)問(wèn)的配置參數(shù)非常有用。此類(lèi)閃存數(shù)據(jù)對(duì)象只能由實(shí)用程序ROM功能讀取或?qū)懭搿?/p>

放置在絕對(duì)地址的常量變量在 IAR 的默認(rèn)內(nèi)存模型中不可訪(fǎng)問(wèn)。使用選項(xiàng)“在 CODE 中放置常量”(在 IAR 項(xiàng)目pYYBAGP0NxiAYeTSAAAB-HzF9KM477.gif?imgver=1選項(xiàng)“常規(guī)選項(xiàng)pYYBAGP0NxiAYeTSAAAB-HzF9KM477.gif?imgver=1 pYYBAGP0NxiAYeTSAAAB-HzF9KM477.gif?imgver=1目標(biāo)”窗口中)使其可訪(fǎng)問(wèn),如圖 4 所示。

poYBAGP0NyGAMPEmAADUzcDtYWY975.gif?imgver=1

圖4.IAR 項(xiàng)目選項(xiàng)窗口。

例 1

const int FLASH_DATA0;

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

例 2

#pragma位置 = 0xA000

常量整數(shù) FLASH_DATA1 = 0x1234;

所需#pragma = 此處FLASH_DATA1

內(nèi)存在閃存地址 0xA000 處分配并初始化為 0x1234。

例 3

#pragma位置 = 0xA002

__no_init const int FLASH_DATA2 //內(nèi)存在地址0xA002(字節(jié)地址)

處分配#pragma所需的 = FLASH_DATA2

此處,內(nèi)存在閃存地址0xA002分配,無(wú)需初始化。

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

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    49

    文章

    8800

    瀏覽量

    165473
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    39

    文章

    7752

    瀏覽量

    172130
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51866
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    USB收發(fā)的微控制電路MAXQ612相關(guān)資料下載

    閃存和6KB數(shù)據(jù)SRAM。通過(guò)安全存儲(chǔ)器管理單元(MMU)提供知識(shí)產(chǎn)權(quán)(IP)保護(hù),該安全MMU可支持多種授權(quán)等級(jí)配置,保護(hù)代碼不被復(fù)制和進(jìn)行逆向工程。授權(quán)等級(jí)使廠(chǎng)商可以提供MAXQ6
    發(fā)表于 04-19 07:37

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

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

    MAXQ微控制器中JTAG接口引腳的復(fù)用

    摘要:通常在嵌入式應(yīng)用中,微控制器的每個(gè)端口引腳都是必需的,沒(méi)有多余引腳。大部分MAXQ®微控制器帶有可重新進(jìn)行寫(xiě)操作的內(nèi)部程序存儲(chǔ)器(如
    發(fā)表于 04-23 16:28 ?1215次閱讀

    應(yīng)用編程MAXQ微控制器中可分區(qū)擦除的程序和數(shù)據(jù)閃存

    摘要:本應(yīng)用筆記介紹了MAXQ微控制器中的程序和數(shù)據(jù)閃存,以及如何使用內(nèi)置的應(yīng)用ROM對(duì)閃存進(jìn)行擦/寫(xiě)。本應(yīng)用筆記適用于所有使用分區(qū)擦除閃存
    發(fā)表于 04-23 17:16 ?923次閱讀
    <b class='flag-5'>在</b>應(yīng)用編程<b class='flag-5'>MAXQ</b><b class='flag-5'>微控制器</b>中可分區(qū)擦除的程序和數(shù)據(jù)<b class='flag-5'>閃存</b>

    MAXQ8913微控制器中從RAM執(zhí)行應(yīng)用程序

    MAXQ8913微控制器中從RAM執(zhí)行應(yīng)用程序 MAXQ8913及其它MAXQ®微控制器
    發(fā)表于 01-11 17:56 ?1761次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>MAXQ</b>8913<b class='flag-5'>微控制器</b>中從RAM執(zhí)行應(yīng)用程序

    如何分配IAR編譯器的MAX微控制器閃存SRAM內(nèi)存

    Abstract: MAXQ devices provide special utility ROM functions, which are called to read and write
    發(fā)表于 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>內(nèi)存

    MAXQ構(gòu)架上閃存SRAM存儲(chǔ)器分配

    本應(yīng)用筆記介紹如何利用IAR嵌入式工作臺(tái)工具分配和存取MAXQ微控制器閃存
    發(fā)表于 06-21 14:44 ?5133次閱讀
    <b class='flag-5'>MAXQ</b>構(gòu)架上<b class='flag-5'>閃存</b>和<b class='flag-5'>SRAM</b><b class='flag-5'>存儲(chǔ)器</b>的<b class='flag-5'>分配</b>

    閃存儲(chǔ)器控制器選擇技巧

    現(xiàn)代快閃存儲(chǔ)器控制器中的磨損平衡技術(shù)已經(jīng)有顯著進(jìn)步,能夠克服快閃存儲(chǔ)器儲(chǔ)存介質(zhì)固有的弱點(diǎn),并幫助發(fā)揮出快閃存儲(chǔ)器的優(yōu)勢(shì)。對(duì)于現(xiàn)代快閃存儲(chǔ)器儲(chǔ)
    發(fā)表于 03-07 09:45 ?1719次閱讀

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

    對(duì)微控制器進(jìn)行編程或刻錄意味著“將程序從編譯器傳輸?shù)?b class='flag-5'>微控制器存儲(chǔ)器”。微控制器的程序通常是用C或匯編語(yǔ)言編寫(xiě)的,最后
    的頭像 發(fā)表于 08-21 15:40 ?1.3w次閱讀

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

    發(fā)表于 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'>存儲(chǔ)器</b>

    MAXQ微控制器的多路復(fù)用JTAG接口引腳

    通常在嵌入式應(yīng)用中,微控制器的每一個(gè)端口引腳都需要,沒(méi)有多余的端口引腳。大多數(shù)具有可重寫(xiě)內(nèi)部程序存儲(chǔ)器(如閃存或EEPROM)的MAXQ?
    的頭像 發(fā)表于 01-10 11:34 ?2094次閱讀

    MAXQ2000數(shù)據(jù)存儲(chǔ)器中實(shí)現(xiàn)軟堆棧

    ),存儲(chǔ)與數(shù)據(jù)和程序空間分開(kāi)的專(zhuān)用內(nèi)部存儲(chǔ)器中。通過(guò)子程序調(diào)用和中斷,這一硬堆棧可用于保存和恢復(fù)微控制器的操作狀態(tài)。
    的頭像 發(fā)表于 02-14 18:20 ?1567次閱讀

    MAXQ8913微控制器的RAM執(zhí)行應(yīng)用代碼

    MAXQ8913和其他MAXQ微控制器使用的哈佛存儲(chǔ)器映射架構(gòu)為用戶(hù)提供了根據(jù)需要將不同的物理存儲(chǔ)器段(如數(shù)據(jù)
    的頭像 發(fā)表于 02-21 16:18 ?1347次閱讀
    從<b class='flag-5'>MAXQ</b>8913<b class='flag-5'>微控制器</b><b class='flag-5'>上</b>的RAM執(zhí)行應(yīng)用代碼

    IAR編譯器MAXQ2000評(píng)估板入門(mén)

    MAXQ平臺(tái)由一套世界級(jí)的工具支持,即IARMAXQ嵌入式工作臺(tái)。本應(yīng)用筆記描述了如何創(chuàng)建、構(gòu)建和調(diào)試用C語(yǔ)言編寫(xiě)的面向MAXQ平臺(tái)的應(yīng)用。本文還將演示
    的頭像 發(fā)表于 03-02 14:18 ?2248次閱讀
    <b class='flag-5'>IAR</b><b class='flag-5'>編譯器</b>和<b class='flag-5'>MAXQ</b>2000評(píng)估板入門(mén)

    微控制器內(nèi)部的存儲(chǔ)器有哪些

    微控制器(MCU)內(nèi)部的存儲(chǔ)器微控制器系統(tǒng)的重要組成部分,它負(fù)責(zé)存儲(chǔ)程序代碼、數(shù)據(jù)以及控制邏輯等信息。這些
    的頭像 發(fā)表于 08-22 10:41 ?2407次閱讀
    达州市| 扎鲁特旗| 霍林郭勒市| 沧州市| 台北市| 义马市| 鄂伦春自治旗| 临江市| 名山县| 卢龙县| 阳信县| 临洮县| 阿巴嘎旗| 桃源县| 宣化县| 常德市| 盈江县| 秦皇岛市| 平度市| 武鸣县| 巴青县| 红桥区| 西丰县| 岱山县| 南城县| 信宜市| 华阴市| 合作市| 盐池县| 徐水县| 扎赉特旗| 安徽省| 建湖县| 修水县| 许昌市| 新泰市| 光山县| 新野县| 绍兴县| 铁岭市| 九龙城区|