職位描述
軟件工程師崗位主要職責
1. 參與需求分析與設計:參與嵌入式系統(tǒng)軟件的需求分析、架構設計及模塊設計。
2. 編碼與實現(xiàn): 使用C/C++等語言進行嵌入式軟件(裸機、RTOS或嵌入式Linux應用/驅動)的開發(fā)、調試和優(yōu)化。
3. 驅動開發(fā):開發(fā)、調試和維護底層外設驅動程序(如UART, SPI, I2C, ADC, PWM, USB, Ethernet, CAN等)。
4. 系統(tǒng)集成與調試:與硬件工程師協(xié)作,進行軟硬件聯(lián)調,解決系統(tǒng)級問題。熟練使用示波器、邏輯分析儀等工具進行硬件級調試。
5. 測試與驗證:編寫單元測試、集成測試用例,參與系統(tǒng)測試,確保軟件功能、性能和可靠性滿足要求。
6. 代碼維護與文檔: 編寫和維護清晰的技術文檔(設計文檔、接口文檔、用戶手冊等),遵循代碼規(guī)范和版本控制流程。
7. 問題解決:分析和解決產品在開發(fā)、測試及量產過程中出現(xiàn)的軟件相關問題。
8. 技術跟進:關注嵌入式領域新技術、新趨勢,并評估其在產品中的應用可能性。
任職要求 (技術要求)
1. 教育背景:計算機科學、電子工程、自動化、通信工程或相關專業(yè)或本科及以上學歷。
2. 編程語言:
精通C語言編程,深入理解指針、內存管理、數(shù)據(jù)結構等。
3. 嵌入式平臺:
深入理解ARM Cortex-M/A系列架構,或有豐富的其他MCU/MPU(如MIPS, RISC-V, PowerPC等)開發(fā)經驗。
具有豐富的裸機程序開發(fā)經驗。
具備以下至少一種經驗:
嵌入式 RTOS:精通FreeRTOS、uC/OS-II/III、RT-Thread、ThreadX等實時操作系統(tǒng)下的應用開發(fā)及內核機制。
嵌入式Linux:熟悉嵌入式Linux開發(fā)環(huán)境,具備應用層開發(fā)和調試經驗。
4. 硬件接口與協(xié)議:
扎實的電子技術基礎,了解數(shù)字/模擬電路原理,具備硬件原理分析及評審能力。
熟練掌握常用外設接口和通信協(xié)議(UART, SPI, I2C, USB, CAN, Ethernet, Modbus等)的軟件驅動開發(fā)與調試。
5. 開發(fā)工具:
熟練使用至少一種主流IDE(Keil MDK, IAR Embedded Workbench, Eclipse+GCC, VSCode+GCC/Clang等)。
精通使用調試工具(JTAG/SWD調試器,如J-Link, ST-Link)。
熟練使用版本控制工具(Git)。
熟悉常用測試和調試儀器(示波器、邏輯分析儀、萬用表等)。
6. 系統(tǒng)理解:
理解嵌入式系統(tǒng)的基本原理(啟動流程、中斷處理、時鐘系統(tǒng)、內存管理)。
熟悉常用的總線協(xié)議和接口標準,如CAN、485等。
了解基本的硬件原理圖,能看懂Datasheet和參考手冊。
7. 加分項
7.1 具體行業(yè),如:汽車電子/AUTOSAR、醫(yī)療器械、工業(yè)控制、消費電子、物聯(lián)網IoT、航空航天]領域開發(fā)經驗。
7.2 熟悉Bootloader開發(fā)、固件升級機制。
7.3 有低功耗設計、優(yōu)化經驗。
7.4 熟悉常用無線通信協(xié)議(Wi-Fi, Bluetooth/BLE, Zigbee, LoRa, NB-IoT等)的集成與開發(fā)。
7.5 有安全相關的開發(fā)經驗(加密算法、安全啟動、Secure Boot, TrustZone等)。
7.6 有RTOS內核移植或驅動框架開發(fā)經驗。
7.7 有在ROTS下移植過或使用過LWIP協(xié)議棧經驗。