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

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

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

3天內不再提示

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

GReq_mcu168 ? 來源:玩轉單片機 ? 作者:玩轉單片機 ? 2020-12-22 16:57 ? 次閱讀

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

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

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

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

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

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

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

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

拓展知識

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

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

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

責任編輯:xj

原文標題:ARM代碼編譯、鏈接調試過程

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

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

    關注

    134

    文章

    9107

    瀏覽量

    368007
  • 源代碼編譯
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5565

原文標題:ARM代碼編譯、鏈接調試過程

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

    淺談無刷電機的工作流程

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

    人員定位系統的原理和工作流程

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

    java反編譯代碼可以修改么

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

    ida反編譯出來代碼能直接用嗎

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

    從記錄到管理:單北斗工作記錄儀如何優化工作流程

    在這個快節奏的時代,每一分效率的提升都是企業競爭力的關鍵。從繁瑣的手工記錄到智能化的數據管理,技術的飛躍正悄然改變著我們的工作方式。頂堅單北斗工作記錄儀如何成為優化工作流程的得力助手,實現從記錄
    的頭像 發表于 08-30 11:09 ?288次閱讀
    從記錄到管理:單北斗<b class='flag-5'>工作</b>記錄儀如何優化<b class='flag-5'>工作流程</b>

    行云流水線 滿足你對工作流編排的一切幻想~skr

    流水線模型 眾所周知,DevOps流水線(DevOps pipeline)的本質是實現自動化工作流程,用于支持軟件開發、測試和部署的連續集成、交付和部署(CI/CD)實踐。它是DevOps方法論
    的頭像 發表于 08-05 13:42 ?293次閱讀

    e2 studio中鏈接腳本的修改指導

    一般而言,程序編譯經歷下圖四個階段,鏈接編譯的最后一步,無論是在PC上編譯代碼,還是在PC上使用嵌入式gcc工具交叉
    的頭像 發表于 06-13 10:49 ?518次閱讀
    e2 studio中<b class='flag-5'>鏈接</b>腳本的修改指導

    M8_8pin公頭如何簡化工作流程

    德索工程師說道M8_8pin公頭作為一種先進的連接器設計,其在多個領域都發揮著重要作用,特別是在自動化、航空、醫療等領域。它通過實現高效、穩定的信號和數據傳輸,為各種設備提供了可靠的連接。在工作流程中,M8_8pin公頭通過其獨特的設計和功能,可以大大簡化工作流程,提高
    的頭像 發表于 05-05 13:41 ?265次閱讀
    M8_8pin公頭如何簡化<b class='flag-5'>工作流程</b>

    鴻蒙原生應用元服務-訪問控制(權限)開發工作流程相關

    一、權限的工作流程 權限申請使用的工作流程 應用在訪問數據或者執行操作時,需要評估該行為是否需要應用具備相關的權限。如果確認需要目標權限,則需要在應用安裝包中申請目標權限。 然后,需要判斷目標權限
    發表于 04-19 15:27

    Ansys與SynMatrix合作,簡化無線通信射頻濾波器設計工作流程

    Ansys擴展其電子系列產品組合,以簡化無線通信射頻濾波器設計工作流程
    的頭像 發表于 04-08 09:45 ?843次閱讀
    Ansys與SynMatrix合作,簡化無線通信射頻濾波器設計<b class='flag-5'>工作流程</b>

    推挽放大電路工作流程

    ”),另一個在負半周期拉動負載(“挽”),因此稱為“推挽”。這種結構允許放大電路在信號的兩個半周期內都能提供能量,從而有效地將輸入信號的功率放大到更高的水平。 推挽放大電路的工作流程如下: 信號分離:輸入信號首先被送到一個分相器(通
    的頭像 發表于 02-03 17:23 ?1368次閱讀
    推挽放大電路<b class='flag-5'>工作流程</b>

    物聯網數據采集器的工作原理和工作流程

    物聯網數據采集器的工作原理和工作流程 物聯網數據采集器是物聯網系統中的關鍵組成部分,它負責收集、處理和傳輸設備所產生的數據。其工作原理和工作流程如下所述。 一、物聯網數據采集器
    的頭像 發表于 02-01 10:59 ?5094次閱讀
    主站蜘蛛池模板: 日本久久久久亚洲中字幕| 尤物99久久久合集一区区| 无码国产成人777爽死| 中文字幕欧美日韩VA免费视频| 国产99RE在线观看69热| 六月婷婷国产精品综合| 午夜AV内射一区二区三区红桃视| 99RE6这里只有精品国产AV| 黑人特黄AA完整性大片| 熟女人妻久久精品AV天堂| a级精品九九九大片免费看| 久久久影院亚洲精品| 亚洲精品线在线观看| 国产精品嫩草影院在线观看免费 | 国产51麻豆二区精品AV视频| 亚洲精品久久区二区三区蜜桃臀| 久久久擼擼擼麻豆| 成人精品视频在线| 欧美一夜爽爽爽爽爽爽| 2021国产精品国产精华| 久久re热在线视频精99| 亚洲午夜久久久无码精品网红A片 亚洲午夜久久久久中文字幕 | 在教室做啊好大用力| 久久不射网| www.伊人网| 热综合一本伊人久久精品| YY8090福利午夜理论片| 日本午夜精品一区二区三区电影 | 久久精品18| 国产99精品视频| 538prom国产在线视频一区| 婷婷精品国产亚洲AV在线观看| 国产视频成人| 武汉美女洗澡| 接吻吃胸摸下面啪啪教程| 一亲二脱三插| 久热这里只有精品99国产6| 中文字幕一区久久久久| 免费毛片观看| YY8090福利午夜理论片| 一本久道久久综合婷婷五月 |