美文网首页
IAP跳转APP段代码理解

IAP跳转APP段代码理解

作者: 晶爷传说 | 来源:发表于2017-09-07 11:57 被阅读0次

    IAP起始地址:iapaddr

    APP起始地址:appaddr

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

    中断向量存储的内容是中断服务程序的入口地址


    typedef void(*iapfun)(void);  //定义函数指针类型

    理解:iapfun表示一个指向函数的指针类型的名字,该指针类型为“指向返回void类型并且无参数的函数的指针”,可以使用函数名对函数指针进行初始化(定义函数指针对象):

    iapfun iapjump2app;  //定义函数指针对象


    jump2app=(iapfun)*(vu32*)(appxaddr+4);  //为函数指针对象赋值

    appxaddr+4:APP程序中断向量表起始地址(即复位中断)

    (vu32*)(appxaddr+4):将APP程序中断向量表起始地址强制类型转换为指向vu32类型数据的地址

    *(vu32*)(appxaddr+4):取出(vu32*)(appxaddr+4)地址所存储的内容(这个内容刚好就是该地址对应中断向量的中断服务程序入口地址,其实就是复位中断服务程序函数的函数名)


    jump2app();  //调用函数

    运行的是中断服务程序对应的函数


    相关文章

      网友评论

          本文标题:IAP跳转APP段代码理解

          本文链接:https://www.haomeiwen.com/subject/ijtijxtx.html