一、崗位概述
嵌入式軟件開發(fā)工程師主要負(fù)責(zé)嵌入式系統(tǒng)的軟件設(shè)計(jì)、開發(fā)與維護(hù)工作。需運(yùn)用專業(yè)知識(shí)和技能,結(jié)合 Linux 開發(fā)經(jīng)驗(yàn),開發(fā)出滿足產(chǎn)品需求的嵌入式軟件,確保軟件的穩(wěn)定性、高效性和安全性。與硬件工程師、測(cè)試工程師等團(tuán)隊(duì)成員緊密協(xié)作,共同推進(jìn)項(xiàng)目的順利進(jìn)行,為公司產(chǎn)品的智能化和競(jìng)爭(zhēng)力提升提供技術(shù)支持。
二、主要職責(zé)
(一)需求分析與設(shè)計(jì)
與產(chǎn)品團(tuán)隊(duì)、市場(chǎng)部門等密切溝通,深入理解產(chǎn)品的功能需求、性能要求和用戶體驗(yàn)期望,將其轉(zhuǎn)化為詳細(xì)的軟件需求規(guī)格說明書。
根據(jù)需求規(guī)格說明書,進(jìn)行嵌入式軟件的總體架構(gòu)設(shè)計(jì),包括系統(tǒng)模塊劃分、接口定義、數(shù)據(jù)流向等。充分考慮軟件的可擴(kuò)展性、可維護(hù)性和兼容性,確保架構(gòu)的合理性和先進(jìn)性。
運(yùn)用 Linux 操作系統(tǒng)的特性和優(yōu)勢(shì),設(shè)計(jì)適合嵌入式系統(tǒng)的軟件方案,如選擇合適的內(nèi)核版本、文件系統(tǒng)、驅(qū)動(dòng)程序等。對(duì)設(shè)計(jì)方案進(jìn)行詳細(xì)的技術(shù)評(píng)估和可行性分析,與團(tuán)隊(duì)成員進(jìn)行充分的溝通和討論,確保方案的順利實(shí)施。
(二)代碼開發(fā)與實(shí)現(xiàn)
依據(jù)軟件設(shè)計(jì)方案,使用 C、C++ 等編程語言,在 Linux 開發(fā)環(huán)境下進(jìn)行嵌入式軟件的編碼工作。嚴(yán)格遵循公司的編碼規(guī)范和開發(fā)流程,保證代碼的質(zhì)量和可讀性。
負(fù)責(zé)嵌入式系統(tǒng)的驅(qū)動(dòng)程序開發(fā),如串口、網(wǎng)口、USB、SPI 等設(shè)備驅(qū)動(dòng),確保硬件設(shè)備與軟件系統(tǒng)的正常通信和協(xié)同工作。對(duì)驅(qū)動(dòng)程序進(jìn)行調(diào)試和優(yōu)化,提高設(shè)備的性能和穩(wěn)定性。
開發(fā)嵌入式系統(tǒng)的應(yīng)用程序,實(shí)現(xiàn)產(chǎn)品的各種功能,如數(shù)據(jù)采集、處理、顯示、通信等。運(yùn)用多線程、進(jìn)程間通信等技術(shù),提高軟件的并發(fā)處理能力和實(shí)時(shí)性。
對(duì)開發(fā)的代碼進(jìn)行單元測(cè)試,使用專業(yè)的測(cè)試工具和框架等,及時(shí)發(fā)現(xiàn)和解決代碼中的缺陷和問題。編寫詳細(xì)的測(cè)試報(bào)告,記錄測(cè)試結(jié)果和問題處理情況。
(三)系統(tǒng)集成與調(diào)試
將開發(fā)完成的軟件模塊與硬件平臺(tái)進(jìn)行集成,進(jìn)行系統(tǒng)級(jí)的調(diào)試和測(cè)試。解決集成過程中出現(xiàn)的軟硬件兼容性問題、通信問題等,確保系統(tǒng)的正常運(yùn)行。
在 Linux 環(huán)境下進(jìn)行系統(tǒng)性能優(yōu)化,如內(nèi)存管理優(yōu)化、CPU 利用率優(yōu)化、算法優(yōu)化等。通過性能分析工具,找出系統(tǒng)的性能瓶頸并進(jìn)行針對(duì)性的優(yōu)化。
參與產(chǎn)品的硬件測(cè)試工作,提供軟件方面的技術(shù)支持和問題定位。與硬件工程師緊密合作,共同解決硬件設(shè)計(jì)中可能影響軟件功能的問題。
對(duì)嵌入式系統(tǒng)進(jìn)行穩(wěn)定性測(cè)試,模擬各種實(shí)際應(yīng)用場(chǎng)景,確保系統(tǒng)在長(zhǎng)時(shí)間運(yùn)行過程中不出現(xiàn)崩潰、死機(jī)等問題。對(duì)測(cè)試過程中出現(xiàn)的問題進(jìn)行深入分析,制定解決方案并跟蹤問題的解決進(jìn)度。
(四)文檔編寫與維護(hù)
編寫詳細(xì)的軟件開發(fā)文檔,包括需求規(guī)格說明書、設(shè)計(jì)文檔、用戶手冊(cè)、測(cè)試報(bào)告等。確保文檔的準(zhǔn)確性、完整性和規(guī)范性,為后續(xù)的產(chǎn)品維護(hù)、升級(jí)和技術(shù)支持提供有力的依據(jù)。
對(duì)軟件文檔進(jìn)行定期更新和維護(hù),隨著軟件的不斷開發(fā)和升級(jí),及時(shí)修改和完善相關(guān)文檔,保證文檔與實(shí)際軟件版本的一致性。
整理和歸檔開發(fā)過程中的技術(shù)資料和代碼,建立完善的代碼庫和文檔管理系統(tǒng),方便團(tuán)隊(duì)成員的查閱和共享。
(五)技術(shù)研究與創(chuàng)新
關(guān)注嵌入式軟件開發(fā)領(lǐng)域的最新技術(shù)和發(fā)展趨勢(shì),研究和探索新的技術(shù)應(yīng)用于公司產(chǎn)品中,如人工智能、物聯(lián)網(wǎng)、云計(jì)算等。為公司的技術(shù)創(chuàng)新和產(chǎn)品升級(jí)提供技術(shù)建議和方案。
參與公司內(nèi)部的技術(shù)交流和分享活動(dòng),分享自己的技術(shù)經(jīng)驗(yàn)和研究成果,促進(jìn)團(tuán)隊(duì)整體技術(shù)水平的提升。
(六)團(tuán)隊(duì)協(xié)作與溝通
與硬件工程師、測(cè)試工程師、產(chǎn)品經(jīng)理等團(tuán)隊(duì)成員保持密切的溝通和協(xié)作,及時(shí)解決項(xiàng)目中出現(xiàn)的問題。參與項(xiàng)目的周會(huì)、評(píng)審會(huì)等會(huì)議,匯報(bào)工作進(jìn)展和問題。
積極參與團(tuán)隊(duì)的項(xiàng)目討論和決策過程,提供專業(yè)的技術(shù)意見和建議,為團(tuán)隊(duì)的發(fā)展和項(xiàng)目的成功貢獻(xiàn)自己的力量。
三、任職要求
本科及以上學(xué)歷,計(jì)算機(jī)科學(xué)、軟件工程、電子工程等相關(guān)專業(yè)。
具有8年以上嵌入式軟件開發(fā)經(jīng)驗(yàn),其中至少3年以上 Linux 開發(fā)經(jīng)驗(yàn)。
熟練掌握 C、C++ 等編程語言,熟悉 Linux 操作系統(tǒng)的基本原理和開發(fā)環(huán)境。
有從零搭建開發(fā)環(huán)境,或者軟件工程優(yōu)化經(jīng)驗(yàn)者優(yōu)先。
有儀器儀表類設(shè)備嵌入式軟件開發(fā)經(jīng)驗(yàn)者優(yōu)先。
具備良好的嵌入式系統(tǒng)驅(qū)動(dòng)開發(fā)和應(yīng)用程序開發(fā)能力,熟悉常見的硬件接口和通信協(xié)議。
掌握軟件開發(fā)的基本流程和方法,具備良好的代碼編寫習(xí)慣和文檔編寫能力。
具有較強(qiáng)的問題分析和解決能力,能夠獨(dú)立承擔(dān)復(fù)雜的開發(fā)任務(wù)。
具備良好的團(tuán)隊(duì)協(xié)作精神和溝通能力,能夠與不同專業(yè)背景的人員有效合作。
對(duì)新技術(shù)有強(qiáng)烈的學(xué)習(xí)興趣和探索精神,具有創(chuàng)新意識(shí)和能力。
有指導(dǎo)新員工或者低級(jí)別工程師經(jīng)驗(yàn)的優(yōu)先。