變量是程序中重要的一部分,產(chǎn)品中很多業(yè)務(wù)代碼都是變量起到了關(guān)鍵作用。
傳感器采集的數(shù)據(jù)、通信中傳輸?shù)臄?shù)據(jù)、算法中的數(shù)據(jù)等這些數(shù)據(jù)都需要借助變量這個(gè)東西來實(shí)現(xiàn)。
我們?yōu)槭裁匆獙⒆兞俊?shù)組(例如表或函數(shù))存儲(chǔ)到特定的地址?
因?yàn)橛行┨厥獾臄?shù)據(jù)可能需要指定地址,比如加密的密鑰、校驗(yàn)和等這些數(shù)據(jù)可能需要存儲(chǔ)在指定內(nèi)存。
1
變量查看工具
在描述將變量儲(chǔ)存在指定內(nèi)存地址之前,我們先來描述一下查看變量的工具(通過工具可以查看變量的值)
1.STMStudio
之前給大家分享過《STM Studio調(diào)試和診斷工具講解》。
這里簡單說一下STMStudio與本文相關(guān)的內(nèi)容:變量。
STMStudio可管理四種變量:
1.由物理存儲(chǔ)地址標(biāo)識(shí)的絕對(duì)變量。
2.能夠計(jì)算絕對(duì)變量的最小值、最大值、平均值和標(biāo)準(zhǔn)差等值的統(tǒng)計(jì)變量。
3.表達(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ì)值。
4.包含用戶可配置信息的插件變量。
(為了節(jié)約時(shí)間,使用有道翻譯的句子,大家請(qǐng)結(jié)合原文理解)
可以看得出來,局部變量是不支持的。
2.J-Scope
這個(gè)STMStudio工具和J-Scope有類似之處,也能查看變量、波形:
J-Scope也是一個(gè)不錯(cuò)的工具,大家可以下載安裝試試:
https://www.segger.com/products/debug-probes/j-link/tools/j-scope
2
Keil MDK如何將變量存儲(chǔ)在指定內(nèi)存地址?
不同的編譯器,實(shí)現(xiàn)的方法可能不同,這里主要結(jié)合MDK說下基于AC5和AC6編譯,簡述其中的方法。
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ì)大家有幫助。
責(zé)任編輯:lq
-
編譯器
+關(guān)注
關(guān)注
1文章
1656瀏覽量
49908 -
變量
+關(guān)注
關(guān)注
0文章
614瀏覽量
28831 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26379
原文標(biāo)題:Keil MDK如何將變量存儲(chǔ)在指定內(nèi)存地址
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在starvision2上移植FreeRTOS,objdump后發(fā)現(xiàn)static變量的地址是0,怎么解決?
RTOS中的本地存儲(chǔ)指針使用

數(shù)組的下標(biāo)為什么可以是負(fù)數(shù)
從輸入IP地址到生成街道級(jí)的地理位置,有哪些“看不見”的步驟?

指針數(shù)組和二維數(shù)組有沒有區(qū)別
C語言數(shù)組應(yīng)用計(jì)算機(jī)導(dǎo)論A第6講:數(shù)組
如何在KEIL軟件中將變量定義在特定的RAM空間中
物聯(lián)網(wǎng)行業(yè)中小型嵌入式文件系統(tǒng)詳解以及使用

C語言指針詳細(xì)解析
必知!如何有效保護(hù)你的IP地址
EEPROM的地址怎么確定
labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組
公共 IP 地址前綴如何進(jìn)行網(wǎng)絡(luò)資源配置?

評(píng)論