在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

ARM代碼編譯鏈接的工作流程

GReq_mcu168 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2020-12-22 16:57 ? 次閱讀

ARM處理器在市面上到處都是ARM7、ARM9、Cortex-M、Cortex-R、Cortex-A包含的種類(lèi)繁多,今天我們就來(lái)了解一下ARM代碼編譯鏈接的工作流程,以及過(guò)程中需要的相關(guān)概念信息。

編譯過(guò)程編譯過(guò)程就是把源代碼編譯生成目標(biāo)代碼的過(guò)程。而采用ARM編譯命令,可以將源代碼編譯成帶有ELF格式的目標(biāo)文件。除了編譯命令可以選擇相應(yīng)的編譯選項(xiàng)之外,源代碼中的pragmas以及特別的關(guān)鍵字也會(huì)對(duì)編譯過(guò)程/結(jié)果產(chǎn)生一定影響。

makefile文件Makefile類(lèi)似一個(gè)腳本文件,這個(gè)文件用來(lái)定義編譯過(guò)程,其中包含了需要編譯的文件、文件順序,編譯的宏定義等等,可以看做完整編譯需要的信息及過(guò)程的集合。 2.ELF格式文件ELF文件:(Executable and Linkable Format) ELF文件出了包含編譯出的二進(jìn)制代碼,還包含其他鏈接需要信息,ELF格式提供了相應(yīng)代碼/數(shù)據(jù)對(duì)應(yīng)編譯出的地址信息、文件信息等內(nèi)容。

鏈接過(guò)程鏈接就是把編譯生成的目標(biāo)文件和鏈接庫(kù)處理成為相應(yīng)ELF格式的映像文件(image),最終的文件可以寫(xiě)入嵌入式系統(tǒng)ROM/FLASH中。映像文件中包含:分組信息和定位信息,亦即輸出段/域及地址定位信息。鏈接器同時(shí)可以生成相應(yīng)與域有關(guān)的符號(hào)來(lái)指示關(guān)于加載時(shí)地址、運(yùn)行時(shí)地址、加載時(shí)長(zhǎng)度限制、運(yùn)行時(shí)長(zhǎng)度限制等信息。同時(shí)鏈接器也具有優(yōu)化的功能,刪除不必要的代碼、段域等。

1.映像文件的組成一個(gè)映像文件包含一個(gè)或多個(gè)域;一個(gè)域包含一個(gè)或多個(gè)輸出段;一個(gè)輸出段包含一個(gè)或多個(gè)輸入段;輸入段中包含了目標(biāo)文件的代碼和數(shù)據(jù)。 輸入段的內(nèi)容:代碼、已初始化的數(shù)據(jù)、未初始化的數(shù)據(jù)、初始化0的存儲(chǔ)區(qū)域。 輸出段和域中包含:RO、RW、ZI域。

2.映像文件的地址映射加載時(shí)地址和運(yùn)行時(shí)地址的區(qū)別:加載時(shí)地址是運(yùn)行前的地址,簡(jiǎn)單理解在FLASH中固定存儲(chǔ)即為加載時(shí)地址,而若代碼載入RAM運(yùn)行時(shí),新的地址為運(yùn)行時(shí)地址;而程序在FLASH中運(yùn)行,加載時(shí)地址和運(yùn)行時(shí)地址就一致了。當(dāng)?shù)刂酚成鋸?fù)雜時(shí),可以通過(guò)scatter配置文件進(jìn)行設(shè)置。

3.初始入口點(diǎn)和普通入口點(diǎn)初始入口點(diǎn):運(yùn)行時(shí)的入口點(diǎn),初始入口點(diǎn)必須位于映像文件運(yùn)行時(shí)入口點(diǎn),而它的加載時(shí)地址和運(yùn)行時(shí)地址一致(稱(chēng)為固定域)。可以通過(guò)-entry指定映像文件的初始入口點(diǎn)。 普通入口點(diǎn):用ENTRY偽操作定義在程序中,一般為中斷服務(wù)程序的入口點(diǎn)。

