亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

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

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機 ? 作者:玩轉(zhuǎn)單片機 ? 2020-12-22 16:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

3.初始入口點和普通入口點初始入口點:運行時的入口點,初始入口點必須位于映像文件運行時入口點,而它的加載時地址和運行時地址一致(稱為固定域)??梢酝ㄟ^-entry指定映像文件的初始入口點。 普通入口點:用ENTRY偽操作定義在程序中,一般為中斷服務(wù)程序的入口點。

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

拓展知識

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

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

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

責任編輯:xj

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

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

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

    關(guān)注

    135

    文章

    9470

    瀏覽量

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

    關(guān)注

    0

    文章

    2

    瀏覽量

    5598

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    強強合作 西門子與日月光合作開發(fā) VIPack 先進封裝平臺工作流程

    平臺開發(fā)基于 3Dblox 的工作流程。雙方目前已經(jīng)合作完成三項 VIPack 技術(shù)的 3Dblox 工作流程驗證,包括扇出型基板上芯片封裝(FOCoS)、扇出型基板上芯片橋接
    的頭像 發(fā)表于 10-23 16:09 ?1358次閱讀
    強強合作 西門子與日月光合作開發(fā) VIPack 先進封裝平臺<b class='flag-5'>工作流程</b>

    ADI Power Studio工作流程與工具概述

    、直觀的工作流程,利用準確的模型來仿真實際性能,并自動生成關(guān)鍵的物料清單和報告等內(nèi)容,幫助工程團隊更早做出更優(yōu)決策。
    的頭像 發(fā)表于 10-22 09:38 ?329次閱讀

    恩智浦i.MX RT1180跨界MCU驅(qū)動EtherCAT的工作流程

    上周的分享已經(jīng)介紹了整個參考設(shè)計的概況和相關(guān)硬件資源。那么,本次會從軟件工程角度進行分享。首先來了解EtherCAT Slave工作流程。
    的頭像 發(fā)表于 09-28 14:20 ?458次閱讀
    恩智浦i.MX RT1180跨界MCU驅(qū)動EtherCAT的<b class='flag-5'>工作流程</b>

    電芯自動面墊分選裝盒生產(chǎn)線的工作流程解析

    電芯自動面墊分選裝盒生產(chǎn)線的工作流程解析|深圳比斯特自動化
    的頭像 發(fā)表于 09-28 10:29 ?278次閱讀

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

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

    使用智能工具簡化向Arm平臺的遷移過程

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

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

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

    什么樣的代碼會被編譯器優(yōu)化

    現(xiàn)在的編譯器有多智能,可能你辛辛苦苦寫的代碼,在編譯器看來就是幾句廢話,直接被刪除掉。
    的頭像 發(fā)表于 01-16 16:38 ?855次閱讀

    AI工作流自動化是做什么的

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

    ARM主板定制流程與成本

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

    使用pdfDocs提高工作效率,改進PDF工作流程

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

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

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

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

    用CPLD控制ADS7229,因為需要用到狀態(tài)機,需要了解7229的工作流程是怎么樣的,手冊上沒有看懂,望大俠指點! 比如:流程一:通過SPI接口進行寄存器(CFR)配置——》啟動轉(zhuǎn)換-——》等待轉(zhuǎn)換完成——》輸出數(shù)據(jù)(sdo)——》啟動下一次轉(zhuǎn)換?
    發(fā)表于 12-03 07:50

    淺談無刷電機的工作流程

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

    NVIDIA發(fā)布全新AI和仿真工具以及工作流

    NVIDIA 在本周于德國慕尼黑舉行的機器人學(xué)習大會(CoRL)上發(fā)布了全新 AI 和仿真工具以及工作流。機器人開發(fā)者可以使用這些工具和工作流,大大加快 AI 機器人(包括人形機器人)的開發(fā)工作。
    的頭像 發(fā)表于 11-09 11:52 ?1216次閱讀