打印
[STM32F4]

F407+ucosii 移植总是出现OSStartHang问题,求帮助。谢谢

[复制链接]
2809|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fengylsina|  楼主 | 2016-10-22 21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
环境:
软件:keil uvision5ucosii2.86
硬件:stm23f407ZG(用FPU),ST-link,时钟是25MHz外部晶振,低速是32.768KHz
问题:在OSStart()函数处死掉,单步查看是在os_cpu_a.asm文件OSStartHighRdy()函数处最后一句 B       OSStartHang            ;should never get here
死掉。 说明系统配置等什么原因导致崩溃
   死在 B       OSStartHang            ;should never get here
    原本程序是不应该到这来来的,应该总是在循环中,但现在走到这来了。说明程序走出了循环。是什么原因导致走出循环呢?
   在网上百度过。网友的解决方法总结如下:
1 时钟配置错误。检查,我这里没有问题,SYSCLK=168MHzHCLK=168MHzPCLK2=168/2=84MHzPCLK1=168/4=42MHz。同时在stm32f4xx.h中将HSE改为2500000.应该没有问题。分别在stm32f4xx.hsystem_stm32f4xx.c中完成。
2 PendSV问题。启动文件startup_stm32f40_41xxx.sPendSV_Handler,对应的ucosii port文件夹下OS_CPU.h有声明函数void       PendSV_Handler(void);
同时在OS_CPU.h将声明函数void       Systick_Handler(void);删除。该函数在stm32f4xx_it.c中实现。
void SysTick_Handler(void)
{
  OSIntEnter();                        //½øÈëÖÐÏ
  OSTimeTick();                 //µ÷ÓÃucosµÄʱÖÓ·þÎñ³ÌÐò
  OSIntExit();                  //´¥·¢ÈÎÎñÇл»ÈíÖÐÏ
}
3 os_CPU_C.c文件中的OS_STK *OSTaskStkInit()函数,检查也没有什么问题。
4 堆栈设定。三个任务,startTaskTasK1Task2,优先级分别是5,15,16,堆栈大小均为64Task1时延50msTask2时延1s。感觉也没有什么问题。
5 keil设置。
   上述前四项均检查没有什么问题。但就是无法运行。无操作系统正常运行。
   现附上工程程序。恳请那位高手帮忙看看,到底问题出在什么地方。谢谢。

OSstm32TimeSyn.part01.rar

1.95 MB

附带程序

OSstm32TimeSyn.part02.rar

1.95 MB

附带程序

OSstm32TimeSyn.part03.rar

1.95 MB

附带程序

OSstm32TimeSyn.part04.rar

1.95 MB

附带程序

OSstm32TimeSyn.part05.rar

1.95 MB

附带程序

OSstm32TimeSyn.part06.rar

208.25 KB

附带程序

沙发
wangzi10060| | 2019-7-24 19:01 | 只看该作者
您好,我现在也碰到了这个问题,已经折磨好几天了,请问您解决了吗?可否指导一下,我的邮箱:wangzi10060@163.com  万分感谢~~

使用特权

评论回复
板凳
喜欢Like| | 2022-10-31 19:18 | 只看该作者
数组越界

使用特权

评论回复
地板
SantaBunny| | 2022-11-3 19:35 | 只看该作者
楼主解决完了吗

使用特权

评论回复
5
SantaBunny| | 2023-2-21 20:02 | 只看该作者
时钟配置错误

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