OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6204|回复: 7

请教个UCOS浮点计算的问题

[复制链接]

15

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-11-16
在线时间
31 小时
发表于 2016-2-25 09:07:56 | 显示全部楼层 |阅读模式
原来的工程设置好FPU和相关的库后使用函数arm_sqrt_f32()能计算出正确的结果,根据“STM32F4 UCOS开发手册_V3.0”写好例程后,原例程正常运行,可看到已使用FPU。然后我在LED0任务中加入了浮点开方计算,程序就死掉了,加大堆栈到1024也不行,只有将arm_sqrt_f32(2,temp)中的变量*temp设置为全局变量才可以继续运行,但问题是计算的结果始终为0,不知何故?以下为源码:
//LED0任务
void led0_task(void *pdata)
{                
        pdata=pdata;
        while(1)
        {
                arm_sqrt_f32(2,temp);//使用FPU计算2的平方根
                temp1=(u32)(*temp*1000);//浮点数强制转换为整数
                LCD_ShowxNum(110,600,temp1,4,16,0X80);
                LED0=0;
                delay_ms(80);
                LED0=1;
                delay_ms(920);
        };
}

请教两个问题:
1、如果不设置为全局变量要怎么做?
2、为何计算结果不正确?怎么修改?
请赐教,谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1863
金钱
1863
注册时间
2011-3-29
在线时间
139 小时
发表于 2016-2-25 09:28:44 来自手机 | 显示全部楼层
回复 支持 反对

使用道具 举报

15

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-11-16
在线时间
31 小时
 楼主| 发表于 2016-2-25 09:36:23 | 显示全部楼层
对,函数要求的。
float32_t *temp;
u32 temp1;
回复 支持 反对

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2016-2-25 09:38:08 | 显示全部楼层
浮点要求栈是8字节对齐。
RT-Thread RTOS 音频,WIFI,蓝牙
回复 支持 反对

使用道具 举报

15

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-11-16
在线时间
31 小时
 楼主| 发表于 2016-2-25 10:07:10 | 显示全部楼层
aozima 发表于 2016-2-25 09:38
浮点要求栈是8字节对齐。

堆栈设置的256、512、1024都不行。
回复 支持 反对

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2016-2-25 10:46:38 | 显示全部楼层
lrser 发表于 2016-2-25 10:07
堆栈设置的256、512、1024都不行。

地址,不是大小。
0-256是256字节,2-258也是256字节。
RT-Thread RTOS 音频,WIFI,蓝牙
回复 支持 反对

使用道具 举报

15

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2015-11-16
在线时间
31 小时
 楼主| 发表于 2016-2-25 11:02:44 | 显示全部楼层
aozima 发表于 2016-2-25 10:46
地址,不是大小。
0-256是256字节,2-258也是256字节。

请问这个堆栈地址如何设置?
回复 支持 反对

使用道具 举报

5

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2015-8-25
在线时间
27 小时
发表于 2016-2-25 11:30:39 | 显示全部楼层
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 06:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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