女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

朱老師物聯(lián)網(wǎng)大講堂 ? 2024-04-13 08:10 ? 次閱讀

一、關鍵步驟

單片機的源代碼轉換成二進制文件(bin文件)的過程涉及幾個關鍵步驟,這些步驟是編譯過程中的標準組成部分,主要包括以下步驟:預處理、編譯、匯編、鏈接、二進制轉換。

3f9950ea-f92a-11ee-9118-92fbcf53809c.png

01

預處理

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

這是編譯過程的第一步。預處理器采取預處理指令,處理諸如宏定義(#define)、條件編譯(#ifdef, #ifndef, #endif)等。此步驟的輸出是擴展的源代碼,包含所有頭文件和宏展開的結果。

02

編譯

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

在這一步,編譯器將預處理后的源代碼轉換為匯編代碼。編譯器首先進行詞法分析、語法分析和語義分析,生成抽象語法樹(AST),然后將AST轉換為目標機器的匯編指令。這一步是編譯過程中最復雜的部分,它包括優(yōu)化代碼以提高效率。

03

匯編

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

匯編器將編譯步驟產(chǎn)生的匯編代碼轉換為機器代碼。每一條匯編指令都對應一條機器指令。匯編結果是一系列的機器指令,通常被存儲在一個目標文件(如ELF格式)中。

04

鏈接

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

鏈接器的作用是將一個或多個目標文件合并成一個單一的可執(zhí)行文件。在這一步中,還會解決外部引用,即將所有模塊對外部函數(shù)和變量的引用與其定義關聯(lián)起來。如果你的單片機項目中包含了多個源文件或者使用了外部庫,鏈接器會將它們與你的主程序合并為一個完整的程序。

05

二進制轉換

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

最后,根據(jù)需要,可將鏈接器輸出的可執(zhí)行文件轉換為純二進制格式(bin文件)。這是一個可選步驟,具體取決于目標系統(tǒng)和開發(fā)環(huán)境。某些開發(fā)環(huán)境在鏈接階段直接生成bin文件,而其他環(huán)境可能會生成hex文件或其他格式的文件,需要使用專門的工具將這些文件轉換為bin格式。

這個過程可能會有些許差異,具體取決于使用的編譯器和開發(fā)環(huán)境。例如,在使用ARM單片機和Keil開發(fā)環(huán)境時,整個流程可能會稍有不同,但基本原理是相同的。

3f8f8286-f92a-11ee-9118-92fbcf53809c.png二、通用示例

對于單片機代碼的編譯過程,不同的編譯器和工具鏈有不同的指令或命令。以下是一個通用的示例,這些步驟在使用GNU工具鏈(比如GNU Compiler Collection, GCC)時的對應命令。

01

預處理

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

400bb054-f92a-11ee-9118-92fbcf53809c.png

這條命令將執(zhí)行預處理操作,.c 是你的源代碼文件,.i 是處理過的源代碼文件。

02

編譯

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

401ce2a2-f92a-11ee-9118-92fbcf53809c.png

這條命令將預處理過的文件編譯成匯編代碼,.s 是生成的匯編代碼文件。

03

匯編

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

4032282e-f92a-11ee-9118-92fbcf53809c.png

as 是GNU匯編器,這條命令將匯編代碼轉換為目標代碼(機器代碼),.o 是目標文件。

04

鏈接

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

40426bee-f92a-11ee-9118-92fbcf53809c.png

ld 是GNU鏈接器,這條命令將一個或多個目標文件鏈接成一個完整的二進制可執(zhí)行文件 program

05

二進制轉換

3fe0ee00-f92a-11ee-9118-92fbcf53809c.png

假設我們使用的是ARM體系結構,可能會使用 objcopy 工具來從鏈接后的可執(zhí)行文件生成純二進制文件:

40522016-f92a-11ee-9118-92fbcf53809c.png

在這里,program 是鏈接器生成的可執(zhí)行文件,而 program.bin 是生成的純二進制文件。

請注意,以上命令是在命令行環(huán)境中使用的,并且是基于GCC工具鏈。如果你使用的是其他編譯器或集成開發(fā)環(huán)境(IDE),比如Keil、IAR或MPLAB等,步驟會相似,但是具體的命令或操作會有所不同。IDE通常提供圖形界面和按鈕來執(zhí)行這些操作,而不需要手動輸入命令。

另外,對于某些單片機,你可以使用特定的IDE提供的編譯按鈕來自動完成這些步驟,而無需手動執(zhí)行每個命令。這些IDE將這些步驟封裝起來,從而提供給用戶一個簡化的流程。

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

    關注

    6062

    文章

    44915

    瀏覽量

    646656
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140190
  • 編譯
    +關注

    關注

    0

    文章

    676

    瀏覽量

    33739
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    C語言變成可執(zhí)行文件的四大步驟

    C語言變成最終的可執(zhí)行文件,需要經(jīng)過四步。
    發(fā)表于 10-18 10:37 ?5857次閱讀

    教你一招如何分辨PCB板層數(shù)

    教你一招如何分辨PCB板層數(shù)
    發(fā)表于 04-23 06:36

    教你一招如何去實現(xiàn)傅立葉變換算法?

    教你一招如何去實現(xiàn)傅立葉變換算法?
    發(fā)表于 04-30 06:05

    教你一招怎樣去選擇合適的CPLD

    CPLD有哪些優(yōu)點?教你一招怎樣去選擇合適的CPLD
    發(fā)表于 05-06 09:48

    教你一招如何去選擇射頻濾波器?

    教你一招如何去選擇射頻濾波器?
    發(fā)表于 05-28 07:05

    筆記本硬盤保養(yǎng)15(一招都馬虎不得)

    筆記本硬盤保養(yǎng)15(一招都馬虎不得) 硬盤保養(yǎng)也是門學問  如今快節(jié)奏的工作造就了部分“拆硬盤”的人,小編所說的“拆硬盤
    發(fā)表于 01-21 15:28 ?1067次閱讀

    巧解任何電腦的開機密碼(小小一招就搞定)

    巧解任何電腦的開機密碼(小小一招就搞定) 小小一招巧解任何電腦的開機密碼,無需任何工具,無需放電 任
    發(fā)表于 02-25 10:57 ?807次閱讀

    圖片轉C語言工具bin2c.exe

    電子發(fā)燒友網(wǎng)站提供《圖片轉C語言工具bin2c.exe.rar》資料免費下載
    發(fā)表于 06-05 09:00 ?23次下載

    如何一招辨別iPhone X山寨機

    隨著iPhone X上市后的大賣,大波的山寨機也是洶涌而來。iPhone X是怎樣被步步山寨的?今天小編就帶你了解下怎么一招辨別真假。
    發(fā)表于 12-13 09:44 ?1.4w次閱讀

    一招讓手機屏立馬干凈

    手機屏幕油膩還滿是手印?教你一招,立馬干凈亮閃閃
    的頭像 發(fā)表于 08-27 17:26 ?6166次閱讀

    C語言的源代碼文件和目標文件與可執(zhí)行文件的詳細介紹

    1、源代碼文件 存放程序代碼文件,即我們編輯代碼文件,稱為源
    的頭像 發(fā)表于 02-18 11:52 ?9114次閱讀

    BIN或.ASM文件轉換成C文件常見步驟

    足夠的了解。 通常的操作都是: 第步:先進行解密,提供二進制代碼BIN文件。 第二步:將BIN文件
    的頭像 發(fā)表于 12-07 10:29 ?1.1w次閱讀

    bin文件C語言可以做嗎?

    說實話,在我的認知里,bin文件C語言是不可能的,即便能轉,也是那種非常簡單的程序,比如:點燈。
    的頭像 發(fā)表于 08-17 09:04 ?2162次閱讀
    <b class='flag-5'>bin</b><b class='flag-5'>文件</b>轉<b class='flag-5'>C</b><b class='flag-5'>語言</b>可以做嗎?

    keil如何生成bin文件

    Keil是種集成開發(fā)環(huán)境(IDE),專為ARM架構的嵌入式系統(tǒng)開發(fā)而設計。在Keil中生成bin文件是將代碼編譯并轉換為可執(zhí)行文件的過程。
    的頭像 發(fā)表于 12-15 13:43 ?1.3w次閱讀

    hex文件如何查看原c語言代碼

    是處理器可以直接執(zhí)行的指令,而 C 語言代碼則是人類可讀的高級編程語言代碼。 然而,如果你想要從 .hex
    的頭像 發(fā)表于 09-02 10:37 ?4327次閱讀