IAP跳轉(zhuǎn)APP段代碼理解

IAP起始地址:iapaddr

APP起始地址:appaddr

中斷向量表的起始地址:IAP:iapaddr+4(APP:appaddr+4)

中斷向量存儲的內(nèi)容是中斷服務(wù)程序的入口地址


typedef void(*iapfun)(void);? //定義函數(shù)指針類型

理解:iapfun表示一個指向函數(shù)的指針類型的名字,該指針類型為“指向返回void類型并且無參數(shù)的函數(shù)的指針”,可以使用函數(shù)名對函數(shù)指針進行初始化(定義函數(shù)指針對象):

iapfun iapjump2app; ?//定義函數(shù)指針對象


jump2app=(iapfun)*(vu32*)(appxaddr+4); ?//為函數(shù)指針對象賦值

appxaddr+4:APP程序中斷向量表起始地址(即復(fù)位中斷)

(vu32*)(appxaddr+4):將APP程序中斷向量表起始地址強制類型轉(zhuǎn)換為指向vu32類型數(shù)據(jù)的地址

*(vu32*)(appxaddr+4):取出(vu32*)(appxaddr+4)地址所存儲的內(nèi)容(這個內(nèi)容剛好就是該地址對應(yīng)中斷向量的中斷服務(wù)程序入口地址,其實就是復(fù)位中斷服務(wù)程序函數(shù)的函數(shù)名)


jump2app(); ?//調(diào)用函數(shù)

運行的是中斷服務(wù)程序?qū)?yīng)的函數(shù)


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 重新系統(tǒng)學習下C++;但是還是少了好多知識點;socket;unix;stl;boost等; C++ 教程 | 菜...
    kakukeme閱讀 20,031評論 0 50
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,014評論 0 7
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,762評論 0 4
  • 多線程、特別是NSOperation 和 GCD 的內(nèi)部原理。運行時機制的原理和運用場景。SDWebImage的原...
    LZM輪回閱讀 2,043評論 0 12
  • 史上最全的iOS面試題及答案 迷途的羔羊--專為路癡量身打造的品牌。史上最精準的定位。想迷路都難!閃電更新中......
    南虞閱讀 1,551評論 0 8