[应用相关] ST 的iap代码问题

[复制链接]
2268|0
 楼主| liyun0050 发表于 2009-5-6 09:14 | 显示全部楼层 |阅读模式
官方的例程

/* Test if user code is programmed starting from address "ApplicationAddress" */
    if (((*(vu32*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
    { /* Jump to user application */
      JumpAddress = *(vu32*) (ApplicationAddress + 4);
      Jump_To_Application = (pFunction) JumpAddress;
      /* Initialize user application's Stack Pointer */
      __MSR_MSP(*(vu32*) ApplicationAddress);
      Jump_To_Application();
    } 
 这个代码是错误的,容易导致堆栈溢出死掉。跳到应用区,堆栈指针就不对了。
 现在用汇编实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部