女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

嵌入式代碼的可移植性和可復(fù)用性

strongerHuang ? 來源:最后一個bug ? 作者:bug菌 ? 2022-11-10 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近幾天在完成一個項目的EVT收尾工作,EVT這個名詞可能有些朋友不是很熟悉,EVT(Engineering Verification Test)表示進行工程驗證測試階段。

一般的新產(chǎn)品開發(fā)都分為三個階段 : EVT、DVT和PVT,EVT主要是調(diào)試單板,設(shè)計方案的可行性驗證,所以這個階段非常的關(guān)鍵,而后面幾個階段在流程比較成熟的公司,一般都是順理成章的事。

這次給我感受頗深的是代碼的可移植性和可復(fù)用性,所以給大家分享一下。

代碼的價值

其實軟件都是朝著,高內(nèi)聚、低耦合、良好的可移植性以及較強的可復(fù)用性來不斷發(fā)展的,其中高內(nèi)聚和低耦合就不多說了,這兩點跟項目的軟件功能結(jié)構(gòu)劃分存在較大的聯(lián)系,而可移植性和可復(fù)用性就相對比較通用和獨立

可移植性與我們平時所說的跨平臺能力比較相近,而軟件復(fù)用則是一種通過已有軟件子件來構(gòu)建新產(chǎn)品軟件的能力。

這些代碼屬性都將成為評估代碼價值的指標(biāo),很多朋友該說了,嵌入式中的代碼不就是在滿足客戶需求的前提下穩(wěn)定運行嗎?bug不要太多就好。

沒錯,但這屬于代碼最基本的價值,也是被稱為代碼本該有的價值,否則那不叫代碼,叫"隨隨便便默寫的abc"。

要想成為一名優(yōu)秀的程序員,滿足基本的代碼價值還遠(yuǎn)遠(yuǎn)不夠,還要有能力創(chuàng)造代碼的其他價值,讓代碼的生命力延續(xù)得更久,其中可移植性和可復(fù)用性是衡量的重要指標(biāo)。

可移植與可復(fù)用

開發(fā)一套軟件,猶如生產(chǎn)一套工具,大部分情況下都不提倡一次性工具,你所開發(fā)的東西不僅能夠滿足當(dāng)前需求,還需要為以后相似的開發(fā)或者應(yīng)用以及產(chǎn)品的更新?lián)Q代提供支持。

比如拿構(gòu)建的濾波算法庫,每次用到新的濾波算法都不會與實際的項目耦合,而是單獨分離出來與算法庫融合,并且開放出較全的對外接口

這樣僅僅只是考慮了軟件的可復(fù)用能力,還要考慮該庫的跨平臺能力,比如把與平臺相關(guān)的部分抽出來進行各平臺的兼容等處理來加強各部分的可移植性。

其實很多時候有些人把軟件的可復(fù)用更多的看成是一種縱向的可移植能力。

這樣當(dāng)我們進行下一個項目軟件開發(fā)的時候,前期就可以直接把該庫移植過去,后面就不需要再“重復(fù)造輪子”了。

一方面縮短了嵌入式軟件的開發(fā)周期,另一方面相應(yīng)的代碼也會更加的穩(wěn)定,從而提高了產(chǎn)品交付能力。

嵌入式更需要

在嵌入式軟件開發(fā)中,代碼的可移植和可復(fù)用能力相對而言會有更多的訴求。嵌入式就是用有限的資源來構(gòu)建特定的應(yīng)用場景,這句話里面有兩個詞"有限"“特定”,我覺得這不僅把嵌入式描述清楚了,而且把嵌入式與其他領(lǐng)域的區(qū)別道出來了。

很多做嵌入式的朋友玩了一段時間更上層的應(yīng)用開發(fā),就會覺得上層開發(fā)是那么的輕松,確實那很輕松,因為那些所帶來的便利都是建立在過盛的硬件資源條件下完成的,然而嵌入式與此并不協(xié)調(diào)。

