bootloader 跳转到RTTHREAD中后会出现死循环 ?

发布于 2020-11-07 21:52:19

image.png
我用bootloader跳转APP ,APP是RTTHREAD ,能够运行打印版本查询都正确,但是到创建rt_application_init的时候会死循环在里面,如图 死循环在rt_timer_init中

bootloader代码如下:

if(((*(u32*)appxaddr)&0x2FFE0000) == 0x20000000)    //检查栈顶地址是否合法.
    { 

    __set_PRIMASK(1);
        jump2app=(iapfun)*(u32*)(appxaddr+4);        //用户代码区第二个字为程序开始地址(复位地址)        
        MSR_MSP(*(u32*)appxaddr);                    //初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址)

        for (int i = 0; i < 8; i++)
        {
            NVIC->ICER[i] = 0xFFFFFFFF;
            NVIC->ICPR[i] = 0xFFFFFFFF;
        }
        for(int i=0; i<128; i++)
    {
        HAL_NVIC_DisableIRQ(i);
        HAL_NVIC_ClearPendingIRQ(i);
    }
        __disable_irq();
        HAL_DeInit();
        HAL_RCC_DeInit();
        SysTick->CTRL = 0;
        SysTick->LOAD = 0;
        SysTick->VAL = 0;
      __set_PRIMASK(0);
          __set_CONTROL(0);
    __set_MSP(appxaddr);
        jump2app();                                    //跳转到APP.
    }

APP 已经设置偏移地址 ,
image.png

用的MCU为STM32L433RCT6

查看更多

关注者
0
被浏览
317
3 个回答
我夏了夏天
我夏了夏天 认证专家 2020-11-08

仔细检查下应用独自运行是否也是正常的,如果应用加载到相应的位置后,从头开始能正常运行,那么就要仔细考虑 bl 在跳转前是否关闭了必要的功能,包括所有的外设中断。

a464958718
a464958718 2020-11-08

独自应用是正常的,但是关闭了所有中断

Wang963369
Wang963369 2020-12-05

您好 这个问题解决了没有 我目前也是关闭了所有中断 不知道怎么做 请指导下

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览