自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MTK系統(tǒng)錯(cuò)誤類(lèi)型分析

移動(dòng)開(kāi)發(fā)
MTK系統(tǒng)錯(cuò)誤類(lèi)型分析是本文要介紹的內(nèi)容,主要是來(lái)了解MTK系統(tǒng)中出現(xiàn)的問(wèn)題,系統(tǒng)錯(cuò)誤中有兩種典型的分類(lèi),一種是CPU觸發(fā)的系統(tǒng)錯(cuò)誤,另外一種是軟件觸發(fā)的系統(tǒng)錯(cuò)誤。

MTK系統(tǒng)錯(cuò)誤類(lèi)型分析是本文要介紹的內(nèi)容,主要是來(lái)了解MTK系統(tǒng)中出現(xiàn)的問(wèn)題,系統(tǒng)錯(cuò)誤中有兩種典型的分類(lèi),一種是CPU觸發(fā)的系統(tǒng)錯(cuò)誤,另外一種是軟件觸發(fā)的系統(tǒng)錯(cuò)誤。

1、CPU觸發(fā)(檢測(cè)到)的系統(tǒng)錯(cuò)誤

Undefined Instruction Exception(沒(méi)有定義的指令錯(cuò)誤)

本來(lái)的意思是指:ARM解析不了當(dāng)前指令如何執(zhí)行,換句話(huà)說(shuō),當(dāng)前指令不屬于ARM指令集。但是大家看到這里會(huì)感到納悶,這種錯(cuò)誤怎么可能會(huì)發(fā)生?除非ADS和RVCT等編譯器出現(xiàn)bug,否則這種錯(cuò)誤不可能沒(méi)有在編譯階段里揪出來(lái)。這些編譯器吃白米飯的么,連是不是ARM的指令集里的指令還不知道嗎?所以出現(xiàn)這種錯(cuò)誤一定不是代碼的問(wèn)題。出現(xiàn)這種錯(cuò)誤很可能是程序跑飛,跑到data區(qū)域執(zhí)行了。跑飛的原因有很多,如函數(shù)指針問(wèn)題,或者局部變量溢出把堆棧中的函數(shù)返回地址寫(xiě)壞了,等等

Software Interrupt Exception

給大家先看看有趣的東東,MTK介紹SWI exception類(lèi)型時(shí)寫(xiě)的:

  1. The software interrupt instruction (SWI) is used to enter Supervisor mode,   
  2. usually to request a particular supervisor function.  

借問(wèn)各位大俠,從上面那段話(huà)能知道SWI是exception么?我實(shí)在是忍無(wú)可忍,甚至達(dá)到了抓狂的程度??戳松厦娴慕忉?zhuān)耆悴欢甋WI與exception有絲毫關(guān)系。SWI其實(shí)可以解釋為軟件觸發(fā)中斷,但在MTK的系統(tǒng)中,不會(huì)用到這種軟中斷。所以假設(shè)軟中斷被觸發(fā)了,一定是程序跑飛了。到此,大家終于明白SWI為什么也算是exception一種了。

Pre-fetch Abort Exception

預(yù)取指令錯(cuò)誤是指CPU從RAM或者ROM中讀取指令時(shí),所提供的地址是個(gè)非法地址(RAM和ROM以外的地址)。一般是函數(shù)指針問(wèn)題,或者局部變量溢出把堆棧中的函數(shù)返回地址寫(xiě)壞了,等等

Data Abort Exception

數(shù)據(jù)錯(cuò)誤是指訪(fǎng)問(wèn)RAM或ROM中數(shù)據(jù)時(shí),所提供的地址是個(gè)非法地址(RAM和ROM以外的地址)。一般是數(shù)據(jù)指針出現(xiàn)問(wèn)題。

2、軟件觸發(fā)(檢測(cè)到)的系統(tǒng)錯(cuò)誤

Assert Error

程序員在代碼中埋的Assert語(yǔ)句,在MTK代碼中有3種:ASSERT(),EXT_ASSERT(),EXT_ASSERT_DUMP()

Fatal Error

可以理解為寫(xiě)在KAL層中的Assert語(yǔ)句,這是MTK的System工程師在KAL層埋的一些Assert語(yǔ)句。KAL層是系統(tǒng)的適配層,因此在這層里面出現(xiàn)問(wèn)題,一般都是與系統(tǒng)的異常相關(guān)。如:ctrl buffer不足,外部隊(duì)列滿(mǎn)了之類(lèi)的錯(cuò)誤

System Lockup

文檔中是寫(xiě)系統(tǒng)掛起。小弟不才,debug這么多年都未能與這種異常邂逅。

小結(jié):MTK系統(tǒng)錯(cuò)誤類(lèi)型分析的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-09-05 19:02:45

MTK系統(tǒng)字符串

2011-09-06 10:10:12

MTK系統(tǒng)Android系統(tǒng)

2011-09-06 14:10:18

MTK系統(tǒng)時(shí)間

2011-11-21 17:20:02

DCOM錯(cuò)誤日志

2011-09-06 13:19:04

MTK手機(jī)軟件系統(tǒng)

2011-09-06 13:58:28

MTK系統(tǒng)

2021-02-05 08:18:29

JavaScript開(kāi)發(fā)代碼

2011-09-05 18:49:50

MTK手機(jī)軟件系統(tǒng)

2010-07-15 14:32:00

AIX TELNET

2009-09-10 14:21:58

LINQ匿名類(lèi)型

2009-09-10 13:24:36

Linq參數(shù)類(lèi)型

2011-09-06 13:15:04

MTK文件系統(tǒng)內(nèi)存

2024-01-16 09:35:00

數(shù)據(jù)庫(kù)應(yīng)用

2010-09-03 10:33:38

ppp內(nèi)核

2011-09-13 15:26:25

MTK環(huán)境搭建

2011-08-31 10:12:26

MTK手機(jī)平臺(tái)

2011-09-06 09:14:27

MTK平臺(tái)軟件

2010-05-21 10:02:56

2010-07-27 15:39:32

telnet smtp

2020-03-20 15:10:09

Python錯(cuò)誤分析代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)