色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用Keil生成bin、匯編、C與匯編混合文件?

Q4MP_gh_c472c21 ? 來源:最后一個bug ? 作者:bug君 ? 2021-03-09 13:59 ? 次閱讀

1、話題引入

在使用Keil集成開發環境中大伙使用頻率高的文件大概就是.hex吧,如果考慮內存布局等會使用到.map文件,如果遇到了疑難bug還會在仿真過程中看一看匯編窗口欄。

然而bin文件作為嵌入式最為直接的固件,同樣也是我們非常需要獲得的文件,比如進行遠程升級等等,一方面可以直接通過其他hex轉bin工具轉化,另一方面通過集成開發環境自帶的功能進行轉化即可。

同樣有時候我們不想通過debug狀態下的匯編欄進行匯編查看,而是想直接分析每個源文件編譯所生成的匯編文件來定位問題和優化性能,集成開發環境能夠有生成匯編文件的功能就再方便不過了。

2、生成bin文件

1、formelf.exe介紹

fromelf.exe即keil下的一個處理elf文件的工具,elf文件英文名為Executable and Linking Format ,該文件包括符號表,調試信息,匯編等等,所以通過使用fromelf.exe可以輸出較多信息文件,比如hex、bin、asm等。

對于此工具詳細的說明文件可以參考:using_the_fromelf_utility.pdf

該文檔網上很容易搜索到,這里就不板書了。

如果你想省點事,可以直接使用cmd輸出formelf.exe的幫助信息,過程如下。

2、formelf.exe詳細說明

1、首先在windows運行欄中找到cmd命令輸入。

2、輸入命令行.fromelf.exe --help

bug菌對上面的輸出簡單的注釋了下。

ARM image conversion utilityfromelf [options] input_file

Options: --help display this help screen //【顯示幫助信息】 --vsn display version information//【顯示版本信息】 --output file the output file. (defaults to stdout for -text format)//【輸出文件。(-text格式默認為stdout)】 8 --nodebug do not put debug areas in the output image//【不在輸出映像中放置調試域】 --nolinkview do not put sections in the output image//【不在輸出映像中放置段信息】

Binary Output Formats: --bin Plain Binary//【bin文件】 --m32 Motorola 32 bit Hex//【motol格式的hex文件】 --i32 Intel 32 bit Hex//【Intel格式的hex文件】 --vhx Byte Oriented Hex format//【面向字節的hex格式】

--base addr Optionally set base address for m32,i32

Output Formats Requiring Debug Information --fieldoffsets Assembly Language Description of Structures/Classes --expandarrays Arrays inside and outside structures are expanded

Other Output Formats: --elf ELF --text Text Information

Flags for Text Information -v verbose -a print data addresses (For images built with debug)//【打印數據地址信息】 -c disassemble code//【輸出匯編代碼】 -d print contents of data section//【打印數據域內容】 -e print exception tables//【打印異常表】 -g print debug tables//【打印調試表】 -r print relocation information//【打印重定位信息】35 -s print symbol table//【打印符號表】 -t print string table//【打印字符串表】 -y print dynamic segment contents//【打印動態段內容】 -z print code and data size information//【打印代碼與數據大小信息】

輸出bin和匯編

在keil中進行如下配置 ,表示在工程編譯以后所執行的命令行。

命令行如下,方便大伙copy:

fromelf --text -c -o “$L@L.asm” “#L”

fromelf --bin -o “$L@L.bin” “#L”

確定配置好以后重新編譯,最終編譯器輸出如下信息。

從輸出信息來可以了解到bin文件和asm文件均由.axf文件通過fromelf工具轉化而來,相信轉化命令的通配符大家也可以理解了,輸出結果如下:

這樣看來.axf文件所包含的信息非常之多,其全稱為:Arm executable File,其實.axf文件與gcc中的elf文件是類似的,Keil默認生成.axf文件。

如果在Keil中沒有勾選hex文件的生成,那么就用.axf文件來進行燒錄。

而如果勾選了Hex文件生成,其實就是Keil通過調用fromelf將axf轉換為hex文件,所以編譯后可以在輸出文件中同時看到axf和hex文件。

3、C與匯編混合展示

我們打開前面的.asm文件如下圖所示:

零零散散我們可以看到幾個C函數,不過閱讀起來稍微有點吃力,大伙應該還是比較喜歡閱讀debug時候匯編框中C語言與匯編語言一一對應的形式,這樣也更好理解匯編語言。

1、生成.txt和.i文件

我們在keil中勾選如下幾項,然后進行重新編譯。

其中在工程目錄的*.txt即為匯編與C混合文件,而*.i為經過了預處理的文件。

2、對比.c和.i文件

對于預處理過程主要是去掉注釋和展開宏等,下面我們對比一下源文件與.i文件。

7126eb62-7ec2-11eb-8b86-12bb97331649.png

3、查看.txt文件

生成的.txt即為C代碼與匯編的混合文件。

71337f12-7ec2-11eb-8b86-12bb97331649.png

原文標題:用Keil生成bin、匯編、C與匯編混合文件,再也不想debug了!

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3636

    瀏覽量

    93893
  • keil
    +關注

    關注

    68

    文章

    1214

    瀏覽量

    167133

