91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

我們?yōu)槭裁匆獙⒆兞?、?shù)組存儲到特定的地址?

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2020-11-01 11:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

變量是程序中重要的一部分,產(chǎn)品中很多業(yè)務(wù)代碼都是變量起到了關(guān)鍵作用。

傳感器采集的數(shù)據(jù)、通信中傳輸?shù)臄?shù)據(jù)、算法中的數(shù)據(jù)等這些數(shù)據(jù)都需要借助變量這個(gè)東西來實(shí)現(xiàn)。

我們?yōu)槭裁匆獙⒆兞?、?shù)組(例如表或函數(shù))存儲到特定的地址?

因?yàn)橛行┨厥獾臄?shù)據(jù)可能需要指定地址,比如加密的密鑰、校驗(yàn)和等這些數(shù)據(jù)可能需要存儲在指定內(nèi)存。

1

變量查看工具

在描述將變量儲存在指定內(nèi)存地址之前,我們先來描述一下查看變量的工具(通過工具可以查看變量的值)

1.STMStudio

之前給大家分享過《STM Studio調(diào)試和診斷工具講解》。

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

STMStudio可管理四種變量:

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

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

3.表達(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ì)值。

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

(為了節(jié)約時(shí)間,使用有道翻譯的句子,大家請結(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如何將變量存儲在指定內(nèi)存地址?

不同的編譯器,實(shí)現(xiàn)的方法可能不同,這里主要結(jié)合MDK說下基于AC5和AC6編譯,簡述其中的方法。

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

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

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

2.針對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)行查看指定地址變量了:

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

責(zé)任編輯:lq

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51754
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    616

    瀏覽量

    29532
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    27397

原文標(biāo)題:Keil MDK如何將變量存儲在指定內(nèi)存地址

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    飛凌嵌入式ElfBoard-環(huán)境變量之獲取環(huán)境變量

    (\"SHELL\") 獲取名為 SHELL 的環(huán)境變量的值,并將返回值存儲 env 變量中,如果存在,返回該變量的值(類型為 char*
    發(fā)表于 03-13 08:50

    容易造成單片機(jī)內(nèi)存溢出的幾個(gè)陷阱介紹

    的時(shí)候非常容易出現(xiàn)棧溢出。平常我們程序里不可避免的會調(diào)用一些函數(shù),所以我們調(diào)用一些函數(shù)的時(shí)候最好不要有深層次的調(diào)用,因?yàn)樵谡{(diào)用函數(shù)的過程中棧區(qū)會不停的存儲函數(shù)相關(guān)的一些變量和一些
    發(fā)表于 01-23 07:25

    C語言訪問某特定內(nèi)存位置

    嵌入式系統(tǒng)經(jīng)常具有要求程序員去訪問某特定的內(nèi)存位置的特點(diǎn)。在某工程中,要求設(shè)置一絕對地址為0x67a9的整型變量的值為0xaa66。編譯器是一個(gè)純粹的ANSI編譯器。寫代碼去完成這一任務(wù)。 考察點(diǎn)
    發(fā)表于 12-22 15:42

    瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南之定義傳輸源和目標(biāo)存儲

    首先,要使用DMA傳輸,就肯定要有一個(gè)源地址和一個(gè)目標(biāo)地址,這里我們定義SRC_Buffer數(shù)組的首地址作為源
    的頭像 發(fā)表于 12-15 11:09 ?4201次閱讀
    瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南之定義傳輸源和目標(biāo)<b class='flag-5'>存儲</b>器

    字符串關(guān)聯(lián)數(shù)字變量如何使用?我們地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?

    字符串關(guān)聯(lián)數(shù)字變量如何使用?我們地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?
    發(fā)表于 12-15 08:24

    C語言全局變量重點(diǎn)使用

    重要的循環(huán)中我們不建議使用全局變量。 如果函數(shù)過多的使用全局變量,比較好的做法是拷貝全局變量的值局部
    發(fā)表于 12-12 06:58

    第7章 變量進(jìn)階與點(diǎn)陣LED(7.1 7.2)

    知識——變量的作用域和存儲類別。 7.1變量的作用域 所謂的作用域就是指變量起作用的范圍,也是變量的有效范圍。
    的頭像 發(fā)表于 12-10 16:25 ?390次閱讀

    使用直接尋址方式提高速度

    允許編譯器生成更高效的代碼,因?yàn)樵L問變量時(shí)不需要額外的地址計(jì)算。這樣可以減少指令周期,提高執(zhí)行速度。直接尋址通常用于內(nèi)存限制較小的存儲區(qū)域,如8051微控制器的內(nèi)部數(shù)據(jù)存儲區(qū)(通常為1
    發(fā)表于 12-04 06:28

    Stack棧到底用來干嘛的呢?

    在函數(shù)的局部變量數(shù)組這些不能超過1K(含嵌套的函數(shù)),否則程序就會崩潰進(jìn)入hardfaul。 除了這些局部變量以外,還有一些實(shí)時(shí)操作系統(tǒng)的現(xiàn)場保護(hù)、返回地址都是
    發(fā)表于 12-01 08:04

    數(shù)組的初體驗(yàn)

    袋中的物品是按一定順序放置的。 1.我們來看一下如何聲明一個(gè)數(shù)組: 數(shù)據(jù)類型 數(shù)組名稱[長度]; 數(shù)組只聲明也不行啊,看一下數(shù)組是如何初
    發(fā)表于 11-25 08:06

    二維數(shù)組介紹

    的: 123456789 和一維數(shù)組沒有什么區(qū)別,都是一維線性排列。 當(dāng)我們像 array[1][1]這樣去訪問的時(shí)候,編譯器會怎么去計(jì)算我們真正所訪問元素的地址呢? 為了
    發(fā)表于 11-25 07:42

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

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

    CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作

    在完成神經(jīng)網(wǎng)絡(luò)量化后,需要將神經(jīng)網(wǎng)絡(luò)部署硬件加速器上。首先需要將所有權(quán)重?cái)?shù)據(jù)以及輸入數(shù)據(jù)導(dǎo)入存儲器內(nèi)。 在仿真環(huán)境下,可將其存于一個(gè)文件
    發(fā)表于 10-20 08:00

    .elf 轉(zhuǎn)換成.img 后,如何知道SPI flash 中的變量地址呢?

    我正在使用 cyusb3014。我想知道 C 應(yīng)用程序中變量在 SPI 閃存中的地址。 我在 C 語言中聲明了一個(gè)USB特殊字符串變量,就像 靜態(tài) uint_8 abcDscr[256]; 我可以在
    發(fā)表于 07-18 07:44

    NXP MCU RT1166如何使用JTAG/SWD工具將數(shù)據(jù)存儲內(nèi)部閃存中?

    我需要使用 JTAG 將數(shù)據(jù)存儲內(nèi)部閃存中。我能夠使用 JTAG/SWD 工具 ARM J-Link 將它們存儲在 FlexSPI1 連接的外部閃存上,并且可以通過地址0x30000
    發(fā)表于 04-01 06:54