有過較長時間嵌入式軟件開發(fā)的朋友,應(yīng)該有一個感受--"嵌入式太雜了",首先還不說各種應(yīng)用的場景,單單嵌入式平臺的底層驅(qū)動就非常的繁雜,平臺種類繁多,同一平臺下不同系列外設(shè)也會存在差異等等,甚至這些繁多的軟件版本管控都是一個大學(xué)問。

剛開始學(xué)單片機的朋友,在起初都會有這樣的挫敗感,”又換MCU了呀?感覺又要重頭開始學(xué)了?有開發(fā)板嗎?有參考demo嗎?“等等。

其實真正參加工作以后,幾年下來接觸到好幾款芯片應(yīng)該不是什么新鮮事了,甚至那些芯片都非常的冷門,所以在各平臺上都游刃有余是一種重要能力的體現(xiàn)。

隨著芯片工藝和技術(shù)的提升,MCU各方面的性能和功能都有加強,底層驅(qū)動部分的開發(fā)也是越來越復(fù)雜,datasheet更是需要經(jīng)常查閱,因為很多時候廠家的例程無法滿足目前的使用需求。

然而各大廠家都有自己的一套外設(shè)驅(qū)動流程和配套開發(fā)風(fēng)格,沒有得到統(tǒng)一,如果經(jīng)常使用同一家廠家的產(chǎn)品,影響相對小一點。

比如st庫就為大家做了這一塊的工作,只要是使用st系列的MCU很多驅(qū)動都是通用的,但是也免不了標(biāo)準(zhǔn)庫的停更和hal庫與llc庫的誕生,為了適應(yīng)新鮮的東西,都需要花時間去測試、評估和修改。

所以對于底層驅(qū)動開發(fā)的復(fù)雜度,目前來看并沒有很好的辦法,如果驅(qū)動部分與應(yīng)用部分再雜糅在一起,這樣的代碼就大大降低了我們今天談的這兩大屬性。

所以驅(qū)動部分、平臺相關(guān)的都要與具體應(yīng)用代碼進行分離

54608cb6-6090-11ed-8abf-dac502259ad0.png

構(gòu)建中間層

對于底層驅(qū)動為了達到分離的目標(biāo),我們需要構(gòu)建中間層,也有人稱之為硬件抽象層,既然在MCU上底層驅(qū)動庫很難得到較好的統(tǒng)一,通過分層的思想,把驅(qū)動和上層進行分離,通過構(gòu)建一個中間層,中間層就相當(dāng)于一個萬能轉(zhuǎn)換器,提供給上層的將是一套統(tǒng)一的接口,而內(nèi)部通過API適配把底層的差異進行統(tǒng)一,以達到屏蔽掉底層的各種差異性的目的。

說起來好像挺簡單的,其實不然,這套統(tǒng)一的接口是需要定義者對多個平臺非常的熟悉,建立之前豐富的軟件設(shè)計經(jīng)驗之上,并不簡單的傳遞幾個參數(shù),封裝成一個函數(shù)就完事了,往往如果接口統(tǒng)一不好,不僅僅達到到較好的可移植目的,甚至反而降低了處理的效率。

最后

在可移植性方面,對代碼進行平臺驅(qū)動的適配,以及平臺屬性方面的適配(比如數(shù)據(jù)類型的平臺差異等),就可以滿足系統(tǒng)的運作。

面對目前缺芯的境況,代碼的可移植性的價值就體現(xiàn)出來了,可移植性好的改動也非常小。

而對于可復(fù)用能力,體現(xiàn)在新產(chǎn)品軟件的快速構(gòu)建能力了,代碼的可復(fù)用能力越高,公司培養(yǎng)的CV工程師就越多,可復(fù)用性是一個解放程序員的代碼屬性。

為什么有些人越來越強,開發(fā)速度越來越快,很大程度上是因為他們所積累的軟件子類具有較強的可移植性和可復(fù)用能力。

