[讨论] IAP 后程序启动的疑惑

eeleader   2010-6-18 10:14 楼主

M0开发板IAP疑问,,,,,,

 

if (*GpulFlagPoint == HIGH) {
        userProgram = (void (*)()) (HIGH+1);
    } else {
        if (*GpulFlagPoint == LOW) {
            userProgram = (void (*)()) (LOW + 1);

 

 

前面的代码已经将程序USER程序下载到Flash中的HIGH 或者LOW位置,为什么启动时函数指针要+1才能启动呢?

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!

回复评论 (1)

回复 楼主 eeleader 的帖子

而用户代码的首地址处放的是堆栈地址,下个的地方放的是代码的复位地址!
这是我的理解
处处留心皆学问!
点赞  2010-6-18 11:19
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复