在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

代碼的可重用性是代碼開發和確保可維護性的關鍵

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

掃碼添加小助手

加入工程師交流群

實現嵌入式應用程序的過程很好理解:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

審核編輯:郭婷

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

    關注

    5146

    文章

    19611

    瀏覽量

    316409
  • RTOS
    +關注

    關注

    24

    文章

    846

    瀏覽量

    120980
  • C++
    C++
    +關注

    關注

    22

    文章

    2118

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    PCBA應變測試:確保電子產品可靠關鍵

    PCBA應變測試:確保電子產品可靠關鍵
    的頭像 發表于 02-25 17:28 ?485次閱讀
    PCBA應變測試:<b class='flag-5'>確保</b>電子產品可靠<b class='flag-5'>性</b>的<b class='flag-5'>關鍵</b>

    代碼與傳統開發的區別 低代碼與無代碼開發的區別

    在軟件開發領域,傳統開發、低代碼開發以及無代碼開發是三種不同的
    的頭像 發表于 01-31 10:48 ?583次閱讀

    如何提高嵌入式代碼質量?

    嵌入式代碼的質量是至關重要的。本文將探討如何通過有效的開發方法和工具來提高嵌入式代碼的質量,以確保系統的可靠
    發表于 01-15 10:48

    EMC電機控制器測試整改:確保產品可靠關鍵步驟

    深圳南柯電子|EMC電機控制器測試整改:確保產品可靠關鍵步驟
    的頭像 發表于 01-13 14:25 ?779次閱讀
    EMC電機控制器測試整改:<b class='flag-5'>確保</b>產品可靠<b class='flag-5'>性</b><b class='flag-5'>關鍵</b>步驟

    電源濾波器的可維護性如何

    電源濾波器可維護性包括模塊化設計、易拆卸結構、耐腐蝕及散熱材料、定期清潔檢查、元件更換,維護成本低,智能化設計減少人工需求,定期性能測試監控性能變化。
    的頭像 發表于 01-09 09:48 ?416次閱讀
    電源濾波器的<b class='flag-5'>可維護性</b>如何

    SMT來料質檢:確保電子生產質量的關鍵

    關鍵方面。 1、外觀檢驗 確認元器件 無物理損傷、變形或銹蝕 ,并符合訂單規格。 2、規格驗證 核對元器件的型號、規格及參數與采購要求是否一致。 3、評估 確保元器件引腳能夠滿足
    發表于 01-07 16:16

    代碼在敏捷開發中的應用

    代碼平臺的定義 低代碼平臺提供了一個可視化的、拖放式的用戶界面,允許開發者通過圖形化的方式快速構建應用程序,而無需編寫大量的代碼。這些平臺通常包括預構建的模板、組件和邏輯模塊,使得
    的頭像 發表于 01-07 09:58 ?425次閱讀

    探討篇(三):代碼復用的智慧 - 提升架構的效率與可維護性

    的案例,介紹幾種分布式架構中管理代碼復用的技術。包括代碼復制、共享代碼庫(jar包)、共享服務、邊車服務。對于每一種技術,列出優缺點、適合場景權衡。 本文的觀點源自我在學習與實踐過程
    的頭像 發表于 12-27 15:58 ?593次閱讀
    探討篇(三):<b class='flag-5'>代碼</b>復用的智慧 - 提升架構的效率與<b class='flag-5'>可維護性</b>

    電動工具EMC測試整改:確保電磁兼容關鍵步驟

    深圳南柯電子|電動工具EMC測試整改:確保電磁兼容關鍵步驟
    的頭像 發表于 12-02 11:25 ?508次閱讀
    電動工具EMC測試整改:<b class='flag-5'>確保</b>電磁兼容<b class='flag-5'>性</b>的<b class='flag-5'>關鍵</b>步驟

    Java代碼之美,從遵循樣式規范開始

    作者:京東零售 劉仲偉 在軟件開發的世界里,代碼不僅是程序的基石,更是程序員交流的通用語言。而Java,作為一門廣泛應用于企業級應用的編程語言,其代碼的可讀和一致
    的頭像 發表于 11-27 11:42 ?545次閱讀
    Java<b class='flag-5'>代碼</b>之美,從遵循樣式規范開始

    代碼開發平臺,低成本快速搭建云MES系統

    代碼平臺是一種可視化的軟件高效開發平臺,通過抽象和最小化手工編碼的方式,為開發和部署定制化應用提速。萬界星空科技AI低代碼云MES系統通過拖拽、配置等圖形化操作,快速
    的頭像 發表于 11-18 15:43 ?457次閱讀
    低<b class='flag-5'>代碼</b><b class='flag-5'>開發</b>平臺,低成本快速搭建云MES系統

    單片機芯片開發-單片機方案開發關鍵技巧和流程步驟!

    和驅動,將簡化后續開發的復雜。 編寫與調試代碼: 在編寫代碼時,建議采用模塊化設計,這樣便于后續的維護和升級。
    發表于 09-26 17:04

    單CPU 雙項目開發實現更好的維護和可行應用說明

    電子發燒友網站提供《單CPU 雙項目開發實現更好的維護和可行應用說明.pdf》資料免費下載
    發表于 09-12 09:42 ?0次下載
    單CPU 雙項目<b class='flag-5'>開發</b>實現更好的<b class='flag-5'>維護</b><b class='flag-5'>性</b>和可行<b class='flag-5'>性</b>應用說明

    代碼整潔之道-大師眼中的整潔代碼是什么樣

    幾個月前寫了一篇文章“如何寫出難以維護代碼”,從中能大概了解到不好維護代碼是什么樣,有哪些壞味道,那肯定有人會反問,難以維護
    的頭像 發表于 09-09 16:30 ?624次閱讀
    <b class='flag-5'>代碼</b>整潔之道-大師眼中的整潔<b class='flag-5'>代碼</b>是什么樣
    主站蜘蛛池模板: 四虎影院免费在线播放 | 久久男人网| 国产综合在线视频 | 国产欧美一区二区日本加勒比 | 亚洲三级在线看 | 免费国产成人α片 | 欧美一级特黄aaaaaa在线看片 | 日本色图在线 | 免费播放一区二区三区 | 182福利视频 | 69女poren16| 美女视频黄视大全视频免费网址 | 国产特级 | 国产狂喷冒白浆免费视频 | 久久99久久精品97久久综合 | 亚洲天堂.com | 在线视频人人视频www | 2021最新久久久视精品爱 | 色婷婷六月 | 思思久久96热在精品不卡 | 国产一区二卡三区四区 | 一级特黄aaa大片在线观看 | 天堂最新版 | 国产成人高清一区二区私人 | 午夜视频在线观看免费高清 | 嫩草影院永久入口在线观看 | 欧美3p精品三区 | 免费观看激色视频网站bd | 夜夜天天| 激情久久久久久久久久久 | 日本黄视频在线播放 | 国产操比视频 | 日本二区免费一片黄2019 | 88av免费观看 | 99久久免费精品视频 | 亚洲五月综合网色九月色 | 免费人成网555www | 午夜精品久久久久久久99 | 免费播放视频 | 欧美综合国产精品日韩一 | 免费日韩一级片 |