在线情况
楼主
  • 头像
  • 级别
    • 积分2
    • 经验528
    • 文章24
    • 注册2009-04-13
    C语言中实现程序跳转
    前段时间发帖,求助在C语言中怎么样实现跳转,没有得到理想的答案。
    进过这段时间的研究我使用了一下几个方法都很好用,与君共享。
    方法一:对于小端模式(0000h~0ffffh),实现跳转,可以嵌套汇编asm(“br &0x....”)
            对于5系列中可选的大端模式可以用asm(“bra &0x....”)实现跳转
    方法二:直接使用指针typedef void (*pFunction) (void );
                        pFunction pMyaddr = (pFunction)0xFFFE;
                         pMyaddr(); 想跳哪跳哪,呵呵
    这段时间用5系列完成了bootload程序,用于485通讯的系统中程序的升级,在完成升级以后,跳转到主程序用上面两种方法很有效,还有一种实现复位的方法就是在boot程序下载完以后开看门狗,让程序通过复位直接到主更新完的程序里,这样可以不用断电,因为在工业现场代码升级基本不允许断电。
    呵呵,希望对大家有帮助。
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
      • 积分7
      • 经验524
      • 文章8
      • 注册2009-05-12
      高手!!
      学习了
      微控网感谢您的参与
      Powered by LeadBBS 9.2 .
      Page created in 0.1855 seconds with 5 queries.