精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

99精品国自产在线| 六月婷婷中文字幕| 99精品视频精品精品视频| 欧美日韩国产另类一区| 免费久久久久久| 高h放荡受浪受bl| 亚洲欧美视频| 不卡伊人av在线播放| 9.1在线观看免费| 色尼玛亚洲综合影院| 中文字幕亚洲一区二区va在线| 91视频免费进入| 羞羞影院体验区| 日韩精品诱惑一区?区三区| 欧美一区二区三区视频| 免费看又黄又无码的网站| 色多多视频在线观看| 国产成人综合精品三级| 日本最新高清不卡中文字幕| 欧美一级特黄高清视频| 露出调教综合另类| 欧美日韩精品是欧美日韩精品| 国产精品一线二线三线| 成年人视频网站在线| 国产成人在线影院 | 国产一级淫片久久久片a级| 亚洲电影一区| 欧美色图片你懂的| 国产一区二区网| 国产丝袜在线| 国产欧美日韩精品一区| 久久精品aaaaaa毛片| 国产日韩欧美一区二区东京热| 久久精品道一区二区三区| 欧美成人免费小视频| 免费看日本黄色片| 精品日产乱码久久久久久仙踪林| 欧美男同性恋视频网站| 99草草国产熟女视频在线| 乱插在线www| 最近日韩中文字幕| 日韩精品一区二区三区四区五区| 亚洲精品久久久久久久久久久久久久| 久久精品国产久精国产| 日本伊人精品一区二区三区介绍| 精品成人久久久| 欧美精品国产一区| 久久久国产精品亚洲一区| a资源在线观看| 蜜乳av综合| 日韩电影中文字幕在线| 国产白袜脚足j棉袜在线观看| 色狠狠一区二区三区| 欧美性xxxxxx少妇| 激情综合网俺也去| 最新日韩三级| 在线观看三级视频欧美| 国产精品涩涩涩视频网站| 欧美大片1688| 在线免费观看成人短视频| 中文字幕无码不卡免费视频| 亚洲天堂一区二区| 欧美在线|欧美| 中文字幕永久视频| 懂色aⅴ精品一区二区三区| 欧美亚洲综合另类| 不卡的av中文字幕| 一区在线不卡| 欧美一级理论片| 制服丝袜在线第一页| 欧美人妖视频| 亚洲一级免费视频| 亚洲国产精品一区二区久久hs| 91久久国产| 久久久久久久久久国产| 日本三级小视频| 久久久蜜桃一区二区人| 国产精品9999| 国产喷水福利在线视频| 国内国产精品久久| 99在线观看视频| 亚洲爱爱综合网| 福利一区在线观看| 国产精品自产拍在线观| 国产jzjzjz丝袜老师水多| 国产乱码精品一区二区三区忘忧草 | 一级中文字幕一区二区| 欧美 亚洲 视频| 国产蜜臀在线| 天天色综合成人网| 成年网站在线播放| 国产资源一区| 欧美日韩国产三级| 日本高清一区二区视频| 精品国产亚洲一区二区三区在线| 日韩一区二区三区在线| 国产ts在线观看| 老牛影视av一区二区在线观看| 亚洲精品wwwww| 中文字幕一区二区三区人妻电影| 国产欧美一区| 久久亚洲精品小早川怜子66| 午夜少妇久久久久久久久| 亚洲性感美女99在线| 欧美又大粗又爽又黄大片视频| 五月婷婷色丁香| 日韩电影在线观看网站| 91中文字幕在线| 高h放荡受浪受bl| 中文字幕日韩av资源站| 男人添女荫道口喷水视频| 亚洲日本天堂| 欧美日本乱大交xxxxx| 欧美xxxx黑人| 国产aⅴ精品一区二区三区久久| 视频在线观看99| 精品一区二区三区人妻| 视频一区欧美精品| 国产精品欧美风情| 国产精品久久久久久无人区| 成人av电影在线网| 亚洲一区二区不卡视频| 欧美人与性动交α欧美精品济南到| 午夜精品123| www.欧美日本| 99精品在免费线中文字幕网站一区 | 青草视频在线观看视频| 快播电影网址老女人久久| 欧美一区二区三区日韩视频| 成人国产精品久久久网站| 99精品电影| 欧美一区二区三区精品电影| 国产农村老头老太视频| 久久综合av免费| 超碰97在线看| 成人自拍视频网| 亚洲成人在线视频播放| 任你操精品视频| 男女精品视频| 精品无人区一区二区三区竹菊 | 久久九九99视频| 国产在线视频综合| 成人在线观看免费视频| 日韩久久免费电影| 久久精品www人人爽人人| 免费在线观看日韩欧美| 久久国产日韩欧美| 9999在线视频| 欧美中文字幕久久| 国产成人一区二区在线观看| 亚洲欧洲一区| 147欧美人体大胆444| 在线观看免费版| 色哟哟国产精品| 香蕉网在线播放| 亚洲激情二区| 动漫3d精品一区二区三区| 国产黄在线观看免费观看不卡| 日本道在线观看一区二区| 精品一区二区视频在线观看| 欧美freesex交免费视频| 国产欧美一区二区三区四区| 国产精品一区二区三区四区色| 黄色成人在线播放| 99精品一区二区三区无码吞精 | 亚洲国产精品综合| 欧美天堂视频| 亚洲美女在线观看| 久久99精品波多结衣一区| 成人av在线一区二区| 成人免费看片'免费看| 欧美成人精品一级| 欧美夫妻性视频| 亚洲av少妇一区二区在线观看| 亚洲人吸女人奶水| 日韩av福利在线观看| 亚洲国产精品91| 91在线视频精品| 午夜av在线播放| 精品国精品自拍自在线| 国产精品美女毛片真酒店| 成人免费高清在线| 亚洲中文字幕无码专区| 欧美猛男同性videos| 国产精品极品美女在线观看免费| 都市激情一区| 日韩一卡二卡三卡国产欧美| 国产第一页在线播放| 99精品国产视频| 97超碰青青草| 久操国产精品| 成人激情综合网| 色黄网站在线观看| 亚洲精品999| 91亚洲国产成人久久精品麻豆| 亚洲婷婷综合色高清在线| 免费观看黄网站| 一区二区国产精品| 日韩精品久久一区| vam成人资源在线观看| 欧美日本在线视频中文字字幕| 亚洲av无码专区在线| 一本色道综合亚洲| 天堂а√在线中文在线鲁大师| 国产精品69久久久久水密桃| www在线观看免费| 欧美偷拍自拍| 国产91免费视频| 亚洲天堂1区| 久久伊人精品一区二区三区| 日本成人一区| 91精品欧美福利在线观看| 亚洲区一区二区| 日韩国产成人无码av毛片| 成人爽a毛片免费啪啪红桃视频| 国语自产精品视频在线看一大j8| 三级在线播放| 91麻豆精品国产自产在线| 懂色av.com| 国产精品视频一二| 韩国三级在线看| 久久综合网络一区二区| 美女黄色片网站| 亚洲视频国产| 国产精品久久9| 老司机深夜福利在线观看| 久久精品男人天堂| 国产精品国产高清国产| 91精品午夜视频| 国产又黄又粗又爽| 亚洲免费高清视频在线| 丰满圆润老女人hd| 国产精品911| 欧美在线aaa| 丝袜诱惑亚洲看片| www成人免费| 久久精品高清| 欧美亚洲另类久久综合| 成人资源在线| 国产精品自产拍高潮在线观看| 电影亚洲精品噜噜在线观看| 欧美精品福利在线| 国产在线高清视频| 国产亚洲精品成人av久久ww| 欧洲精品久久一区二区| 91精品国产色综合久久ai换脸| 青青草免费观看视频| 精品欧美激情精品一区| 美女视频黄免费| 国产精品福利在线播放| 性欧美成人播放77777| 国产成人在线影院| 香蕉视频xxxx| 国产精品自产自拍| 激情文学亚洲色图| 人人精品人人爱| 日本三区在线观看| 久久精品一区二区国产| 免费国产a级片| 亚洲区综合中文字幕日日| 91制片厂免费观看| 欧美国产美女| 一区二区视频在线播放| 精品久久影视| 欧洲一区二区在线观看| 伊人春色之综合网| 国产精品日韩高清| av不卡一区| 国产精品国产精品| silk一区二区三区精品视频| 亚洲最大福利视频网| 国产999精品在线观看| 国产aⅴ夜夜欢一区二区三区| 亚洲成人va| 国产精品偷伦一区二区| 99久久精品一区二区成人| 国产精品激情自拍| 九九九精品视频| 91久久精品国产91久久性色| 国产一区二区av在线| 99九九电视剧免费观看| 日韩成人在线电影| 成人av影视在线| 好吊妞视频这里有精品| 久久久久久久久久久久久久久久av| 露出调教综合另类| 欧洲国产精品| 精品国产一区探花在线观看| 中文字幕日韩一区二区三区| 在线成人直播| 久久99中文字幕| av成人毛片| 国产精品亚洲a| 另类专区欧美蜜桃臀第一页| 亚洲图片欧美另类| 久久久久久影视| 美国一级黄色录像| 亚洲精品自拍动漫在线| 国产午夜精品一区二区理论影院 | 欧美中文在线观看| jizz内谢中国亚洲jizz| 91精品国产自产在线观看永久| 91精品网站在线观看| 99re视频在线播放| 欧美色图婷婷| 一区二区免费在线视频| 欧美日韩亚洲国产精品| 亚洲成人av免费看| 国产精品一区二区在线播放| 水蜜桃av无码| 亚洲欧洲日韩在线| 日韩精品视频播放| 欧美午夜精品久久久久久超碰| 欧美天堂在线视频| 在线日韩精品视频| 国产探花视频在线观看| 国产成人av网址| 亚洲精品午夜| 日韩欧美亚洲精品| 亚洲一级二级| 亚洲36d大奶网| av色综合久久天堂av综合| 毛片久久久久久| 亚洲午夜电影在线| 中文字幕一区在线播放| 欧美日韩国产一级片| 亚洲AV成人无码一二三区在线| 久久精品国产亚洲精品| 亚洲精品永久免费视频| 精品国产免费久久久久久尖叫| 国产精品videosex性欧美| 免费黄色福利视频| 国产.欧美.日韩| 国产18无套直看片| 婷婷久久综合九色国产成人| 国产精品国产av| 亚洲欧美一区二区三区久久| 天堂av资源在线观看| 国产精品视频26uuu| 日本一区二区三区视频在线看 | 午夜诱惑痒痒网| 国产午夜三级一区二区三| 亚洲国产精品午夜在线观看| 欧美性猛交xxxx黑人交| 国产私拍精品| 欧美在线免费视频| 国产精品主播在线观看| 精品嫩模一区二区三区| 蜜臀av一区二区在线免费观看| 久操视频免费看| 欧美午夜电影在线| 囯产精品一品二区三区| 日韩一区二区福利| 成人亚洲网站| 日本视频一区二区在线观看| 久久精品一区二区国产| 亚洲天堂资源在线| 天天色天天操综合| 天天操天天干天天插| 久久久久久成人精品| 亚洲精品高潮| 天天做天天爱天天高潮| 国产成人av一区二区三区在线| www日韩在线| 91精品国产乱| 中日韩高清电影网| 91网站免费看| 久久精品久久久| 五月天国产视频| 亚洲免费伊人电影| 99热精品在线播放| 久久人91精品久久久久久不卡| 爱爱精品视频| 每日在线更新av| 久久久美女毛片| 国产精品无码AV| 欧美日本在线视频中文字字幕| 天堂精品久久久久| 97中文字幕在线| 波多野结衣在线一区| 国产又粗又猛又爽又| 日韩视频在线免费| 久久精品九色| 99在线观看视频免费| 国产成人精品三级| 天天综合网入口| 中文字幕精品久久| 欧美激情精品| 人妻av中文系列| 欧美国产精品v| 国产成人麻豆精品午夜在线 | 91精品国产99久久久久久红楼| 欧美日韩亚洲一区二区三区在线| 欧美成人午夜精品免费| 欧美色倩网站大全免费| а√中文在线8| 国产欧美日韩在线播放| 麻豆久久一区二区| 深夜福利影院在线观看| 亚洲精品99久久久久中文字幕|