查看: 34646|回复: 30

[S32] S32K144 bootloader跳转到app问题

[复制链接]
  • TA的每日心情
    奋斗
    2017-7-7 17:21
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
    发表于 2017-5-20 16:20:04 | 显示全部楼层 |阅读模式
    如题,请问怎么实现bootloader的跳转呢。我用的下面这个函数,但是每次在执行完跳转之后mcu就复位了。app程序里我设置是从0x8000开始的,跳转的时候SP是0x8000,Startup入口地址时0x8004。请问还需要设置什么吗?

    void JumpToExecute(uint32_t SP, uint32_t Startup)
    {
        volatile uint32_t avoid_optimization;

        /* In order to avoid optimization issue when -Os */
        avoid_optimization = SP;
        /* In order to avoid optimization issue when -Os */
        avoid_optimization = Startup;

        /* set up stack pointer */
        __asm("msr msp, r0");
        __asm("msr psp, r0");

        /* Jump to PC (r1) */
        __asm("mov pc, r1");
    }

    我知道答案 目前已有30人回答
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
    发表于 2017-5-20 17:33:40 | 显示全部楼层
    问下S32K144的板卡哪里有啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-7 17:21
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
     楼主| 发表于 2017-5-22 09:10:08 | 显示全部楼层
    ALTIUM2 发表于 2017-5-20 17:33
    问下S32K144的板卡哪里有啊

    我是之前在淘宝买的蓝宙的板子,不知道现在还有没有,你可以去看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25480
    最后登录
    2025-9-9
    发表于 2017-5-22 09:21:00 | 显示全部楼层
    中断重定向寄存器也要设置一下的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-7 17:21
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
     楼主| 发表于 2017-5-22 10:06:16 | 显示全部楼层
    小恩GG 发表于 2017-5-22 09:21
    中断重定向寄存器也要设置一下的

    我在跳转前这么设置了:S32_SCB->VTOR = (uint32_t)0x8000;
    但是还不行,还有什么别的要注意的吗
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25480
    最后登录
    2025-9-9
    发表于 2017-5-22 13:41:40 | 显示全部楼层
    fj1161 发表于 2017-5-22 10:06
    我在跳转前这么设置了:S32_SCB->VTOR = (uint32_t)0x8000;
    但是还不行,还有什么别的要注意的吗 ...

    跳转前的时钟配置与跳转后的程序代码默认时钟初始态要一致,其他的就没什么啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-7 17:21
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
     楼主| 发表于 2017-5-22 14:13:52 | 显示全部楼层
    小恩GG 发表于 2017-5-22 13:41
    跳转前的时钟配置与跳转后的程序代码默认时钟初始态要一致,其他的就没什么啊 ...

    跳转的地址是reset_handler的地址,不是vector_table的首地址吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25480
    最后登录
    2025-9-9
    发表于 2017-5-22 15:40:47 | 显示全部楼层
    fj1161 发表于 2017-5-22 14:13
    跳转的地址是reset_handler的地址,不是vector_table的首地址吧

    嗯嗯,是的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-7 17:21
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
     楼主| 发表于 2017-5-23 09:33:22 | 显示全部楼层
    本帖最后由 fj1161 于 2017-5-23 09:44 编辑

    跳转到应用程序时,进入main函数的时候出错了。另外的我中断向量表是存在RAM中的有影响吗?向量表重映射的时候还是映射到flash地址吗?
    Catch740D.jpg
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25480
    最后登录
    2025-9-9
    发表于 2017-5-23 13:57:46 | 显示全部楼层
    fj1161 发表于 2017-5-23 09:33
    跳转到应用程序时,进入main函数的时候出错了。另外的我中断向量表是存在RAM中的有影响吗?向量表重映射的 ...

    我建议你最好看一下关于Bootloader的应用文档
    重定向的是你在application code中中断向量存放的地址,与原来在bootloader code中中断放在哪里没有关系
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-9 18:12 , Processed in 0.111730 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表