工作內(nèi)容:固件架構(gòu)規(guī)劃與設(shè)計
深入了解產(chǎn)品的功能需求、性能指標(biāo)、應(yīng)用場景和用戶期望,確定固件的功能模塊。
根據(jù)產(chǎn)品的特點和要求,選擇合適的固件架構(gòu)模式,設(shè)計固件的整體架構(gòu),包括模塊之間的層次關(guān)系、通信方式和數(shù)據(jù)流向;針對固件開發(fā),選擇合適的編程語言、開發(fā)工具、操作系統(tǒng)、和硬件平臺。
參與硬件設(shè)計過程,與硬件工程師共同確定硬件和固件之間的接口規(guī)范,協(xié)助硬件團隊進行硬件調(diào)試;為硬件設(shè)備開發(fā)底層驅(qū)動程序,使固件能夠有效地控制和管理各種硬件資源;優(yōu)化驅(qū)動程序的性能,提高硬件設(shè)備的訪問效率,降低功耗。
根據(jù)架構(gòu)設(shè)計,負(fù)責(zé)開發(fā)固件的核心功能模塊;實現(xiàn)通信模塊,確保固件能夠與外部設(shè)備進行穩(wěn)定可靠的通信;將各個功能模塊集成到一起,構(gòu)建完整的固件系統(tǒng),進行系統(tǒng)聯(lián)調(diào)優(yōu)化。
制定固件測試策略、測試計劃和固件升級策略等。
任職要求:
學(xué)歷要求:本科及以上學(xué)歷,電子、通信、計算機、自動化等相關(guān)專業(yè)畢業(yè)。
專業(yè)技能:
編程語言精通:深入掌握 C、C++ 語言,能夠運用其進行高效、健壯的代碼編寫,熟悉匯編語言者更佳。例如在一些對性能要求極高的嵌入式系統(tǒng)中,如工業(yè)控制、汽車電子等領(lǐng)域,匯編語言的運用可以對關(guān)鍵代碼段進行優(yōu)化,提升系統(tǒng)響應(yīng)速度和資源利用效率。
硬件知識扎實:了解常見的物聯(lián)網(wǎng)硬件平臺(如ARM、MCU等)及其特性,微控制器以及外圍電路的工作原理和設(shè)計,能夠根據(jù)硬件平臺的特點進行固件優(yōu)化、能夠看懂硬件原理圖,并與硬件工程師緊密合作進行軟硬件協(xié)同設(shè)計。例如在物聯(lián)設(shè)備的固件開發(fā)中,需要精準(zhǔn)理解傳感器、執(zhí)行器與微控制器的硬件連接和交互邏輯,從而設(shè)計出穩(wěn)定可靠的固件架構(gòu),確保設(shè)備功能的正常實現(xiàn)和性能優(yōu)化。
熟悉通信協(xié)議:對物聯(lián)網(wǎng)固件架構(gòu)有深入的理解,熟悉物聯(lián)網(wǎng)通信協(xié)議(如MQTT、CoAP、HTTP等)和固件開發(fā)流程,對 SPI、I2C、UART、USB、CAN 等常見通信協(xié)議有深入理解,并能夠熟練進行相關(guān)協(xié)議的固件編程實現(xiàn)。
操作系統(tǒng)及驅(qū)動開發(fā):具備操作系統(tǒng)(如嵌入式 Linux、FreeRTOS、RT - Thread 等)內(nèi)核裁剪、移植和驅(qū)動開發(fā)能力。熟悉嵌入式 Linux 操作系統(tǒng),根據(jù)設(shè)備硬件資源和功能需求對內(nèi)核進行定制化裁剪和優(yōu)化,同時開發(fā)出適配各類硬件設(shè)備(如網(wǎng)絡(luò)芯片、存儲設(shè)備等)的驅(qū)動程序,構(gòu)建一個穩(wěn)定、高效且功能完備的固件運行環(huán)境。
架構(gòu)設(shè)計與優(yōu)化:擁有豐富的固件架構(gòu)設(shè)計經(jīng)驗,能夠根據(jù)產(chǎn)品需求設(shè)計出高擴展性、高穩(wěn)定性、低功耗的固件架構(gòu)。通過合理的架構(gòu)設(shè)計(如采用事件驅(qū)動架構(gòu)、優(yōu)化任務(wù)調(diào)度算法等),在保證設(shè)備功能正常運行的前提下,最大限度地延長電池續(xù)航時間,提升用戶體驗。
算法與數(shù)據(jù)結(jié)構(gòu):熟悉常用算法(如排序、搜索、加密算法等)和數(shù)據(jù)結(jié)構(gòu)(如鏈表、棧、隊列、樹、圖等),并能將其靈活應(yīng)用于固件開發(fā)中,以優(yōu)化系統(tǒng)性能和資源利用效率。例如在數(shù)據(jù)加密傳輸?shù)膱鼍爸校枰\用合適的加密算法(如 AES、RSA 等)對敏感數(shù)據(jù)進行加密處理,同時選擇高效的數(shù)據(jù)結(jié)構(gòu)來存儲和管理加密密鑰等關(guān)鍵信息,確保數(shù)據(jù)的安全性和完整性。
開發(fā)工具熟練掌握:熟練使用 Keil、IAR、GCC 等開發(fā)工具,熟悉 JTAG、SWD 等調(diào)試接口和調(diào)試技巧,能夠熟練進行代碼的編譯、調(diào)試和優(yōu)化工作。使用 開發(fā)工具時,能夠熟練配置工程選項,利用其調(diào)試功能快速定位和解決固件開發(fā)過程中的各類問題,如內(nèi)存溢出、指針異常、邏輯錯誤等,確保固件的質(zhì)量和穩(wěn)定性。
工作經(jīng)驗
年限要求:一般要求具有 3年以上固件開發(fā)經(jīng)驗,其中至少 2 - 3 年的固件架構(gòu)設(shè)計經(jīng)驗。具備足夠的技術(shù)沉淀和項目經(jīng)驗來應(yīng)對復(fù)雜多變的技術(shù)難題和嚴(yán)格的行業(yè)標(biāo)準(zhǔn)規(guī)范。
項目經(jīng)驗:參與多個復(fù)雜固件項目開發(fā)的經(jīng)驗,如物聯(lián)網(wǎng)設(shè)備(RFID、智能傳感器、智能電表、智能家居網(wǎng)關(guān)等)、工業(yè)控制設(shè)備(PLC、DCS、工業(yè)機器人等)固件開發(fā)項目。可以設(shè)計和優(yōu)化固件設(shè)計,同時能夠快速響應(yīng)市場需求進行功能迭代和升級。