[導讀]關注「嵌入式大雜燴」,選擇「星標公眾號」一起進步!作者|Elektor譯者?|?禾沐國內(nèi)嵌入式軟件開發(fā)一直比較傳統(tǒng),除涉及關鍵系統(tǒng)外的多數(shù)項目,都是在“編程”優(yōu)先的開發(fā)方式驅(qū)動下實施的。這背后的原因有很多,除了產(chǎn)品上市壓力大、建模和仿真工具價格不菲之外,還有一個重要因素——嵌入式...
作者 | Elektor
實用 | 一個簡單易用的菜單框架
啄木鳥帶來的危險
那是一次“原來是這樣!”的頓悟。當時正在為了一個培訓課程進行準備,我在想,為什么嵌入式軟件工程師如此不愿意使用在其他軟件開發(fā)過程中常見的概念和方法呢?
編程太快了嗎?
一個原因可能是來自這一代程序員的經(jīng)歷。他們的生涯從資源受限的8位微控制器開始,用匯編語言最高程度地利用硬件的性能是王道,抽象化和工具自動生成的代碼只能意味著代碼冗余和失去對代碼的完全控制。轉(zhuǎn)移到C語言對于一些人來說都有難度,盡管C語言已經(jīng)非常貼近硬件了。
推廣新的開發(fā)方式?
過去,運行在微控制器上的代碼往往可以用一個簡單的狀態(tài)機表示,如今微控制器需要解決多維的問題。今天的微控制器可以通過磁場導向控制(FOC)技術對電動機進行換向操作,并同時運行其他任務。
為什么測試開始得很晚?
在匆匆開始編程之后,許多嵌入式開發(fā)團隊往往會等到已經(jīng)編寫了不少代碼后才考慮開始測試問題,這樣做的背后有很多繁雜的原因,比如錯誤地認為測試必須由一個團隊或者部門負責,或是缺乏清晰、易于測試的軟件需求。
多少測試才足夠?
對初次接觸測試的工程師來說,確定最佳的策略并不簡單。像《愛麗絲夢游仙境》中的兔子洞一深入研究測試的方法,你會覺得需要測試的東西越來越多。
在硬件上快速測試
理想條件下,應用在開發(fā)過程中應該進行硬件在環(huán)(HIL)測試,這對于在高壓、高電流或者有活動部件的環(huán)境中運行的應用尤其重要。
尋找偶發(fā)失效
今天的汽車應用非常復雜,在一輛汽車上運行的代碼量和Windows NT類似。代碼開發(fā)的分布性意味著很多供應商(甚至客戶)都參與到了其中。偶發(fā)的失效往往和定時有關,而不是功能,多核處理器和虛擬機的廣泛應用更是加劇了這一情況。
是更加重視建模的時候了?
嵌入式軟件開發(fā)領域一直比較傳統(tǒng)?!凹庇诰幊獭钡乃季S方式被微控制器供應商提供的編程和調(diào)試工具鏈所加劇,這些工具多是免費的,這樣一來其他付費授權(quán)的工具鏈就失去了存在的意義。
實用 | 一個簡單易用的菜單框架





