硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5798|回复: 5
收起左侧

[μCOS-III] STM32-X3 在ucOS-III下,FPU可以使用了

[复制链接]

1

主题

8

回帖

1

积分

新手上路

积分
1
发表于 2014-4-28 12:19:05 | 显示全部楼层 |阅读模式
x3板CD自带的UCOS-III + STemWin + FatFS的例子(自适应3.0, 4.3, 5, 7寸屏),不能执行DispTaskInfo();
后来发现是CPU为浮点变量造成的,即是ucOSIII v3.03.01目前FPU支持有bug。


参照http://www.eefocus.com/bbs/article_244_584275_z.html,改了OS_CPU_PendSVHandler()后可以运行了。

测试:

  if(pend_data_tbl[0].RdyObjPtr == (OS_PEND_OBJ *)&SEM_MUTIL){
    //printf("FLGASUCCESS\r\n");
    DispTaskInfo();
}
版主,我的理解对吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107325
QQ
发表于 2014-4-28 13:22:15 | 显示全部楼层
你网址里面提供的方法不行的,首先这种方法在任何情况下都会保存浮点寄存器。参考我ucos-iii教程中的修改方法,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107325
QQ
发表于 2014-4-28 13:25:17 | 显示全部楼层
还有一个问题就是,你尝试下用他这种方法在高版本MDK上运行下试试,MDK4.7及其以上版本,并在任务中加入浮点运算。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107325
QQ
发表于 2014-4-28 13:27:15 | 显示全部楼层
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107325
QQ
发表于 2014-4-28 13:27:56 | 显示全部楼层
回复

使用道具 举报

1

主题

8

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-5-8 12:12:14 | 显示全部楼层
我用的是x3开发板,测试例程是x3开发板_UCOS-III + STemWin + FatFS的例子(自适应3.0, 4.3, 5, 7寸屏)。
原光盘例程里的DispTaskInfo()没有调用,我在else if(uKeyCode == KEY_2_DOWN)中调用,不按key2,系统OK,按key2就死机。
后发现是DispTaskInfo()中CPU赋值和计算都会引起死机。改了OS_CPU_PendSVHandler()后可以运行了。
我再试试,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-26 15:15 , Processed in 0.199878 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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