bootloader跳转到主程序后,主程序使用RTX会死机

2019-08-13 20:12发布

仿照原子哥的iap程序做了个实验,bootloader能正常跳转到主程序,在主程序没有使用RTX os的情况下一切正常,但是当主程序使用RTX后,程序死在了__main初始化里面,进不了main函数。是什么原因?     配置都没问题
bootloader程序如下:参考原子哥的

int main (void)
{  
        FSMC_SRAM_Init();
        load_app(FLASH_APP1_ADDR);
       
        while(1)
        {
        }

}


void load_app(u32 appxaddr)
{       
        jump2app=(iapfun)*(vu32*)(appxaddr+4);                       
        MSR_MSP(*(vu32*)appxaddr);                               
        jump2app();                                                                       
       
}       

主程序:
int main(void)
{
        SCB->VTOR = FLASH_BASE | 0x10000;
       
        LED_Init();
        while(1)
        {
                macLED1_TOGGLE();
                delay(500);
        }
}





       



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
正点原子
1楼-- · 2019-07-25 13:36
 精彩回答 2  元偷偷看……
wcq
2楼-- · 2019-07-25 14:39
正点原子 发表于 2017-11-16 22:09
改变输入电压的大小呢?数值也不变?

改变输入电压大小事会变的,我测了一个PWM波矩形的,0到3.3V的,但是测出来最低是2.1V左右,最高3点几伏,感觉电压差有点小,没测到1点几伏或者0伏,我主要是想问悬空状态为啥是稳定的电压值,如果我接0V的是不是就测不出来了呢?
阿成HAC
3楼-- · 2019-08-14 01:34
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-08-14 04:16
基本上就是检查:中断向量偏移量。中断服务函数。
Riven丶叮当
5楼-- · 2019-08-14 04:19
正点原子 发表于 2017-9-20 01:04
基本上就是检查:中断向量偏移量。中断服务函数。

L$)$LA$TY7SLY]~ZQRW`W7R.png 请教个问题啊,我在看IAP实验的时候发现注释有---//读取指定地址的半字(16位数据)--这么句话,这个地方是不是应该是一个字,1字=两个字节=16位二进制?
TinyLight
6楼-- · 2019-08-14 09:49
Riven丶叮当 发表于 2017-10-13 16:49
请教个问题啊,我在看IAP实验的时候发现注释有---//读取指定地址的半字(16位数据)--这么句话,这个地方是 ...

32位系统,全字是32bit,半字是16bit

一周热门 更多>