當(dāng)你要進行一個新項目開發(fā)中,只需要把這些可復(fù)用的軟件以模塊的方式進行拼湊和協(xié)調(diào)即可實現(xiàn)一個你想要的工程,就跟我們建房子也是類似的道理。

中間件以上的軟件部分,盡量不要使用編譯器或者平臺的特有屬性,比如特定的關(guān)鍵字、函數(shù)、或者編譯器的擴展語法等。

當(dāng)然盡量不要用,并不是說你不要去了解和學(xué)習(xí),如果其對系統(tǒng)性能提升有非常大的幫助,最好是想辦法與實際的應(yīng)用代碼進行分離。







審核編輯:劉清

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

    關(guān)注

    5148

    文章

    19634

    瀏覽量

    316845
  • 濾波算法
    +關(guān)注

    關(guān)注

    2

    文章

    89

    瀏覽量

    13942
  • DVT
    DVT
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    8643
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    256

    瀏覽量

    12073

原文標(biāo)題:嵌入式的可移植性和可復(fù)用性

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何應(yīng)用設(shè)計模式的思想寫出更優(yōu)質(zhì)的嵌入式軟件應(yīng)用程序代碼

    而言,代碼復(fù)用可移植性要求越來越高,以獲得更短的項目周期 和更高的可維護。下面是AIOT時代嵌入式設(shè)備的常見的軟件框架。
    發(fā)表于 06-12 09:38 ?410次閱讀
    如何應(yīng)用設(shè)計模式的思想寫出更優(yōu)質(zhì)的<b class='flag-5'>嵌入式</b>軟件應(yīng)用程序<b class='flag-5'>代碼</b>

    [原創(chuàng)]嵌入式操作系統(tǒng)的可移植性

      嵌入式操作系統(tǒng)的可移植性創(chuàng)易電子整理出品,創(chuàng)易更懂電子, http://52edk.taobao.com/ 全系列阻容感一本全掌控。許多操作系統(tǒng)夸耀自己的可移植性時,愛這樣說
    發(fā)表于 03-16 22:11

    一線研發(fā)之聲:嵌入式C編程經(jīng)驗 之 請寫可移植性高的模塊

    :一線研發(fā)之聲:嵌入式C編程經(jīng)驗 之 請寫可移植性高的模塊* Author:SedateFire E-mail:SedateFire@126.com* Version:1.000 Time
    發(fā)表于 02-05 21:31

    [轉(zhuǎn)]一線研發(fā)之聲:嵌入式C編程經(jīng)驗 之 請寫可移植性高的...

    :一線研發(fā)之聲:嵌入式C編程經(jīng)驗 之 請寫可移植性高的模塊* Author:SedateFire E-mail:SedateFire@126.com* Version:1.000 Time
    發(fā)表于 07-22 14:44

    嵌入式軟件代碼保護系統(tǒng)是由什么構(gòu)成的?

    嵌入式產(chǎn)品由于其獨特的穩(wěn)定性、低廉的成本優(yōu)勢以及優(yōu)良的可移植性, 已經(jīng)在互聯(lián)網(wǎng)、科學(xué)研究、軍事技術(shù)、工業(yè)控制、通訊以及人們的日常生活中得到了廣泛的應(yīng)用。在嵌入式系統(tǒng)中, 如何保護核心的嵌入式
    發(fā)表于 08-15 07:59

    嵌入式Linux下的LCD驅(qū)動程序怎么編寫?

    隨著嵌入式Linux的迅速發(fā)展,由于其沒有昂貴的版權(quán)費,完全開放源代碼裁減可移植性,因此是開發(fā)
    發(fā)表于 11-11 07:33

    基于ARM怎么搭建嵌入式Linux系統(tǒng)?

    。Linux操作系統(tǒng)作為一種源代碼開放、同時支持多種處理器結(jié)構(gòu)的多任務(wù)操作系統(tǒng),具有內(nèi)核小、易裁剪、可移植性好等優(yōu)點,是目前嵌入式系統(tǒng)應(yīng)用與開發(fā)的主流操作系統(tǒng)。本文主要研究在ARM9
    發(fā)表于 04-17 06:56

    嵌入式硬件構(gòu)件與底層驅(qū)動構(gòu)件

    嵌入式硬件構(gòu)件與底層驅(qū)動構(gòu)件基本規(guī)范構(gòu)件化設(shè)計嵌入式硬件構(gòu)件核心構(gòu)件中間構(gòu)件終端構(gòu)件構(gòu)件化設(shè)計構(gòu)件是核心和基礎(chǔ)。復(fù)用為必要的手段。提高軟硬件設(shè)計重用
    發(fā)表于 10-27 09:01

    嵌入式底層開發(fā)為什么選擇C語言

    一、嵌入式系統(tǒng)開發(fā)概述1、傳統(tǒng)開發(fā)模式的缺點:軟件直接和硬件打交道,軟件移植差。嵌入式三要素:軟件、操作系統(tǒng)、硬件嵌入式優(yōu)點:操作系統(tǒng)(
    發(fā)表于 12-17 08:32

    基于Linux的嵌入式瀏覽器的實現(xiàn)方法

    摘要:在嵌入式產(chǎn)品中利用嵌入式瀏覽器獲得網(wǎng)絡(luò)信息是必不可少的,所以嵌入式瀏覽器技術(shù)成為技術(shù)熱點之一,發(fā)展是必然趨勢.嵌入式瀏覽器具有速度快,實時
    發(fā)表于 12-21 07:31

    如何提高移植uC/OS-Ⅱ的ARM嵌入式系統(tǒng)執(zhí)行效率和實時

    如何提高移植uC/OS-Ⅱ的ARM嵌入式系統(tǒng)執(zhí)行效率和實時
    發(fā)表于 03-28 09:48 ?26次下載

    一種移植嵌入式圖形支持系統(tǒng):MiniGUI

    一種移植嵌入式圖形支持系統(tǒng):MiniGUI 為目標(biāo)嵌入式產(chǎn)品選擇適合的嵌入式圖形支持系統(tǒng)成為與選擇
    發(fā)表于 11-30 09:54 ?1062次閱讀
    一種<b class='flag-5'>可</b><b class='flag-5'>移植</b>的<b class='flag-5'>嵌入式</b>圖形支持系統(tǒng):MiniGUI

    構(gòu)建eCos嵌入式系統(tǒng)的步驟教程

    為商用產(chǎn)品。除了商用產(chǎn)品外,還有一些免費的嵌入式操作 系統(tǒng),uClinux是其中比較流行的,而eCos則是另一個選擇。嵌入式可配置操作系統(tǒng)eCos( Embedded Configureable Operating System )的特點是可配置
    的頭像 發(fā)表于 07-22 06:11 ?4308次閱讀

    一文解讀32位單片機的應(yīng)用可移植性

    本文主要介紹了32位單片機的應(yīng)用可移植性.
    發(fā)表于 06-28 03:25 ?0次下載
    一文解讀32位單片機的應(yīng)用<b class='flag-5'>可移植性</b>

    C++可移植性及多線程

    本系列是開源書C++ Best Practises[1]的中文版,全書從工具、代碼風(fēng)格、安全、可維護可移植性、多線程、性能、正確等角
    的頭像 發(fā)表于 10-10 10:26 ?1205次閱讀
    主站蜘蛛池模板: 监利县| 东安县| 千阳县| 北海市| 安新县| 涪陵区| 金昌市| 榆中县| 南江县| 桃源县| 嵊州市| 朔州市| 错那县| 古蔺县| 南宫市| 镇赉县| 海晏县| 东平县| 凉城县| 岗巴县| 海南省| 都匀市| 珲春市| 稻城县| 靖江市| 惠水县| 三都| 济宁市| 星座| 开封市| 靖远县| 和林格尔县| 铁岭市| 崇仁县| 项城市| 裕民县| 铁力市| 阳朔县| 吴旗县| 阳城县| 北辰区|