国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

一、回顧STMStudio

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

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

STMStudio可管理四種變量:

?由物理存儲(chǔ)地址標(biāo)識(shí)的絕對(duì)變量。

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

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

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

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

可以看得出來(lái),局部變量是不支持的。

J-Scope

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

J-Scope也是一個(gè)不錯(cuò)的工具,大家可以下載安裝試試:

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

二、回歸主題

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

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

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

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

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

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

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

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

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9552

    瀏覽量

    391835
  • keil
    +關(guān)注

    關(guān)注

    69

    文章

    1230

    瀏覽量

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

    關(guān)注

    4

    文章

    211

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    MDK-ARM平臺(tái)下的fft介紹

    MDK-ARM平臺(tái) #include "arm_math.h" #include &quot
    發(fā)表于 01-22 07:35

    【「Linux 設(shè)備驅(qū)動(dòng)開(kāi)發(fā)(第 2 版)」閱讀體驗(yàn)】+讀深入理解Linux內(nèi)核內(nèi)存分配

    的一部分。也就是說(shuō),ARM架構(gòu)中,MMU是已獲得許可的處理核心的一部分,負(fù)責(zé)每次訪問(wèn)內(nèi)存時(shí)虛擬地址
    發(fā)表于 01-16 20:05

    有新版keil MDK-ARM V5 注冊(cè)機(jī)安裝包不,孩子下載keil卡在許可碼過(guò)期了,救救孩子吧

    有新版keil MDK-ARM V5 注冊(cè)機(jī)安裝包不,孩子下載keil卡在許可碼過(guò)期了,救救孩子吧
    發(fā)表于 01-14 19:37

    LAT1185+一個(gè)地址未對(duì)齊引起的 HardFault 異常應(yīng)用筆記

    ,則程序運(yùn)行正常。表面上看,這似乎是 KEIL MDK 的問(wèn)題,通過(guò)分析,導(dǎo)致這個(gè)問(wèn)題的本質(zhì)原因是內(nèi)存地址沒(méi)有對(duì)齊引起的,下面章節(jié)詳細(xì)分析該問(wèn)題的來(lái)龍去脈以及解決方法。
    發(fā)表于 01-11 17:28 ?0次下載

    聊聊MCU下載算法Keil MDK里的那些事兒

    嗨,嵌入式開(kāi)發(fā)的小伙伴們!用 Keil MDK(μVision)搭配 J-Link 或 DAPLink 調(diào)試器刷代碼到 MCU 的 Flash,是咱們?nèi)粘i_(kāi)發(fā)的老套路了。里面有個(gè)關(guān)鍵
    的頭像 發(fā)表于 12-16 09:30 ?4351次閱讀
    聊聊MCU下載算法<b class='flag-5'>在</b><b class='flag-5'>Keil</b> <b class='flag-5'>MDK</b>里的那些事兒

    不同位數(shù)的CPU的變量所占的內(nèi)存

    不同位數(shù)的CPU(單片機(jī))的變量所占的內(nèi)存也不盡相同,具體如下表所示。 8位16位32位64位 char1 Byte1 Byte1 Byte1 Byte short int2 Byte2 Byte2
    發(fā)表于 12-09 07:30

    Keil5中查看棧大小

    為需要的大小,然后保存并重新編譯工程,新的棧大小即可生效。 2、查看.map文件: 方法說(shuō)明:Keil MDK中編譯工程后,會(huì)生成一個(gè).map文件,該文件包含了內(nèi)存分配和使用的詳細(xì)
    發(fā)表于 11-14 06:32

    CW32 MCU用什么IDE開(kāi)發(fā)?

    推薦使用IAR Embedded Workbench for ARMKeil μVision for ARM等IDE開(kāi)發(fā)CW32 MCU應(yīng)用,其中新版本IAR EWARM直接支持CW32 MCU,
    發(fā)表于 11-12 07:52

    如何將某個(gè)函數(shù)或變量放在固定的地址

    如題,如何將某個(gè)函數(shù)或者變量放在固定的地址?類似于__attribute__( at(絕對(duì)地址) ),用的nucleistudio ide, __attribute__( at(絕對(duì)
    發(fā)表于 11-07 06:07

    請(qǐng)問(wèn)Modus Toolbox下針對(duì)CYW20719B2編程,能否指定全局變量地址

    請(qǐng)問(wèn)Modus Toolbox 下針對(duì)CYW20719B2編程,能否指定全局變量地址
    發(fā)表于 07-08 07:20

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

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

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

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

    指定文件下的函數(shù)加載到指定ram問(wèn)題

    問(wèn)題:mcuxpresso環(huán)境,xip模式下我需要使用flexspinorflash的一部分作為文件系統(tǒng),flex以及fatfs相關(guān)函數(shù)全部加載到ram,發(fā)現(xiàn)rodata仍然flash
    發(fā)表于 03-12 17:02

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

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

    Stm32CubeIDE能像Keil一樣指定不同文件下的代碼編譯到不同的FLASH地址嗎?

    Stm32CubeIDE能像Keil一樣指定不同文件下的代碼編譯到不同的FLASH地址嗎?比如部分代碼存放到內(nèi)部FLASH,另一部分存放到外部QSPI的FLASH中
    發(fā)表于 03-07 08:09