精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

程序本身如何知道自身大小?這是雞生蛋還是蛋生雞的問題

開發 前端
一般來說,const 聲明的函數將放在 RO-data 區。全局(或局部靜態)未進行初始化(或初始化為0)的變量放在 ZI-data 區,當然棧(stack)也會放在 ZI-data。

 [[351056]]

本文轉載自微信公眾號「魚鷹談單片機」,作者魚鷹Osprey。轉載本文請聯系魚鷹談單片機公眾號。

有些情況下,我們可能需要知道程序本身占用的空間大小,一般來說,我們可以從編譯結果中看到我們的程序到底有多大(不包含 ZI-data 部分):

還可以通過生成的bin文件大小來查看,這個 bin 文件就是不需要經過任何轉化直接燒錄到 flash 的數據,當然它也不包含 ZI-data,因為它初始化全是 0,只需要在程序開始時清零即可(該工作由庫函數自動幫你完成),沒必要保存到 flash中浪費空間。

Bin 文件生成方法(fromelf --bin !L --output hello.bin):

我們可以看一看這些數據的空間分布:

一般來說,const 聲明的函數將放在 RO-data 區。全局(或局部靜態)未進行初始化(或初始化為0)的變量放在 ZI-data 區,當然棧(stack)也會放在 ZI-data。

MDK的編譯器為我們提供了一些內置變量,這些變量是由編譯鏈接之后自動生成的,我們可以直接在程序中獲取,那么有哪些變量,又該如何獲取呢?

據魚鷹了解,MDK 內置了如下變量(有些變量在有些情況下表示相同值):

  1. Image$$ER_IROM1$$Base; 
  2. Image$$ER_IROM1$$Limit; 
  3. Image$$ER_IROM1$$Length;   // 獲取總大小 
  4.  
  5. Load$$LR$$LR_IROM1$$Limit; // 這個和上面的效果一樣 
  6.  
  7. Image$$ER_IROM1$$RO$$Limit;  // 這個和上面的效果一樣 
  8.  
  9. Image$$RW_IRAM1$$Base; 
  10. Image$$RW_IRAM1$$Limit; 
  11. Image$$RW_IRAM1$$Length; 
  12.  
  13. Image$$RW_IRAM1$$ZI$$Base; 
  14. Image$$RW_IRAM1$$ZI$$Limit; 
  15. Image$$RW_IRAM1$$ZI$$Length; 

Image$$ER_IROM1$$Length 對應于 Code + RO Data 的大小,而 base 和 limit 為這段空間的起始和結束地址。

Image$$RW_IRAM1$$Length 對應于 RW-Data 的大小,而 base 和 limit 為這段空間的起始和結束地址。

Image$$RW_IRAM1$$ZI$$Length 對應于 ZI-Data(包括STACK) 的大小,而 base 和 limit 為這段空間的起始和結束地址。

那么我們該如何使用這些變量呢?下面魚鷹提供C語言和匯編兩個版本:

  1. // C語言 
  2. extern int Image$$ER_IROM1$$Base; 
  3.  
  4. unsigned int base = (uint32_t)&Image$$ER_IROM1$$Base 
  5.  
  6. ; 匯編   
  7. IMPORT |Image$$ER_IROM1$$RO$$Base| 
  8. IMPORT |Image$$ER_IROM1$$RO$$Limit| 
  9.  
  10. IMPORT |Image$$RW_IRAM1$$RW$$Base| 
  11. IMPORT |Image$$RW_IRAM1$$RW$$Limit| 
  12.  
  13. IMPORT |Image$$RW_IRAM1$$ZI$$Base| 
  14. IMPORT |Image$$RW_IRAM1$$ZI$$Limit| 

首先使用 extern 關鍵聲明這個外部變量,int 類型。

但是你通過它的使用方式你會發現,這個變量是不可以直接使用的,需要把對它進行取地址,而它的地址才是你想要的數據。

事實上,這些內置變量本身是不占用空間的的,和用戶聲明的變量是不同的。

