91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

代碼的可重用性是代碼開發(fā)和確??删S護性的關(guān)鍵

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Colin Walls ? 2022-06-30 14:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實現(xiàn)嵌入式應用程序的過程很好理解:

代碼(用 C/C++/匯編或其他語言)編寫并放置在許多文件(模塊)中。

每個模塊都經(jīng)過編譯/組裝以創(chuàng)建可重定位的目標文件。該文件包含目標處理器的機器指令,但地址信息尚未提交。

所有模塊都使用鏈接器(有時稱為鏈接器/定位器)集成在一起。此過程解析所有內(nèi)存引用并生成一個絕對目標文件:最終系統(tǒng)內(nèi)存的圖像。

這種觀點有些簡單化,因為還有許多其他細微差別:

增量鏈接可用于將一個或多個可重定位對象連接在一起以形成單個可重定位對象。

可以調(diào)整鏈接/定位過程,以便代碼存儲在一個地方,但地址解析為在另一個地址執(zhí)行,已被引導加載程序復制到那里。

可以將可重定位的目標文件鏈接在一起是產(chǎn)生目標模塊庫的一種特殊方式。

“圖書館”一詞在各種情況下被使用和濫用。它的含義在這里定義明確??梢詫煳募B同可重定位的目標文件一起提供給鏈接器。它的功能是解析可重定位目標文件未提供的符號(通常是函數(shù)名)。例如,如果您在一個模塊中的代碼調(diào)用了函數(shù)MyFun()并且在另一個模塊中有此函數(shù)的定義,那么一切都很好。如果鏈接器沒有找到這個函數(shù),就會產(chǎn)生錯誤。但是,如果包含一個庫(或多個庫),則鏈接器將首先查找那里以解析符號。如果庫包含MyFun()函數(shù),則提取代碼并在最終的絕對文件中使用。

圖書館的意義可能并不明顯。你可以用一種簡單的方式將所有的可重定位文件鏈接在一起——為什么還要麻煩圖書館呢?這個想法是該庫包含大量函數(shù),但鏈接器僅提取當前應用程序所需的函數(shù)。未使用的永遠不會從庫中提取,因此它們不會耗盡(即浪費)目標內(nèi)存。

庫的主要目的是作為大量可重用代碼的存儲庫。在大型開發(fā)團隊的項目中,這可能是一種很好的工作方式,在這種情況下共享代碼非常有益,“重新發(fā)明輪子”是不可取的,但很常見。應仔細規(guī)劃和記錄項目庫。設計函數(shù)時必須考慮重用:不使用全局數(shù)據(jù)、干凈、定義良好的接口、可重入性等。

開發(fā)工具供應商通常會提供針對 C/C++ 標準化的庫。它們包含兩種類型的功能。顯而易見的是開發(fā)人員在需要時調(diào)用的顯式函數(shù)——比如printf()。其他庫函數(shù)是隱式的;它們由編譯器生成的代碼調(diào)用,并提供常用的功能,方便共享。

軟件 IP 供應商也可能以庫的形式提供他們的產(chǎn)品。實時操作系統(tǒng) (RTOS) 通常以這種方式分布。這使得 RTOS 可以直接擴展;應用程序中僅包含所需的 RTOS 功能。

庫分布的一個問題是它們的“粒度”;可以提取多小的代碼?一些庫是由大塊構(gòu)建的。這意味著庫中的模塊可能包含屬于特定 RTOS 設施的所有服務功能。因此,例如,使用一個 RTOS 調(diào)用對信號量進行操作將導致所有與信號量相關(guān)的服務調(diào)用函數(shù)都包含在應用程序中。一個非常細粒度的庫可以與較小的單元一起使用。因此,使用單個服務調(diào)用將導致僅包含其代碼而不是相關(guān)函數(shù)的代碼。有一個權(quán)衡。一個非常細粒度的庫會延長鏈接時間,但目標內(nèi)存不會浪費在未使用的服務調(diào)用函數(shù)上。

所有嵌入式軟件開發(fā)人員都應該了解庫的工作方式及其提供的好處。代碼的可重用性是高效、高效的代碼開發(fā)和確保可維護性的關(guān)鍵。

