精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

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

校驗和可能需要位于某個地址,可能需要將函數放在特定的內存位置,根據使用的編譯器,可以選擇設置特定的內存區域。

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

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

一、回顧STMStudio

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

這里簡單說一下STMStudio與本文相關的內容:變量。

STMStudio可管理四種變量:

?由物理存儲地址標識的絕對變量。

?能夠計算絕對變量的最小值、最大值、平均值和標準差等值的統計變量。

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

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

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

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

J-Scope

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

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

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

二、回歸主題

如何將變量存儲在指定內存地址?

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

結合STM32F103ZE,有64K(0x10000)內存。

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

定義一個變量cnt到指定內存地址:0x20008000

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

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

定義一個變量cnt到指定內存地址:0x20008000

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

這個地方進行分段:

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

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

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

    關注

    134

    文章

    9046

    瀏覽量

    366817
  • keil
    +關注

    關注

    68

    文章

    1211

    瀏覽量

    166684
  • MDK
    MDK
    +關注

    關注

    4

    文章

    209

    瀏覽量

    32035
收藏 人收藏

    評論

    相關推薦

    labview如何獲取到圖像的內存地址

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

    keil軟件實現編程仿真需要哪些步驟

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

    怎樣keil中的程序導出

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

    keil5怎么利用sys進行配置ti環境

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

    keil5怎么給ti燒錄程序

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

    keil5怎么把程序燒到板子上

    安裝Keil MDK-ARM: 從Keil官網下載Keil MDK-ARM安裝包。 按照安裝向導完成安裝。 連接開發板:
    的頭像 發表于 08-22 09:30 ?1523次閱讀

    如何在Keil MDK-ARM環境下開發STM32L011K4T6?

    Keil MDK-ARM環境下開發STM32L011K4T6
    發表于 04-22 06:49

    鴻蒙TypeScript入門學習第4天:【TS變量聲明】

    變量是一種使用方便的占位符,用于引用計算機內存地址。 我們可以把變量看做存儲數據的容器。
    的頭像 發表于 03-29 14:49 ?1350次閱讀

    怎么啦?你的Keil C51和Keil MDK還無法共存嗎?

    路徑設置為:D:\software\Keil\Keil_MDK\ARM\PACK三、KeilC51與KeilMDK共存打開C51與MDK的安裝目錄,然后把C51安
    的頭像 發表于 03-24 08:09 ?3056次閱讀
    怎么啦?你的<b class='flag-5'>Keil</b> C51和<b class='flag-5'>Keil</b> <b class='flag-5'>MDK</b>還無法共存嗎?

    如何在ModusToolbox?中檢查和設置應用程序的內存地址

    如何在ModusToolbox?中檢查和設置應用程序的內存地址
    發表于 03-01 10:16

    TC277如何指定該全局數組變量存儲地址的對齊方式?

    定義全局數組變量,如何指定該全局數組變量存儲地址的對齊方式
    發表于 02-19 07:37

    TC275如何將指定變量放在指定地址中?

    如何在代碼中以及Lcf_Gnuc.lsl如何修改,能夠某個變量放在指定地址中,能否給個示例
    發表于 02-06 08:08

    如何將TC1798器件添加到MDK KEIL

    我正在嘗試使用 KEIL MDK(μVision)為英飛凌TC1798編程,但我不確定如何將TC1798器件添加到MDK KEIL。 誰能幫
    發表于 02-01 08:18

    softune如何把一個變量定義指定RAM地址

    你好,請問如何把一個變量定義指定RAM地址? 例如把 i 變量定義 RAM
    發表于 01-18 10:48

    KEIL中使用C對M0編程時怎樣對函數指定地址呢?

    KEIL中使用C對M0編程時怎樣對函數指定地址呢?對變量和常數的定位沒問題,就是函數總搞不好。謝謝。
    發表于 01-18 07:14