我們可以這樣理解,這些變量存放在某個地址空間,這個地址就是它要表示的值(含義),但因為它的特殊性,所以它不占用空間,只能采用取地址的方式獲取它代表的值。

通過這些內置變量,原本我們計算 Code + RO-data + RW-Data 的值就可以得到 bin 文件的大小,但當你查看 bin 文件大小之后,你會發現 bin 文件小于該值,這是怎么回事?

通過分析 map 文件我們可以看到如下信息:

你會發現,實際的bin文件包含的 RW 數據大小并不是 372,而是 56,也就是說,有一部分數據并沒有被包含進 bin 文件用于拷貝(可能和 RW 的數據有部分初始值為 0 有關而被壓縮了)。

具體原因,魚鷹也沒搞懂,但是按照之前的變量來看,我們無法準確獲得 bin 文件的大小,只能說獲取到一個比 bin 文件大小稍大的數字。

原本以為魚鷹不可能獲得準確的 bin 文件大小了,一個偶然的map文件查看,讓魚鷹看到了這么個變量:

好奇的魚鷹對它進行了比較深入的研究,發現我需要的bin文件(程序)大小就隱藏在這里。

通過分析,魚鷹發現這個地址包含的8個數據含義如下:

通過圖中數據,減去flash 的基地址,我們就可以獲取到 0x2FE8,即我們 bin 文件實際大小。

而另外兩個函數地址,原本魚鷹并不知道這些值是干什么用的,還是通過分析 map 文件,才最終確認是兩個函數的地址,至于到底干什么用的,魚鷹就不是很清楚的,不過看名字也知道應該和變量初始化有關系。

以上就是魚鷹分享的關于程序本身獲取自身大小的知識點,至于你用這些數據干啥用那就是你的事情了。

原本魚鷹是準備獲取到bin的大小后通過指定地址的方式在bin文件最后放一些數據的,但是這就真的變成雞生蛋蛋生雞的問題了,看來通過內置變量的方式是不行了,不知道各位道友有沒有好的方法讓編譯器自動在 bin 文件的后面添加想要的數據呢(非第三方工具)?

 

責任編輯:武曉燕 來源: 魚鷹談單片機
相關推薦

2018-08-23 05:07:36

神經架構深度學習神經網絡

2010-04-30 16:08:20

Unix內核

2020-10-19 14:05:50

芯片芯片人才芯片行業

2025-01-16 08:50:33

2020-10-26 11:33:45

編程語言編譯器軟件

2013-07-22 10:35:32

用戶需求技術創新產品

2016-11-02 00:22:13

數字化改造數字化

2019-11-26 09:21:49

區塊鏈比特幣虛擬貨幣

2012-06-18 15:21:38

Facebook競價廣告

2018-09-27 10:26:12

物聯網

2018-10-17 09:25:22

2020-04-21 15:54:07

戴爾

2022-04-07 09:29:04

文件系統硬盤操作系統

2012-08-07 09:29:09

程序員編程

2019-11-07 22:00:22

程序員代碼規范

2019-09-29 10:45:46

C語言CPU編譯器

2013-04-12 02:01:55

微信公眾平臺接口開發

2025-10-27 05:00:00

C語言CPUUnix

2018-12-11 14:07:44

Python分析游戲
點贊
收藏

51CTO技術棧公眾號