審核編輯:郭婷

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

    關(guān)注

    5198

    文章

    20435

    瀏覽量

    333894
  • RTOS
    +關(guān)注

    關(guān)注

    25

    文章

    866

    瀏覽量

    122960
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2123

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Linux內(nèi)核編碼風格權(quán)威總結(jié):從縮進到底層設計,讓你的代碼更“內(nèi)核味”

    作為全球最龐大的開源項目之一,Linux 內(nèi)核的代碼量早已突破千萬行。要讓來自世界各地的開發(fā)者高效協(xié)作,一套統(tǒng)一、嚴謹?shù)木幋a風格必不可少 —— 這不僅是 “代碼顏值” 的要求,更是可讀
    的頭像 發(fā)表于 02-09 16:29 ?118次閱讀
    Linux內(nèi)核編碼風格權(quán)威總結(jié):從縮進到底層設計,讓你的<b class='flag-5'>代碼</b>更“內(nèi)核味”

    嵌入式軟件開發(fā)的 10 個技巧分享

    維護,尤其是當整個應用都存在于單個文件或松散關(guān)聯(lián)的多個文件中時。為了改善可維護性重用及復雜
    發(fā)表于 12-25 06:04

    嵌入式測試軟件設計

    認識到測試軟件的好處了吧? 所以,之后寫代碼,寫之前,有必要先想清楚,這個模塊最后要怎么進行自測?要測哪些地方? 設計的軟件測試
    發(fā)表于 12-02 06:06

    C語言的編程技巧

    代碼的靈活性和可維護性。 ?6、使用合適的條件語句?:選擇合適的條件語句(如if、else if、else、switch)可以提高程序的執(zhí)行效率和可讀。? ?7、模塊化和分層開發(fā)?:
    發(fā)表于 11-27 06:46

    HarmonyOS應用代碼混淆技術(shù)方案

    代碼混淆技術(shù)可以增加代碼的復雜和模糊,從而提高攻擊者分析代碼的難度。
    的頭像 發(fā)表于 11-21 16:17 ?5600次閱讀
    HarmonyOS應用<b class='flag-5'>代碼</b>混淆技術(shù)方案

    確保X光設備檢測的有效和準確關(guān)鍵技巧

    在工業(yè)和安全領域,X光設備檢測已成為不可或缺的重要環(huán)節(jié)。然而,許多用戶常常面臨檢測效果不理想、準確不足的問題,影響生產(chǎn)效率和安全保障。如何確保X光檢測設備能夠發(fā)揮最大效能,準確捕捉目標信息,是當前
    的頭像 發(fā)表于 11-18 11:27 ?390次閱讀

    嵌入式開發(fā)關(guān)鍵點介紹

    。 嵌入式開發(fā)關(guān)鍵點: 1. 硬件限制: 嵌入式系統(tǒng)通常具有嚴格的硬件限制,例如處理器速度、內(nèi)存和存儲容量等。因此,嵌入式開發(fā)需要考慮這些限制,并編寫高效的代碼
    發(fā)表于 11-13 08:12

    2025支持AI 驅(qū)動數(shù)字化轉(zhuǎn)型的低代碼開發(fā)平臺有哪些

    ”,其技術(shù)深度、行業(yè)適配與生態(tài)完整直接決定企業(yè)轉(zhuǎn)型成效。本文基于行業(yè)趨勢與用戶需求,梳理2025年國內(nèi)低代碼開發(fā)平臺,并對比分析其與得帆低代碼
    的頭像 發(fā)表于 10-31 13:18 ?312次閱讀

    代碼開發(fā)平臺推薦:2025國內(nèi)低代碼開發(fā)平臺排名TOP10

    代碼開發(fā)平臺排行榜 在企業(yè)數(shù)字化轉(zhuǎn)型的浪潮中,低代碼開發(fā)平臺正逐漸成為企業(yè)實現(xiàn)高效開發(fā)和快速迭代的重要工具。隨著技術(shù)的不斷進步和市場需求的
    的頭像 發(fā)表于 10-28 10:22 ?726次閱讀

    2025主流低代碼平臺有哪些:低代碼開發(fā)平臺選型指南指南

    年,超過70%的企業(yè)將采用低代碼平臺構(gòu)建關(guān)鍵業(yè)務系統(tǒng)。然而,市場上的低代碼平臺在復雜場景支撐、技術(shù)可控、行業(yè)適配等方面存在顯著差異。本文
    的頭像 發(fā)表于 10-22 11:49 ?392次閱讀

    嵌入式軟件測試與專業(yè)測試工具的必要深度解析

    嵌入式系統(tǒng)作為控制、監(jiān)視或輔助裝置運行的專用計算機系統(tǒng),其軟件測試面臨著獨特的挑戰(zhàn)和嚴格的要求。專業(yè)測試工具在嵌入式軟件開發(fā)過程中發(fā)揮著不可替代的作用,是確保系統(tǒng)可靠和安全
    發(fā)表于 09-28 17:42

    統(tǒng)計過程控制在預防維護中的應用

    引言在制造設備設計中,一個常被忽視的方面是可維護性。設備是否具備可維護性相關(guān)特性,會顯著影響設備的運維成本;而這些運維成本,又直接關(guān)系到維護合同的盈利能力。因此,找到降低運維成本的有效方法,對于提升
    的頭像 發(fā)表于 09-03 18:04 ?1127次閱讀
    統(tǒng)計過程控制在預防<b class='flag-5'>性</b><b class='flag-5'>維護</b>中的應用

    什么是零代碼平臺?

    代碼平臺是一種無需編寫傳統(tǒng)代碼,通過可視化拖拽、參數(shù)配置、邏輯連線即可快速搭建業(yè)務流程與應用系統(tǒng)的工具平臺。它將復雜的軟件開發(fā)過程轉(zhuǎn)化為 “搭積木” 式的操作,讓非技術(shù)人員(如業(yè)務人員、運營人員
    發(fā)表于 07-12 20:28

    請問K210和K230開發(fā)如何確保代碼安全?

    K210和K230開發(fā)如何確保代碼安全?
    發(fā)表于 06-06 06:38

    如何確保模擬示波器信號源的標準?

    確保模擬示波器信號源的標準是保證測量結(jié)果準確和可靠關(guān)鍵。以下從信號源選擇、校準與驗證、操作規(guī)范三個方面,提供系統(tǒng)
    發(fā)表于 04-07 14:49