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