4.scatter文件中包含的信息加載時(shí)域描述、運(yùn)行時(shí)域描述、輸入段描述、輸入段選擇符;加載時(shí)域包括:名稱(chēng)、起始地址、屬性、最大尺寸和一個(gè)運(yùn)行時(shí)域;運(yùn)行時(shí)域包括:名稱(chēng)、起始地址、屬性、最大尺寸和一個(gè)輸入段集合;輸入段選擇符描述了輸入段名稱(chēng)或?qū)傩缘钠ヅ浞绞健? 輸入段屬性:RO-CODE/CODE、RO_DATA/CONST、RO/TEXT包括前兩項(xiàng)、RW_DATARW/DATA(RW_CODE+RW_DATA)、BSS、ZI;FIRSTLAST來(lái)指定運(yùn)行時(shí)域的開(kāi)頭結(jié)尾,.ANY可以根據(jù)實(shí)際情況安排到合適的運(yùn)行時(shí)域。 可以使用FIXED屬性將域放置在ROM中固定位置,加載時(shí)域和固定時(shí)域即相同。

拓展知識(shí)

1.程序斷點(diǎn)斷點(diǎn)可以分為:軟件斷點(diǎn)和硬件斷點(diǎn),軟件斷點(diǎn)可以相應(yīng)地址插入相應(yīng)的指令實(shí)現(xiàn),而硬件斷點(diǎn)必須要需要相應(yīng)硬件支持才能實(shí)現(xiàn)。

2.鏈接庫(kù)的概念鏈接庫(kù)分為:靜態(tài)鏈接庫(kù)和動(dòng)態(tài)鏈接庫(kù),而動(dòng)態(tài)鏈接庫(kù)又分為加載時(shí)動(dòng)態(tài)鏈接庫(kù)和運(yùn)行時(shí)動(dòng)態(tài)鏈接庫(kù);其差別:靜態(tài)鏈接庫(kù)的使用內(nèi)容包含在生成的目標(biāo)代碼中,加載時(shí)動(dòng)態(tài)鏈接庫(kù)是程序載入內(nèi)存時(shí)知道相應(yīng)的動(dòng)態(tài)鏈接庫(kù)調(diào)用內(nèi)容同時(shí)調(diào)入內(nèi)存中,而運(yùn)行時(shí)動(dòng)態(tài)鏈接庫(kù)只有在運(yùn)行到需要調(diào)用時(shí)才調(diào)入使用。

3.JTAGJTAG仿真器也稱(chēng)為JTAG調(diào)試器,是通過(guò)ARM芯片的JTAG邊界掃描口進(jìn)行調(diào)試的設(shè)備。JTAG仿真器比較便宜,連接比較方便,通過(guò)現(xiàn)有的JTAG邊界掃描口與 ARM CPU通信,屬于完全非插入式(即不使用片上資源)調(diào)試,它無(wú)需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口,而這些是駐留監(jiān)控軟件所必需的。 另外,由于JTAG調(diào)試的目標(biāo)程序是在目標(biāo)板上執(zhí)行,仿真更接近于目標(biāo)硬件,因此,許多接口問(wèn)題,如高頻操作限制、ACDC參數(shù)不匹配,電線(xiàn)長(zhǎng)度的限制等被最小化了。使用集成開(kāi)發(fā)環(huán)境配合JTAG仿真器進(jìn)行開(kāi)發(fā)是目前采用最多的一種調(diào)試方式。

責(zé)任編輯:xj

原文標(biāo)題:ARM代碼編譯、鏈接調(diào)試過(guò)程

文章出處:【微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    134

    文章

    9321

    瀏覽量

    375379
  • 源代碼編譯
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5580

