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

當前位置:首頁 > 嵌入式 > 嵌入式分享
[導讀]將新的嵌入式產品快速部署到市場中的一個策略是利用平臺。你或你的公司可能有一個產品路線圖來確定未來幾年將要發(fā)布的產品。由于客戶需要稍有不同的特性、配置和定制,開發(fā)一個OT產品是不實際的。相反,如果您創(chuàng)建了一個具有通用核心軟件的產品平臺,可以擴展和配置,那么您就可以大大降低成本和開發(fā)時間。讓我們來探索編寫可配置固件的五個技巧,我認為這將極大地改進您的軟件。

將新的嵌入式產品快速部署到市場中的一個策略是利用平臺。你或你的公司可能有一個產品路線圖來確定未來幾年將要發(fā)布的產品。由于客戶需要稍有不同的特性、配置和定制,開發(fā)一個OT產品是不實際的。相反,如果您創(chuàng)建了一個具有通用核心軟件的產品平臺,可以擴展和配置,那么您就可以大大降低成本和開發(fā)時間。讓我們來探索編寫可配置固件的五個技巧,我認為這將極大地改進您的軟件。

技巧1-從自上而下的方法入手

嵌入式軟件團隊通常很難編寫可配置的軟件,因為他們考慮的是自下而上的方法。從硬件上接近軟件,將硬件放在設計中心,而不是應用程序或用戶。結果通常是緊密耦合的代碼,并且?guī)缀鯖]有內置的配置。這正是我們不希望看到的。

改變方法,從上到下思考嵌入式軟件可以改變一切。開發(fā)者將不得不考慮他們的客戶將如何使用這些產品。很多時候,通過不同客戶的眼光來觀察一個產品,就會立即確定需要配置的地方。一個客戶可能需要電動機轉速設置A,而另一個需要電動機設置B.在電動機故障故障中,一個客戶可能希望LED為常亮上,而另一個客戶則希望它在5赫茲閃爍。

從頂部開始,與客戶一起工作,到硬件將提高軟件的可配置性。

技巧#2-利用配置文件

如果你從固件和微控制器行業(yè)的外部看,你會發(fā)現從事應用程序的軟件開發(fā)人員使用配置文件來調整他們的軟件。配置文件可以幫助開發(fā)人員決定他們希望應用程序在不同配置設置下的行為。顯然,配置文件為軟件提供了一定程度的定制,可以提高重用性,并可能降低總體成本。

固件開發(fā)人員可能在非易失性內存中包含一些配置參數,以允許自定義;然而,這些自定義只影響系統(tǒng)的運行時行為。完全改變核心代碼行為的配置如何?

我經常用來改進嵌入式軟件的可配置性的一個有趣的技術是使用自動生成代碼的配置文件。例如,我編寫了一個比頓工具包,它將在一個具有線程配置信息的YMAL文件中讀取,并生成被編譯到我的應用程序中的C/C++代碼。如果客戶需要自定義特性,可以將新線程添加到配置中并自動納入構建中。這個想法可以超越線程應用于產品的特定信息,如電機的數量,繼電器,存在或不存在的硬件等等。

入到生成器中,生成基于配置設置的源代碼。

技巧3-在代碼中創(chuàng)建配置表

在我的職業(yè)生涯的大部分時間里,我使用的一種編寫可配置代碼的技術是創(chuàng)建和使用配置表。配置表通常被定義為結構的數組.例如,如果我想為數字輸入/輸出外圍創(chuàng)建一個配置表,我可能會根據所支持的特性定義一個類似于下列代碼的結構:

typedef struct

{

DioChannel_t Channel;

uint8_t Resistor;

uint8_t DriveStrength;

uint8_t PassiveFilter;

uint8_t Direction;

uint8_t State;

uint8_t Function;

}DioConfig_t;

上面的結構定義了通常用于初始化DIA銷的特性。然后,我們可以創(chuàng)建一個結構的數組,其中包含每個DOS銷的配置信息,比如:

