一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-02-29 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

一、回顧STMStudio

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

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

STMStudio可管理四種變量:

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

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

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

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

(為了節(jié)約時間,使用有道翻譯的句子,大家請結(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")));

這個地方進行分段:

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

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

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

    關(guān)注

    134

    文章

    9353

    瀏覽量

    377617
  • keil
    +關(guān)注

    關(guān)注

    69

    文章

    1223

    瀏覽量

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

    關(guān)注

    4

    文章

    211

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Keil MDK到IAR EWARM:通過工程遷移實現(xiàn)項目資產(chǎn)的更好管理

    對于需要統(tǒng)一開發(fā)環(huán)境或涉及多核架構(gòu)(如Cortex-A/R)的項目,越來越多的用戶選擇從Keil MDK遷移到IAR EWARM。這就會面臨著需要將之前的Keil MDK工程遷移到IA
    的頭像 發(fā)表于 05-08 09:03 ?531次閱讀
    從<b class='flag-5'>Keil</b> <b class='flag-5'>MDK</b>到IAR EWARM:通過工程遷移實現(xiàn)項目資產(chǎn)的更好管理

    Keil uVision 5安裝包下載,詳細安裝教程~

    目錄(覆蓋原有文件)。 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上。 但是鏈接的時候遇到一個問題。 main.c:74:(.text+0x26): relocation
    發(fā)表于 03-10 07:21

    【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】+KEIL+RASC 開發(fā)環(huán)境搭建

    、安裝keil編譯環(huán)境 Keil([MDK-ARM] 的下載頁面為[https://www.keil.com/download/product/]
    發(fā)表于 01-15 21:21

    Keil詳細安裝教程(同時兼容51與STM32)

    安裝目錄創(chuàng)建兩個文件夾,一個用于存放c51 版keil,一個用于存放armkeil 。 1) 安裝c51 版keil 1. 安裝包以c
    的頭像 發(fā)表于 11-26 11:26 ?1.8w次閱讀
    <b class='flag-5'>Keil</b>詳細安裝教程(同時兼容51與STM32)

    分享一個keil MDK編譯信息增強工具

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

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

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

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

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

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

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

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

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

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

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

    keil5怎么給ti燒錄程序

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

    Keil變量不被初始化方法

    有些時候我們的應(yīng)用過程中要求變量有連續(xù)性,或者現(xiàn)場保留,例如Bootloader跳轉(zhuǎn),某種原因的復(fù)位過程中我們有些關(guān)鍵變量不能被初始化,不同的編譯環(huán)境下有不同的設(shè)置,本文就這個操作
    的頭像 發(fā)表于 08-30 11:47 ?1527次閱讀
    <b class='flag-5'>Keil</b>中<b class='flag-5'>變量</b>不被初始化方法

    keil5怎么把程序燒到板子上

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

    如何用keil給單片機燒錄程序

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