chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

審核編輯:郭婷

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

    關注

    5208

    文章

    20620

    瀏覽量

    336688
  • RTOS
    +關注

    關注

    25

    文章

    868

    瀏覽量

    123200
  • C++
    C++
    +關注

    關注

    22

    文章

    2124

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是低代碼:低代碼開發(fā)平臺詳解 5個優(yōu)質低代碼平臺工具

    開發(fā)平臺:開放靈活的企業(yè)級優(yōu)選 JNPF是目前低代碼平臺的標桿之一,核心優(yōu)勢在于“開放靈活、代碼可控”,適合需要構建核心業(yè)務系統(tǒng)(ERP、MES、CRM等)的中大型企業(yè),尤其對技術自主
    發(fā)表于 04-07 16:03

    Linux內核編碼風格權威總結:從縮進到底層設計,讓你的代碼更“內核味”

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

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

    維護,尤其是當整個應用都存在于單個文件或松散關聯(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應用代碼混淆技術方案

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

    確保X光設備檢測的有效和準確關鍵技巧

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

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

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

    2025支持AI 驅動數字化轉型的低代碼開發(fā)平臺有哪些

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

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

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

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

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

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

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

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

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

    什么是零代碼平臺?

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

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

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