static Dio_Config_t const Dio_Config[] =

{

// Name, Resister, Drive, Filer, Dir, State, Function

{PORTA_1, DISABLED, HIGH, DISABLED, OUTPUT, HIGH, FCN_GPIO},

{PORTA_2, DISABLED, HIGH, DISABLED, OUTPUT, HIGH, FCN_GPIO},

{SWD_DIO, PULLUP, LOW, DISABLED, OUTPUT, HIGH, FCN_MUX7},

{PORTA_4, DISABLED, HIGH, DISABLED, OUTPUT, HIGH, FCN_GPIO},

{PORTA_5, DISABLED, HIGH, DISABLED, INPUT, HIGH, FCN_GPIO},

{PORTA_6, DISABLED, HIGH, DISABLED, OUTPUT, HIGH, FCN_GPIO},

{PORTA_7, DISABLED, HIGH, DISABLED, OUTPUT, HIGH, FCN_GPIO},

{PORTA_8, DISABLED, HIGH, DISABLED, OUTPUT, HIGH, FCN_GPIO},

};

您會喜歡這些配置表,原因有幾個:

· 它們是人類可讀的,對代碼評審很有幫助

· 它們可以通過讀取YMAL、JSON等文件的腳本生成

· 如果需要,可以由人手工編輯

· 通過在數組上循環(huán)簡化初始化代碼

· 它是可移植、可重用和可伸縮的

· 它們可以用于硬件和軟件配置

技巧4-使用抽象層

對于許多固件,您可能注意到的一個問題是它與硬件緊密耦合。固件開發(fā)人員經常將他們的應用程序代碼直接綁定到硬件上,這使得固件的移植和重用變得困難。正如您在芯片短缺期間可能學到的,如果您需要重新配置應用程序以使用一個新的芯片,那么回去重做所有這些代碼將是一場噩夢。您需要能夠很容易地配置您的應用程序來使用任何硬件。

一種解決方案是使用抽象層。抽象層為訪問驅動程序必須堅持的硬件創(chuàng)建一個接口。應用程序代碼調用抽象。這個概念被稱為依賴倒置原理,它是面向對象設計的堅實原理的一部分。通過使用硬件和應用程序代碼之間的接口,您可以顛倒依賴關系來打破硬件/應用程序依賴關系,并使軟件和硬件更易于配置。

技巧5-多態(tài)性

如果您是一個C程序員,您可能會認為多態(tài)性是一個壞詞或在C中不存在的東西。在這兩種情況下,你都是錯誤的。多態(tài)性是一種強大的技術,允許我們在編譯時(靜態(tài)多態(tài)性)或運行時(動態(tài)多態(tài)性)配置我們的應用程序行為。多態(tài)性允許單個接口表示不同類型的對象。

例如,假設你的產品閃爍著LED。LED可以通過DOC端口連接到硬件,可以連接到PBM通道,也可以連接到SPI或I2C上的外部I/O擴展器,等等。根據硬件版本或客戶需求,可能會改變LED的連接方式。雖然這似乎是一個令人討厭的配置問題,但是開發(fā)人員可以使用多態(tài)性來編寫不在乎LED如何連接的應用程序代碼。多態(tài)性可以提高可配置性,以及可重用性和靈活性。

結論

今天的嵌入式產品不再是未來幾年制造的一次性產品。技術的創(chuàng)新和變化是指數級的,團隊需要開發(fā)可重用的平臺代碼,以便在未來幾年推出許多產品。為了滿足這一需求,您必須在固件中采用可配置性。在某些情況下,可配置固件將增加復雜性和啟動成本,從內存和性能的角度來看,可能甚至效率更低。然而,可配置性將給予企業(yè)開發(fā)嵌入式產品的靈活性和可伸縮性,以應對未來客戶的挑戰(zhàn)。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