Bootloader能够正常跳转,一个串口的APP也能运行成功,但是PX4飞控作为APP运行就会卡死。

2019-07-20 22:38发布

主控芯片:   STM32F427VI   2MB  FLASH
问题描述:   自己写了一个Bootloader,是从SD卡读取bin文件,再写前16k的FLASH。  加载FATFs文件系统,读写什么的都没有问题。跳转app也OK。  
                     一共有两个测试app  ,第一个为串口app(用到的资源很少,就只有串口什么的),跳转成功,运行也ok。第二个app是PX4飞控(几乎把班上的资源用了70%以上吧),跳转OK,但是运行OK,总是卡死在一个地方。
                 跳转前,时钟什么的都关闭的。尝试过Bootloader什么都不做,直接跳转,依然卡死在同一个地方。
  谢谢各位了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
浪溢泽沉
1楼-- · 2019-07-21 22:10
[mw_shl_code=cpp,true]static void
do_jump(uint32_t stacktop, uint32_t entrypoint)     //201604      汇编代码,应该是给出app 入口地址    ,以及程序运行的堆栈顶端地址
{
        asm volatile(
                "msr msp, %0         "
                "bx        %1         "
                : : "r"(stacktop), "r"(entrypoint) ;

        // just to keep noreturn happy
        for (;;) ;
}[/mw_shl_code]


@正点原子 原子哥,你给看一下,这一段汇编跳转程序,我觉得和你的跳转功能一样,都是初始化堆栈,再设置返回地址。不知道我分析的对不对。{这是eclipse环境下的}

浪溢泽沉
2楼-- · 2019-07-21 23:37
正点原子 发表于 2016-4-23 20:21
得仿真找问题了,说不准。

bootloader这段程序运行都OK,跳转至app了,就没有办法跟踪了。
hannuaa
3楼-- · 2019-07-22 04:40
楼主能加微信或者qq么,我也在玩pixhawk,想从头自己写代码,卡在第一步了,代码烧不进去,能指导一下不?
浪溢泽沉
4楼-- · 2019-07-22 06:18
 精彩回答 2  元偷偷看……
hannuaa
5楼-- · 2019-07-22 06:51
 精彩回答 2  元偷偷看……

一周热门 更多>