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

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

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

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

如何將變量存儲在指定內(nèi)存地址 (基于Keil MDK-ARM)

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-02-29 16:32 ? 次閱讀

將變量、數(shù)組(例如表或函數(shù))存儲到特定地址的原因有很多。

校驗(yàn)和可能需要位于某個地址,可能需要將函數(shù)放在特定的內(nèi)存位置,根據(jù)使用的編譯器,可以選擇設(shè)置特定的內(nèi)存區(qū)域。

這個問題是在前面分享文章《STM32開發(fā)工具之STM Studio調(diào)試和診斷工具講解》之后,有讀者提出來的問題。

我需要在固定的內(nèi)存地址找到一個變量,如何使用C源代碼執(zhí)行此操作?

一、回顧STMStudio

前不久分享STMStudio文章之后,很多朋友對這個工具比較感興趣,也第一時(shí)間下來安裝使用了該工具。

這里簡單說一下STMStudio與本文相關(guān)的內(nèi)容:變量。

STMStudio可管理四種變量:

?由物理存儲地址標(biāo)識的絕對變量。

?能夠計(jì)算絕對變量的最小值、最大值、平均值和標(biāo)準(zhǔn)差等值的統(tǒng)計(jì)變量。

?表達(dá)式變量是數(shù)學(xué)表達(dá)式計(jì)算的結(jié)果。表達(dá)式是絕對變量或統(tǒng)計(jì)變量與數(shù)學(xué)運(yùn)算符(+,-,*,/…)的組合,例如:(Variable1+Variable2)*Variable3。注意,表達(dá)式變量是在統(tǒng)計(jì)變量之后求值的,因此不可能計(jì)算表達(dá)式的統(tǒng)計(jì)值。

?包含用戶可配置信息的插件變量。

(為了節(jié)約時(shí)間,使用有道翻譯的句子,大家請結(jié)合原文理解)

可以看得出來,局部變量是不支持的。

J-Scope

這個STMStudio工具和J-Scope有類似之處,也能查看變量、波形:

J-Scope也是一個不錯的工具,大家可以下載安裝試試:

https://www.segger.com/products/debug-probes/j-link/tools/j-scope

二、回歸主題

如何將變量存儲在指定內(nèi)存地址?

不同的編譯器,會有不同的方法,這里主要結(jié)合MDK說下基于AC5和AC6編譯,簡述其中的方法。

結(jié)合STM32F103ZE,有64K(0x10000)內(nèi)存。

1.針對AC5(ARMCC Compiler version 5.x)

定義一個變量cnt到指定內(nèi)存地址:0x20008000

uint8_t cnt __attribute__((at(0x20008000)));

2.針對AC6(ARM Compiler 6 (又名ARMCLANG))

定義一個變量cnt到指定內(nèi)存地址:0x20008000

uint8_t cnt __attribute__((section(".ARM.__at_0x20008000")));

這個地方進(jìn)行分段:

這樣指定內(nèi)存地址,即可使用STMStudio進(jìn)行查看指定地址變量了:

好了,先寫到這里,希望對大家有幫助。

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

    關(guān)注

    134

    文章

    9270

    瀏覽量

    373405
  • keil
    +關(guān)注

    關(guān)注

    69

    文章

    1217

    瀏覽量

    168545
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    209

    瀏覽量

    32426
