新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 跳轉(zhuǎn)到絕對(duì)地址執(zhí)行

跳轉(zhuǎn)到絕對(duì)地址執(zhí)行

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
IAPbootloader中經(jīng)常使用到地址跳轉(zhuǎn),指定程序跳轉(zhuǎn)到某一地址運(yùn)行,例如強(qiáng)制跳轉(zhuǎn)到0x2c去執(zhí)行,則可使用(*((void (*)(void))0x2c)))();
實(shí)際上這是運(yùn)用的函數(shù)指針,可以這樣分解:
1,函數(shù)指針的定義為 void (* fd) (void); 省略參數(shù)的函數(shù)原型為
void (*)(void).
2, 0x2c, 這里的0x2c為地址,可以認(rèn)為是變量(個(gè)人理解),可以理解為將變量0x2c進(jìn)行強(qiáng)制類型轉(zhuǎn)換,轉(zhuǎn)換成函數(shù)指針類型,即(void(*)(void))0x2c.
3,調(diào)用函數(shù)。 (* (func) ) (); func 為函數(shù)指針(void(*)(void) )0x2c, 合起來就是 (* ( (void(*)(void) )0x2c) )();


關(guān)鍵詞: 絕對(duì)地址IAPbootloade

評(píng)論


技術(shù)專區(qū)

關(guān)閉