系統(tǒng)的內(nèi)核崩潰轉(zhuǎn)儲(chǔ)機(jī)制耗時(shí)均不可能在30s內(nèi)。寫flash的操作也很耗時(shí)間,實(shí)驗(yàn)顯示,寫2mb數(shù)據(jù)到flash耗時(shí)達(dá)到400ms之多。 (3) 要求能夠支持特定的硬件平臺(tái) 嵌入式系統(tǒng)的硬件多種多樣,上面提到的四種機(jī)制均是針對(duì)x86平臺(tái)提供了較好的支持,而對(duì)于其他體系的硬件支持均不成熟。 由于這些難點(diǎn)的存在,要將上述四種內(nèi)核崩潰轉(zhuǎn)儲(chǔ)機(jī)制中的一種移植到特定的嵌入式應(yīng)用平臺(tái)是十分困難的。因此,針對(duì)上述嵌入式系統(tǒng)的三個(gè)特點(diǎn),本文介紹一種基于特定平臺(tái)的嵌入式linux內(nèi)核崩潰信息記錄機(jī)制lcrt(linux crash record and trace),為定位嵌入式linux系統(tǒng)中軟件故障和解決軟件故障提供輔助手段。 1 linux內(nèi)核崩潰的分析 分析linux內(nèi)核對(duì)于運(yùn)行期間各種“陷阱”的處理可以得知,linux內(nèi)核對(duì)于應(yīng)用程序?qū)е碌腻e(cuò)誤可以予以監(jiān)控,在應(yīng)用程序發(fā)生除零、內(nèi)存訪問越界、緩沖區(qū)溢出等錯(cuò)誤時(shí),linux內(nèi)核的異常處理例程可以對(duì)這些由應(yīng)用程序引起的異常情況予以處理。當(dāng)應(yīng)用程序產(chǎn)生不可恢復(fù)的錯(cuò)誤時(shí),linux內(nèi)核可以僅僅終止產(chǎn)生錯(cuò)誤的應(yīng)用程序,其他應(yīng)用程序仍然可
(1) 攝像設(shè)備的輸出亮度信號(hào)數(shù)值和實(shí)際亮度li之間的非線性; (2) 亮度信號(hào)數(shù)值之間的非線性;(3) 顯示設(shè)備復(fù)現(xiàn)亮度lo 和傳輸過來的亮度信號(hào)數(shù)值之間的非線性。 其復(fù)現(xiàn)亮度lo 和實(shí)際亮度li 之間的關(guān)系可以表示為: 式中, c 為比例系數(shù);γ1 、γ2 、γ3 分別為第( 1) 、第(2) 、第(3) 部分非線性校正系數(shù)。為了保證灰度級(jí)的正確復(fù)現(xiàn),必須在傳輸以前對(duì)圖像數(shù)據(jù)進(jìn)行γ校正。令γ1γ2 = γ,γ3 = γcrt 則式( 1) 可以變化為: 其中l(wèi)crt為crt 復(fù)現(xiàn)亮度,li 為實(shí)際亮度,γ為原始傳輸?shù)念A(yù)先校正系數(shù),γcrt為crt 顯示特性系數(shù), si 為原始圖像數(shù)據(jù)。由式(2) 可知,現(xiàn)在采用的標(biāo)準(zhǔn)圖像數(shù)據(jù)是經(jīng)過γ校正后的原始顯示圖像數(shù)據(jù),直接量化以后形成的數(shù)字化數(shù)據(jù)同樣包含有γ校正的信息,這些數(shù)字化的圖像數(shù)據(jù)如果由同crt 顯示特性完全相同的顯示設(shè)備完成最終的圖像顯示時(shí),可以正確復(fù)現(xiàn)原始的灰度級(jí)。 前面提到crt 的顯示特性為: 而l ed 顯示屏的顯示特性為: 其中c 和c′為比例系數(shù)。以表現(xiàn)256 灰度顯示