收藏 人收藏

    評論

    相關(guān)推薦

    Keil uVision 5安裝包下載,詳細(xì)安裝教程~

    目錄(覆蓋原有文件)。 ISIS中啟用\"Use Remote Debug MONITOR\",Keil for ARM選擇\"Proteus VSM
    發(fā)表于 03-15 12:10

    starvision2上移植FreeRTOS,objdump后發(fā)現(xiàn)static變量地址是0,怎么解決?

    以下內(nèi)容為評論 我是嵌入式的新手,目前打算freeRTOS移植到starvision2上。 但是鏈接的時(shí)候遇到一個問題。 main.c:74:(.text+0x26): relocation
    發(fā)表于 03-10 07:21

    分享一個keil MDK編譯信息增強(qiáng)工具

    今天給大家分享一個 keil MDK 編譯信息增強(qiáng)工具:keil-build-viewer. 1 keil-build-viewer介紹 這是一個
    的頭像 發(fā)表于 11-14 11:01 ?1391次閱讀

    新唐科技率先發(fā)布免費(fèi)版Arm Keil MDK,助力嵌入式開發(fā)

    2024年11月5日,新唐科技正式推出了免費(fèi)版的Arm? Keil? MDK Nuvoton Edition,成為全球首家向開發(fā)者提供Keil MD
    的頭像 發(fā)表于 11-06 11:07 ?1972次閱讀

    labview如何獲取到圖像的內(nèi)存地址

    請問各位大佬們,labview如何獲取到圖像的內(nèi)存地址,以便的別的語言中根據(jù)這個內(nèi)存地址中的圖片進(jìn)行處理?
    發(fā)表于 10-04 18:59

    keil軟件實(shí)現(xiàn)編程仿真需要哪些步驟

    Keil MDK-ARM 的主要 IDE。創(chuàng)建新項(xiàng)目時(shí),您需要選擇正確的設(shè)備和工具鏈。 選擇“File” > “New uVision Project”。 彈出的對話框中,選擇
    的頭像 發(fā)表于 09-02 10:28 ?2023次閱讀

    怎樣keil中的程序?qū)С?/a>

    1. 準(zhǔn)備工作 開始導(dǎo)出程序之前,需要確保已經(jīng)完成了以下準(zhǔn)備工作: 安裝Keil MDK-ARM軟件。 創(chuàng)建一個新的項(xiàng)目,并添加所需的源文件和庫文件。 配置項(xiàng)目設(shè)置,包括芯片型號、編譯器選項(xiàng)、鏈接
    的頭像 發(fā)表于 09-02 10:23 ?3367次閱讀

    keil5怎么利用sys進(jìn)行配置ti環(huán)境

    用TI ARM工具鏈: Keil MDK-ARM中,您需要配置工具鏈以使用TI ARM工具鏈。為此,請按照以下步驟操作: a. 打開
    的頭像 發(fā)表于 09-02 10:19 ?919次閱讀

    keil5怎么給ti燒錄程序

    安裝Keil MDK-ARM軟件: 訪問Keil官方網(wǎng)站(https://www.keil.com/)并下載Keil
    的頭像 發(fā)表于 09-02 10:18 ?1712次閱讀

    keil5怎么把程序燒到板子上

    安裝Keil MDK-ARM: 從Keil官網(wǎng)下載Keil MDK-ARM安裝包。 按照安裝向?qū)瓿砂惭b。 連接開發(fā)板:
    的頭像 發(fā)表于 08-22 09:30 ?4342次閱讀

    如何用keil給單片機(jī)燒錄程序

    以下是詳細(xì)的步驟: 安裝Keil軟件 : 首先,您需要從Keil官網(wǎng)下載適合您單片機(jī)型號的MDK-ARM軟件。 安裝過程中,請按照提示操作,選擇適合您的開發(fā)板和單片機(jī)型號。 創(chuàng)建新項(xiàng)目 : 打開
    的頭像 發(fā)表于 08-22 09:28 ?5872次閱讀

    TC375如何將變量值保存到非易失性存儲器中?

    我有一臺 TC375,正在開發(fā)工作室進(jìn)行編程。 我的軟件有一個控制系統(tǒng),它使用一組我可以調(diào)整的參數(shù)。 這些參數(shù)設(shè)置為全局變量。 一旦我對它們進(jìn)行了調(diào)整,控制器復(fù)位后就無法保持它們的值。 是否有辦法使用閃存編程示例,用新值更新 Pflash 或 Dflash 中的地址,使其
    發(fā)表于 05-31 06:40

    如何在AURIX TC375控制器中向DFLASH存儲器寫入單字節(jié)數(shù)據(jù)?

    我可以使用頁面地址 DFLASH 存儲器中寫入 8 字節(jié)數(shù)據(jù)。 我需要在任意內(nèi)存地址寫入一個字節(jié)的數(shù)據(jù)。 是否可以在任何內(nèi)存地址位置寫入單
    發(fā)表于 05-27 07:03

    AD2428使用sigma studio工具的時(shí)候,如何將stream和TDM/PDM進(jìn)行指定

    AD2428從功能描述看可以同時(shí)打開TDM和PDM,此時(shí)如果作為從節(jié)點(diǎn),TDM RX和PDM RX接收的音頻數(shù)據(jù)總線slot上應(yīng)該是如何排布的? 使用sigma studio工具的時(shí)候,沒有發(fā)現(xiàn)如何將stream和TDM/PDM進(jìn)行
    發(fā)表于 05-22 07:00

    stm32cubemx生成mdk-arm v4項(xiàng)目文件無法打開是什么原因?qū)е碌模?/a>

    stm32cubemx 生成mdk-arm v4 項(xiàng)目文件無法打開
    發(fā)表于 05-14 06:43
    主站蜘蛛池模板: 日a在线| 你懂的网址免费国产 | 狠狠色噜噜狠狠狠狠97老肥女 | 波多野结衣在线网址 | 日韩亚洲欧美日本精品va | 欧美视频a | 黄网免费看 | 欧美黑人巨大日本人又爽又色 | 国产亚洲精品自在久久77 | 日本高清视频在线www色 | 日本免费大黄在线观看 | aaa一级最新毛片 | 你懂的在线观看视频 | 日韩免费看 | 日本欧美一区二区三区不卡视频 | aaaa大片| 羞羞视频靠逼视频大全 | 亚洲三级黄 | 最近2018中文字幕免费看在线 | 韩国三级在线不卡播放 | 国产干美女 | 日本加勒比在线播放 | 日本不卡免费高清一级视频 | 亚洲综合视频一区 | 天天爽夜夜爽夜夜爽精品视频 | 日韩一级视频免费观看 | 欧洲精品不卡1卡2卡三卡四卡 | 黄色网 在线播放 | 91av视频免费在线观看 | 伊人久久成人成综合网222 | 精品国内一区二区三区免费视频 | 午夜在线观看网站 | 欧美激情综合色综合啪啪五月 | 视频一区二区在线播放 | 色婷婷色99国产综合精品 | 美女张开大腿让男人捅 | 欧美日剧在线免费 | 久久久久久夜精品精品免费 | 欧美高清milf在线播放 | bt天堂网在线资源www | 一级中文字幕乱码免费 |