日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > strongerHuang
[導(dǎo)讀]關(guān)注、星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容 素材來(lái)源:網(wǎng)絡(luò) 編輯整理:strongerHuang ARM處理器在市面上到處都是ARM7、ARM9、Cortex-M、Cortex-R、Cortex-A包含的種類繁多,今天我們就來(lái)了解一下ARM代碼編譯鏈接的工作流程,以及過(guò)程中需要的相關(guān)概念信息。 一、編譯


關(guān)注、星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容

素材來(lái)源:網(wǎng)絡(luò)

編輯整理:strongerHuang


ARM處理器在市面上到處都是ARM7、ARM9、Cortex-M、Cortex-R、Cortex-A包含的種類繁多,今天我們就來(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)生一定影響。


1.makefile文件
Makefiile類似一個(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),最終的文件可以寫入嵌入式系統(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í)地址一致(稱為固定域)??梢酝ㄟ^(guò)-entry指定映像文件的初始入口點(diǎn)。

普通入口點(diǎn):用ENTRY偽操作定義在程序中,一般為中斷服務(wù)程序的入口點(diǎn)。

4.scatter文件中包含的信息
加載時(shí)域描述、運(yùn)行時(shí)域描述、輸入段描述、輸入段選擇符;加載時(shí)域包括:名稱、起始地址、屬性、最大尺寸和一個(gè)運(yùn)行時(shí)域;運(yùn)行時(shí)域包括:名稱、起始地址、屬性、最大尺寸和一個(gè)輸入段集合;輸入段選擇符描述了輸入段名稱或?qū)傩缘钠ヅ浞绞健?/span>

輸入段屬性:RO-CODE/CODE、RO_DATA/CONST、RO/TEXT包括前兩項(xiàng)、RW_DATARW/DATA(RW_CODE+RW_DATA)、BSS、ZI;FIRST\LAST來(lái)指定運(yùn)行時(shí)域的開頭結(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.JTAG
JTAG仿真器也稱為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)題,如高頻操作限制、AC和DC參數(shù)不匹配,電線長(zhǎng)度的限制等被最小化了。使用集成開發(fā)環(huán)境配合JTAG仿真器進(jìn)行開發(fā)是目前采用最多的一種調(diào)試方式。

免責(zé)聲明:本文素材來(lái)源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問(wèn)題,請(qǐng)與我聯(lián)系刪除。

推薦閱讀:
#include使用“”和<>的區(qū)別?
手把手教你用鐵絲做Arduino UNO板
為什么老編輯器Vim這么“難用”,卻很受歡迎?

關(guān)注 微信公眾號(hào)『strongerHuang』,后臺(tái)回復(fù)“1024”查看更多內(nèi)容,回復(fù)“加群”按規(guī)則加入技術(shù)交流群。


長(zhǎng)按前往圖中包含的公眾號(hào)關(guān)注

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

在半導(dǎo)體產(chǎn)業(yè)的傳統(tǒng)認(rèn)知中,Arm 是構(gòu)建數(shù)字世界的“圖紙?zhí)峁┥獭?。然而,隨著代理式 AI(Agentic AI)對(duì)異構(gòu)計(jì)算需求的指數(shù)級(jí)增長(zhǎng),單純的 IP 和計(jì)算子系統(tǒng)授權(quán)已難以完全消納市場(chǎng)對(duì)于算力部署時(shí)效性的渴求。Arm...

關(guān)鍵字: ARM AGI CPU 數(shù)據(jù)中心 AI

展望未來(lái),當(dāng)摩根士丹利預(yù)測(cè)中 800 倍增長(zhǎng)的機(jī)器人半導(dǎo)體市場(chǎng)真正兌現(xiàn)時(shí),Arm 的物理 AI 平臺(tái)將作為底層基礎(chǔ)設(shè)施,支撐起從工廠到家庭、從道路到天空的智能物理世界。計(jì)算的邊界正在被重新定義,而 Arm 已在新邊界上筑...

關(guān)鍵字: ARM 物理 AI 自動(dòng)駕駛 機(jī)器人

3月25日消息,一直以來(lái),Arm都是一家對(duì)外提供IP授權(quán)的芯片企業(yè),包括CPU、GPU、NPU和各種系統(tǒng)IP。

關(guān)鍵字: ARM META

成立三十余年來(lái),Arm一直是芯片行業(yè)特殊的“幕后推手”——不生產(chǎn)一顆芯片,卻定義了全球99%智能手機(jī)的底層架構(gòu)。然而,這家長(zhǎng)期保持中立的IP授權(quán)巨頭,如今正打破自己一手建立的商業(yè)規(guī)則。

關(guān)鍵字: ARM CPU 芯片

Arm 首次將其平臺(tái)矩陣拓展至量產(chǎn)芯片產(chǎn)品,為業(yè)界提供覆蓋 IP、Arm計(jì)算子系統(tǒng) (CSS)及芯片的最廣泛的計(jì)算產(chǎn)品選擇。 發(fā)布首款由 Arm 設(shè)計(jì)的數(shù)據(jù)中心 CPU——Arm AGI CPU,專為代理式AI 基...

關(guān)鍵字: ARM CPU 數(shù)據(jù)中心 代理式AI

為下一代 AI 基礎(chǔ)設(shè)施實(shí)現(xiàn)突破性機(jī)架級(jí)性能、擴(kuò)展性和效率

關(guān)鍵字: ARM AGI CPU 代理式AI

在工業(yè)控制、汽車電子等實(shí)時(shí)性要求嚴(yán)苛的領(lǐng)域,中斷風(fēng)暴如同懸在系統(tǒng)頭頂?shù)倪_(dá)摩克利斯之劍——當(dāng)多個(gè)高優(yōu)先級(jí)中斷密集觸發(fā)時(shí),傳統(tǒng)MCU常因處理能力不足陷入癱瘓。ARM Cortex-M內(nèi)核通過(guò)NVIC(嵌套向量中斷控制器)的優(yōu)...

關(guān)鍵字: 中斷風(fēng)暴 ARM

在現(xiàn)代電子設(shè)備的研發(fā)、生產(chǎn)與維護(hù)鏈條中,JTAG(Joint Test Action Group,聯(lián)合測(cè)試行動(dòng)組)技術(shù)如同一條"隱形橋梁",連接著開發(fā)者與芯片內(nèi)部的核心邏輯。從最初解決電路板測(cè)試難題的工業(yè)標(biāo)準(zhǔn),到如今成為...

關(guān)鍵字: JTAG ARM

當(dāng)工程師將代碼從經(jīng)典的8051架構(gòu)遷移至現(xiàn)代ARM Cortex-M系列時(shí),常常會(huì)遇到因內(nèi)存對(duì)齊規(guī)則差異導(dǎo)致的硬件異?;蛐阅芟陆祮?wèn)題。以某物聯(lián)網(wǎng)設(shè)備廠商的遷移案例為例,其將基于8051的溫濕度傳感器通信協(xié)議移植至STM3...

關(guān)鍵字: ARM 8051
關(guān)閉