爱福利在线视频| 国产av无码专区亚洲av麻豆| 九九热爱视频精品视频| 色老综合老女人久久久| 婷婷亚洲婷婷综合色香五月| 一级黄色片免费| 亚洲小说欧美另类社区| 亚洲欧美日韩精品久久奇米色影视| 黄色三级视频片| aa在线视频| 久久只精品国产| 欧美日韩精品一区二区三区四区 | 麻豆理论在线观看| 中文字幕久久午夜不卡| 99久re热视频这里只有精品6| 这里只有久久精品| 精品国产亚洲一区二区三区在线| 精品国产精品自拍| 黄瓜视频免费观看在线观看www | 日韩免费视频一区二区视频在线观看| 欧美欧美黄在线二区| 日韩欧美一区二区视频| 成人性做爰aaa片免费看不忠| 嫩草香蕉在线91一二三区| 不卡的av网站| 91黄色国产视频| 中文亚洲av片在线观看| 国产农村妇女毛片精品久久莱园子 | 三级网站在线看| 精品伊人久久| 日本韩国欧美在线| 久久国产精品视频在线观看| 欧美videos极品另类| 26uuu另类欧美| 99久热re在线精品996热视频| 亚洲 国产 日韩 欧美| 外国成人在线视频| 精品日韩一区二区三区免费视频| 亚洲色图 在线视频| 欧美一级大片| 欧美日韩国产中文精品字幕自在自线| 最近免费观看高清韩国日本大全| 中文字幕在线播放| 国产人妖乱国产精品人妖| 国内成+人亚洲| 亚洲欧美激情另类| 国产91丝袜在线播放九色| 成人黄色av网站| 做爰无遮挡三级| 日韩av在线播放中文字幕| 青青草成人在线| 欧美日韩精品区| 国产欧美日韩综合一区在线播放 | 日韩av网站导航| 国产午夜在线一区二区三区| 91精品入口| 亚洲成色999久久网站| 亚洲精品无码一区二区| 岛国av一区| 亚洲激情在线观看| 国产艳俗歌舞表演hd| 裤袜国产欧美精品一区| 黑人巨大精品欧美一区二区一视频 | 在线观看亚洲国产| 日本va欧美va瓶| 国产精品久久不能| 懂色av蜜臀av粉嫩av喷吹| 奇米888四色在线精品| 国产久一一精品| 国产免费一区二区三区最新不卡| 欧美日韩亚洲一区在线观看| 日韩有码在线播放| 欧美国产日韩在线观看成人| 欧美日韩蜜桃| 97在线看福利| 久久久久亚洲视频| 久久er精品视频| 91久色国产| 特黄视频在线观看| 国产日韩欧美高清| 99免费在线观看视频| 亚洲精品国偷拍自产在线观看蜜桃 | 18视频在线观看| 一区二区三区不卡视频| 给我免费播放片在线观看| 一个人看的www视频在线免费观看| 黄色成人av在线| 国产理论在线播放| 欧美特黄不卡| 亚洲精品日韩丝袜精品| 天堂网av2018| 亚洲伦理一区| 国产综合久久久久久| 开心激情综合网| 国产日本亚洲高清| 被灌满精子的波多野结衣| 欧美日韩电影免费看| 欧美一区二区三级| 中文人妻一区二区三区| 午夜激情久久| 国产一区二区三区在线观看视频 | 成人福利在线观看| 色呦呦中文字幕| 国产精品大尺度| 大肉大捧一进一出好爽视频| 伊人久久一区| 亚洲欧美日本另类| 久草视频在线资源站| 日韩专区中文字幕一区二区| y111111国产精品久久婷婷| 国产亚洲依依| 亚洲成av人片在线观看无码| 九九热99视频| 免费毛片在线不卡| 久久久免费在线观看| 一区二区日韩视频| 久久品道一品道久久精品| 91传媒免费视频| 外国成人毛片| 国产一级揄自揄精品视频| 国产在线观看99| 国产精品一区二区久久精品爱涩 | 亚洲男女av一区二区| 奇米成人av国产一区二区三区| 国产wwwxxx| 国产精品久久一级| 日韩欧美视频一区二区三区四区| 午夜在线视频免费| 91亚洲国产成人精品一区二三| 一区二区欧美日韩| 日韩av超清在线观看| 日韩高清中文字幕| 日本一级淫片色费放| 国产高清精品久久久久| 青少年xxxxx性开放hg| 99久久伊人| 亚洲天堂男人天堂女人天堂| 少妇一级淫片免费放中国| 丁香天五香天堂综合| 麻豆md0077饥渴少妇| 色综合视频一区二区三区日韩| 亚洲天堂第二页| 欧美h在线观看| 91女人视频在线观看| 91成人在线观看喷潮教学| 成人动态视频| 国模极品一区二区三区| 欧美自拍第一页| 午夜在线电影亚洲一区| 污污污www精品国产网站| 伊人久久综合| 国产美女精品久久久| 好久没做在线观看| 亚洲二区在线播放视频| 在线观看国产亚洲| 91蜜桃婷婷狠狠久久综合9色| 亚洲熟妇av一区二区三区漫画| 色狠狠久久av综合| 国产成人精品久久二区二区| 久久经典视频| 欧美日韩在线综合| 中文字幕电影av| 国产99久久久国产精品潘金| www.亚洲成人网| 久久免费视频66| 日本韩国在线不卡| av在线播放网| 亚洲午夜电影在线| 熟女丰满老熟女熟妇| 久久婷婷激情| 中文字幕在线亚洲精品| 精品视频一区二区三区在线观看| 久久99青青精品免费观看| 亚洲免费成人网| 色欧美片视频在线观看| www.黄色com| 国产白丝精品91爽爽久久| 国产极品尤物在线| 成人精品电影| 91国产在线播放| 久久uomeier| 久久综合亚洲社区| 性xxxxbbbb| 欧美日韩一区国产| 欧美日韩中文视频| 国产欧美精品国产国产专区| 久久久久久综合网| 成人在线亚洲| 成人午夜电影免费在线观看| 色偷偷色偷偷色偷偷在线视频| 一区二区亚洲欧洲国产日韩| 999av视频| 欧美性色视频在线| 裸体武打性艳史| 久久久亚洲精品一区二区三区| 九九精品久久久| 亚洲专区欧美专区| 国产一区自拍视频| 日韩有码欧美| 欧美一级片久久久久久久| 黄页视频在线播放| 亚洲免费精彩视频| 精品乱子伦一区二区| 在线看不卡av| 国产精品第九页| 国产精品成人免费| 国产av自拍一区| 国产成人av电影在线播放| 不卡av免费在线| 一本久道久久久| a级片一区二区| 青青草91久久久久久久久| 国产亚洲欧美一区二区三区| 亚洲国产伊人| 国产精品h在线观看| 波多野结衣乳巨码无在线观看| 在线电影av不卡网址| 天天操天天射天天| 日韩欧美激情四射| 一道本在线视频| 在线观看亚洲精品| av中文在线播放| 亚洲国产sm捆绑调教视频| 成人免费精品动漫网站| 久久久亚洲国产美女国产盗摄| 第一页在线视频| 国产尤物一区二区| 国产精品区在线| 蜜臀va亚洲va欧美va天堂| 欧美黄网站在线观看| 亚洲国产美女| 日韩精品在线中文字幕| 欧美在线免费| 国产又大又长又粗又黄| 久久免费大视频| 亚洲精品一品区二品区三品区| 猛男gaygay欧美视频| 精品一区二区三区视频日产| 国产成人精品亚洲线观看| 波多野结衣久草一区| 深夜激情久久| 91在线观看网站| 欧洲精品99毛片免费高清观看 | 久久网站热最新地址| 人妖粗暴刺激videos呻吟| 成人在线视频一区二区| 精品伦一区二区三区| 高清国产一区二区| 97中文字幕在线观看| 成人av免费在线观看| 免费的av网站| 久久伊99综合婷婷久久伊| 日韩av在线看免费观看| 久久久精品黄色| 天堂资源在线视频| 亚洲天堂精品在线观看| 欧美激情精品久久| 亚洲电影中文字幕在线观看| 国产无遮挡aaa片爽爽| 精品日韩视频在线观看| 久久久黄色大片| 欧美午夜不卡在线观看免费| 日韩一级片av| 亚洲综合久久久| 日韩欧美三级视频| 日本国产一区二区| 一区二区不卡视频在线观看| 日韩视频永久免费| 免费看日韩av| 亚洲欧美一区二区三区在线| 成年网站在线| 操91在线视频| 黄色aa久久| 国产精品美女网站| 国产亚洲成av人片在线观看| 欧美专区中文字幕| 国产精品传媒麻豆hd| 99re视频| 国产免费av一区二区三区| 亚洲视频精品一区| 国内视频精品| 中文字幕无码不卡免费视频| 久久99精品国产麻豆婷婷| 欧美激情 亚洲| 国产欧美一区视频| 久草免费在线视频观看| 91国偷自产一区二区开放时间| 国产精品污视频| 欧美日韩免费高清一区色橹橹 | h片在线观看下载| 日韩av电影在线网| 国产精品xnxxcom| 欧美日韩国产免费一区二区三区| 99久久精品国产亚洲精品 | 精品国产精品一区二区夜夜嗨| 日韩欧美在线观看一区二区| 日韩一区二区三区在线播放| heyzo在线欧美播放| 国产精品一区二区三| 黄色免费大全亚洲| 中文字幕日韩精品久久| 新67194成人永久网站| 日本高清免费在线视频| 91免费观看国产| 国产小视频在线观看免费| 欧美色男人天堂| 天堂av手机版| 欧美成人手机在线| 国产精品毛片久久久久久久久久99999999| 97久草视频| 欧美oldwomenvideos| 免费无码av片在线观看| 国产99精品在线观看| 天堂а√在线中文在线鲁大师| 欧美日韩激情小视频| 精品二区在线观看| xxxxx成人.com| 日韩成人动漫| 久久精品国产精品青草色艺| 午夜日韩av| 国产乱叫456| 中文无字幕一区二区三区| 偷偷操不一样的久久| 精品久久国产老人久久综合| 黄色网页在线观看| 国产精品中文字幕在线观看| 国产成人手机高清在线观看网站| 久久成人福利视频| 成人精品视频一区二区三区| 三上悠亚在线观看视频| 欧美日韩一区三区| av网站在线免费播放| 国产精品9999| 精品72久久久久中文字幕| 精品乱色一区二区中文字幕| 欧美成人综合| 久久精品无码一区二区三区毛片 | 欧美丰满艳妇bbwbbw| 欧美日韩精品一区二区三区蜜桃 | 1000部国产精品成人观看| 免费观看特级毛片| 欧美在线小视频| 91视频在线观看| 国产精品久久久久久久久久尿 | 台湾天天综合人成在线| 一区二区三区四区在线视频| 免费看欧美美女黄的网站| 国产精品美女高潮无套| 欧美三级视频在线观看| 色综合久久久久综合一本到桃花网| 国产精品女主播| 日韩欧美高清| 中文字幕66页| 亚洲男同1069视频| 亚洲福利在线观看视频| 欧美激情欧美激情| 三级成人黄色影院| 日韩国产美国| 久久99国产精品久久99果冻传媒| 少妇高潮惨叫久久久久| 欧美一级一级性生活免费录像| 伊人精品影院| 国产另类自拍| 视频一区国产视频| 欧美一区二区三区观看| 欧美一区二区三区免费观看视频| 三级资源在线| 久久av免费一区| 日本亚洲欧美天堂免费| 欧洲美女女同性互添| 欧美不卡一区二区三区四区| 九色porny自拍视频在线播放| 欧美一区免费视频| 在线观看日韩av电影| 国产肉体xxxx裸体784大胆| 色婷婷综合激情| 欧美成人hd| 黑人另类av| 日本不卡免费在线视频| 国产精品视频一区二区三| 亚洲国模精品一区| 日本国产欧美| www.在线观看av| 国产日产欧美一区二区视频| 国产农村妇女毛片精品久久| 久久久噜噜噜久久中文字免| 精品精品久久| 国产成人av免费观看| 色综合久久久久网| caoporm免费视频在线| 久久久久久久久久久一区| 久久爱www久久做| 国产欧美日韩另类| 日韩在线观看你懂的| 久久精品66| 亚洲高清在线不卡| 好吊成人免视频| 青草在线视频| a级国产乱理论片在线观看99| 亚洲综合国产|