原文標(biāo)題:ARM代碼編譯、鏈接調(diào)試過(guò)程

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

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

    在IAR Arm開(kāi)發(fā)工具鏈中--function_sections編譯選項(xiàng)的使用

    本文主要介紹在IAR Arm開(kāi)發(fā)工具鏈中不修改源代碼的情況下使用??function_sections編譯選項(xiàng)把函數(shù)放到單獨(dú)的section。
    的頭像 發(fā)表于 06-13 13:53 ?258次閱讀
    在IAR <b class='flag-5'>Arm</b>開(kāi)發(fā)工具鏈中--function_sections<b class='flag-5'>編譯</b>選項(xiàng)的使用

    使用智能工具簡(jiǎn)化向Arm平臺(tái)的遷移過(guò)程

    今年二月,Arm 推出了 GitHub Copilot 新擴(kuò)展程序,助力快速遷移至 Arm 架構(gòu)服務(wù)器。本文將帶你了解開(kāi)發(fā)者該如何利用 GitHub Copilot 和 Arm Runners 來(lái)進(jìn)行無(wú)縫構(gòu)建、測(cè)試和部署,從而簡(jiǎn)
    的頭像 發(fā)表于 03-10 09:22 ?324次閱讀
    使用智能工具簡(jiǎn)化向<b class='flag-5'>Arm</b>平臺(tái)的遷移過(guò)程

    NX CAD軟件:數(shù)字化工作流程解決方案(CAD工作流程)

    NXCAD——數(shù)字化工作流程解決方案(CAD工作流程)使用西門(mén)子領(lǐng)先的產(chǎn)品設(shè)計(jì)軟件NXCAD加速執(zhí)行基于工作流程的解決方案。我們?cè)诹私庑袠I(yè)需求方面累積了多年的經(jīng)驗(yàn),并據(jù)此針對(duì)各個(gè)行業(yè)的具體需求提供
    的頭像 發(fā)表于 02-06 18:15 ?341次閱讀
    NX CAD軟件:數(shù)字化<b class='flag-5'>工作流程</b>解決方案(CAD<b class='flag-5'>工作流程</b>)

    AI工作流自動(dòng)化是做什么的

    AI工作流自動(dòng)化是指利用人工智能技術(shù),對(duì)工作流程中的重復(fù)性、規(guī)則明確的任務(wù)進(jìn)行自動(dòng)化處理的過(guò)程。那么,AI工作流自動(dòng)化是做什么的呢?接下來(lái),AI部落小編為您分享。
    的頭像 發(fā)表于 01-06 17:57 ?634次閱讀

    ARM主板定制流程與成本

    ,企業(yè)往往需要對(duì)ARM主板進(jìn)行定制。本文將探討ARM主板的定制流程、影響定制成本的因素以及定制周期與時(shí)間成本。一、定制流程概述ARM主板的定
    的頭像 發(fā)表于 01-06 13:21 ?473次閱讀
    <b class='flag-5'>ARM</b>主板定制<b class='flag-5'>流程</b>與成本

    使用pdfDocs提高工作效率,改進(jìn)PDF工作流程

    使用pdfDocs提高工作效率,改進(jìn)PDF工作流程。 pdfDocs是一款PDF管理應(yīng)用程序,可幫助法律專(zhuān)業(yè)人士創(chuàng)建、編輯、整理、裝訂、編輯和保護(hù) PDF 文檔,提高工作效率和安全性。 為什么選擇
    的頭像 發(fā)表于 12-21 15:31 ?431次閱讀
    使用pdfDocs提高<b class='flag-5'>工作</b>效率,改進(jìn)PDF<b class='flag-5'>工作流程</b>

    LJ40B4-20J/EZ常開(kāi)型接近開(kāi)關(guān)工作流程及接線(xiàn)圖

    常開(kāi)型接近開(kāi)關(guān)的工作流程包括無(wú)信號(hào)觸發(fā)狀態(tài)、信號(hào)觸發(fā)狀態(tài)和信號(hào)輸出與應(yīng)用三個(gè)步驟。其接線(xiàn)方式可能因型號(hào)和制造商而異,但通常遵循兩線(xiàn)制或三線(xiàn)制的接線(xiàn)原則。在實(shí)際應(yīng)用中,應(yīng)根據(jù)具體需求和場(chǎng)景選擇合適的接近開(kāi)關(guān)型號(hào)和接線(xiàn)方式。
    的頭像 發(fā)表于 12-09 10:42 ?821次閱讀

    用CPLD控制ADS7229,工作流程是怎么樣的?

    用CPLD控制ADS7229,因?yàn)樾枰玫綘顟B(tài)機(jī),需要了解7229的工作流程是怎么樣的,手冊(cè)上沒(méi)有看懂,望大俠指點(diǎn)! 比如:流程一:通過(guò)SPI接口進(jìn)行寄存器(CFR)配置——》啟動(dòng)轉(zhuǎn)換-——》等待轉(zhuǎn)換完成——》輸出數(shù)據(jù)(sdo)——》啟動(dòng)下一次轉(zhuǎn)換?
    發(fā)表于 12-03 07:50

    淺談無(wú)刷電機(jī)的工作流程

    上一期的芝識(shí)課堂,我們跟大家一起分析了無(wú)刷電機(jī)的四個(gè)功能單元,并詳細(xì)分析了PWM和逆變器單元的工作情況,今天我們繼續(xù)來(lái)熟悉無(wú)刷電機(jī)工作流程中另外兩個(gè)重要的部分——轉(zhuǎn)子位置檢測(cè)和波形驅(qū)動(dòng)。
    的頭像 發(fā)表于 11-12 13:46 ?1111次閱讀
    淺談無(wú)刷電機(jī)的<b class='flag-5'>工作流程</b>

    人員定位系統(tǒng)的原理和工作流程

    人員定位是一種用于確定或跟蹤人員位置的技術(shù)。隨著科技的快速發(fā)展,人員定位系統(tǒng)變得越來(lái)越常見(jiàn),在許多不同的領(lǐng)域得到了廣泛的應(yīng)用。本文將探討人員定位系統(tǒng)的原理和工作流程,包括定位技術(shù)、數(shù)據(jù)傳輸和處理
    的頭像 發(fā)表于 09-03 10:42 ?1396次閱讀
    人員定位系統(tǒng)的原理和<b class='flag-5'>工作流程</b>

    java反編譯代碼可以修改么

    Java反編譯是一種將編譯后的Java字節(jié)碼(.class文件)轉(zhuǎn)換回源代碼的過(guò)程。反編譯后的代碼可以進(jìn)行修改,但是需要注意,反
    的頭像 發(fā)表于 09-02 11:00 ?1178次閱讀

    ida反編譯出來(lái)代碼能直接用嗎

    IDA反編譯出來(lái)的代碼通常 不能直接使用 ,這主要基于以下幾個(gè)方面的原因: 一、代碼的不完整性 IDA反編譯生成的代碼可能缺少原始源
    的頭像 發(fā)表于 09-02 10:55 ?1334次閱讀

    從記錄到管理:?jiǎn)伪倍?b class='flag-5'>工作記錄儀如何優(yōu)化工作流程

    在這個(gè)快節(jié)奏的時(shí)代,每一分效率的提升都是企業(yè)競(jìng)爭(zhēng)力的關(guān)鍵。從繁瑣的手工記錄到智能化的數(shù)據(jù)管理,技術(shù)的飛躍正悄然改變著我們的工作方式。頂堅(jiān)單北斗工作記錄儀如何成為優(yōu)化工作流程的得力助手,實(shí)現(xiàn)從記錄
    的頭像 發(fā)表于 08-30 11:09 ?478次閱讀
    從記錄到管理:?jiǎn)伪倍?b class='flag-5'>工作</b>記錄儀如何優(yōu)化<b class='flag-5'>工作流程</b>

    行云流水線(xiàn) 滿(mǎn)足你對(duì)工作流編排的一切幻想~skr

    流水線(xiàn)模型 眾所周知,DevOps流水線(xiàn)(DevOps pipeline)的本質(zhì)是實(shí)現(xiàn)自動(dòng)化工作流程,用于支持軟件開(kāi)發(fā)、測(cè)試和部署的連續(xù)集成、交付和部署(CI/CD)實(shí)踐。它是DevOps方法論
    的頭像 發(fā)表于 08-05 13:42 ?502次閱讀

    無(wú)人機(jī)巡檢在光伏電站的工作流程與優(yōu)勢(shì)

    ?????? 無(wú)人機(jī)巡檢在光伏電站的工作流程與優(yōu)勢(shì) ?????? 隨著光伏產(chǎn)業(yè)的快速發(fā)展,光伏電站的規(guī)模不斷擴(kuò)大,電站運(yùn)維面臨著諸多挑戰(zhàn)。無(wú)人機(jī)巡檢系統(tǒng)作為一種先進(jìn)的技術(shù)手段,能夠高效、準(zhǔn)確的進(jìn)行光
    的頭像 發(fā)表于 07-26 16:50 ?708次閱讀
    主站蜘蛛池模板: 国内精品伊人久久大香线焦 | 国产香蕉精品视频在 | 无人码一区二区三区视频 | 欧美成人亚洲 | 日本妞xxxxxxxxx69 | 天天做天天做天天综合网 | 男女交性高清视频无遮挡 | 人人干综合 | 国产精品福利在线观看免费不卡 | 久久国产午夜精品理论篇小说 | 午夜视频日本 | 欧美精品一区二区三区视频 | 色天天综合 | 欧美成网 | 五月婷婷精品 | 成年人黄色片视频 | 在线观看中文字幕第一页 | 天堂资源在线中文 | 苍井优一级毛片免费观看 | 18性夜影院午夜寂寞影院免费 | 午夜操| 男男全肉高h腐文 | 日日添天天做天天爱 | 免费色黄网站 | 婷婷涩五月 | 色久天| 欧美猛交喷潮在线播放 | 99精品在免费线视频 | 久久久精品免费国产四虎 | 国产成人三级视频在线观看播放 | 久久99精品久久久久久园产越南 | 精品国产一二三区在线影院 | 久久国产精品永久免费网站 | 日韩免费精品视频 | 性做久久久久久 | yellow中文字幕久久网 | 国产午夜精品一区二区 | 日本在线播放一区 | 亚洲电影天堂网 | 99国产国人青青视频在线观看 | 午夜影视体验区 |