原文標題:用Keil生成bin、匯編、C與匯編混合文件,再也不想debug了!

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    EE-134:為SHARC系列編寫C兼容匯編代碼中斷處理程序

    電子發燒友網站提供《EE-134:為SHARC系列編寫C兼容匯編代碼中斷處理程序.pdf》資料免費下載
    發表于 01-07 13:58 ?0次下載
    EE-134:為SHARC系列編寫<b class='flag-5'>C</b>兼容<b class='flag-5'>匯編</b>代碼中斷處理程序

    EE-128:C語言中的DSP:從C調用匯編類成員函數

    電子發燒友網站提供《EE-128:C語言中的DSP:從C調用匯編類成員函數.pdf》資料免費下載
    發表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b>語言中的DSP:從<b class='flag-5'>C</b>調用<b class='flag-5'>匯編</b>類成員函數

    TMS320C6000匯編語言工具 v8.3.x

    電子發燒友網站提供《TMS320C6000匯編語言工具 v8.3.x.pdf》資料免費下載
    發表于 11-07 10:00 ?0次下載
    TMS320<b class='flag-5'>C</b>6000<b class='flag-5'>匯編</b>語言工具 v8.3.x

    ARM匯編語言工具

    電子發燒友網站提供《ARM匯編語言工具.pdf》資料免費下載
    發表于 11-06 09:12 ?0次下載
    ARM<b class='flag-5'>匯編</b>語言工具

    TMS320C28x匯編語言工具

    電子發燒友網站提供《TMS320C28x匯編語言工具.pdf》資料免費下載
    發表于 11-01 09:32 ?0次下載
    TMS320<b class='flag-5'>C</b>28x<b class='flag-5'>匯編</b>語言工具

    C語言生成可執行二進制文件的具體過程

    C語言源碼到生成可執行文件的過程通常包括預處理(Preprocessing)、編譯(Compilation)、匯編(Assembly)、鏈接(Linking)等多個步驟,每個步驟都有其
    的頭像 發表于 10-21 14:30 ?652次閱讀
    <b class='flag-5'>C</b>語言<b class='flag-5'>生成</b>可執行二進制<b class='flag-5'>文件</b>的具體過程

    TMS320LF240x DSP的C語言和匯編代碼快速入門

    電子發燒友網站提供《TMS320LF240x DSP的C語言和匯編代碼快速入門.pdf》資料免費下載
    發表于 10-18 10:14 ?1次下載
    TMS320LF240x DSP的<b class='flag-5'>C</b>語言和<b class='flag-5'>匯編</b>代碼快速入門

    hex文件怎么能轉回去c語言

    的差異。 然而,如果你想要從 .hex 文件中獲取一些有用的信息或者對程序進行分析,你可以采取以下步驟來盡可能接近原始的C語言邏輯: 反匯編 : 使用反匯編工具(如IDA Pro、Gh
    的頭像 發表于 09-02 10:46 ?2493次閱讀

    keil仿真查看反匯編,匯編窗口怎么跳轉到指定行了呢?

    請問大神;如圖所示,想在匯編窗口跳轉到C:045F,查看匯編原碼;怎么操作?有無直接跳轉的辦法現在只能用鼠標滾輪一直翻,有時候還到不了指定行;
    發表于 07-24 07:06

    請問STM32CubeIDE如何加載外部bin文件

    我有一個外部的bin文件,想要編譯、鏈接到stm32工程里,如何用stm32cubeide來實現呢? 我知道在keil中可以添加一個.s文件
    發表于 05-30 06:41

    keil如何生成帶有編譯日期的BIN文件

    【求助】keil 如何生成帶有編譯日期的 BIN 文件
    發表于 04-18 08:13

    一招掌握C語言代碼如何變成bin文件

    一、關鍵步驟將單片機的源代碼轉換成二進制文件bin文件)的過程涉及幾個關鍵步驟,這些步驟是編譯過程中的標準組成部分,主要包括以下步驟:預處理、編譯、匯編、鏈接、二進制轉換。01預處理
    的頭像 發表于 04-13 08:10 ?3402次閱讀
    一招掌握<b class='flag-5'>C</b>語言代碼如何變成<b class='flag-5'>bin</b><b class='flag-5'>文件</b>?

    何用Keil生成bin匯編C匯編混合文件

    Keil生成bin匯編C匯編混合
    發表于 04-08 06:17

    keil仿真查看反匯編,匯編窗口怎么跳轉到指定行?

    如圖所示,想在匯編窗口跳轉到C:045F,查看匯編原碼;怎么操作?有無直接跳轉的辦法 現在只能用鼠標滾輪一直翻,有時候還到不了指定行;
    發表于 03-14 07:28

    tasking是如何生成bin文件的?

    有沒大神做過Tasking生成bin文件呢?
    發表于 02-19 07:39
    主站蜘蛛池模板: x69老师x日本| 亚洲午夜精品A片久久WWW解说| 甜性涩爱免费下载| 久久久久久久久免费视频| 国产AV无码熟妇人妻麻豆| 最近日本MV字幕免费观看在线| 无限资源日本2019版免费| 美女诱点第6季| 狠狠干福利视频| 国产白丝精品爽爽久久蜜臀| 97久久超碰中文字幕| 亚洲精品视频免费| 试看做受120秒免费午夜剧场| 男女车车的车车网站W98免费| 精品免费视在线视频观看| 午夜国产精品视频| 成人18视频在线观看| 99国内精品久久久久久久清纯| 美女扒开屁股让男人桶| BLACKED太粗太长| 色欲人妻AAAAAAA无码| 国产精品永久免费视频| 亚洲裸舞 hd| 空姐厕所啪啪啪| 爱暖暖1000部免费| 无码日本亚洲一区久久精品 | 久久亚洲精品中文字幕60分钟| 国产美女又黄又爽又色视频网站| 野花日本手机观看大全免费3| 午夜天堂AV久久久噜噜噜| 日本特黄网站| 欧美国产精品久久久乱码| 免费亚洲视频在线观看| 玖玖在线精品| 捆绑白丝粉色JK震动捧喷白浆| 久久99热只有频精品| 精品99久久久久成人网站| www.欧美与曽交性video| 99国内精品| WWW国产亚洲精品久久久日本| YELLOW免费观看完整视频|