STM32F4 Discovery开发板上移植UCOS2.91(带FPU)--!已修正错误!

[复制链接]
24557|90
hsbjb 发表于 2012-12-26 16:03 | 显示全部楼层
代码还是很有参考价值的
火箭球迷 发表于 2012-12-26 16:17 | 显示全部楼层
做这个的人的确是不多
dfsa 发表于 2012-12-26 16:38 | 显示全部楼层
如果能多一些文档说明,代码的可读性可能更强一点
pluto55 发表于 2012-12-26 16:54 | 显示全部楼层
请教楼主,开FPU,用ucos的话,OSTaskStkInit 和PendSV_Handler一定要更改吗,能解释一下更改的意义是什么吗?看不太懂
hmdys 发表于 2012-12-31 13:35 | 显示全部楼层
以后可能用到,谢谢,支持一下
baidudz 发表于 2012-12-31 15:22 | 显示全部楼层
拿到开发板的各位,应该向LZ学习:lol
火箭球迷 发表于 2012-12-31 15:30 | 显示全部楼层
可以共享一些相关的移植经验
pluto55 发表于 2013-1-7 11:40 | 显示全部楼层
我发现我使能FPU,操作系统是ucosII 2.92 也使用了基本的加、乘浮点运算,但是并没有出现http://blog.csdn.net/skyfaller/article/details/8149153这里面所说的切换任务时出现问题,这是个什么情况?
pluto55 发表于 2013-1-12 09:16 | 显示全部楼层
发现如果在中断中进行浮点数计算的话,会进HARD_FALUT,需要对os_cpu_c.c和os_asm.a进行更改,但是发现有的移植代码和楼主的不一样,区别在
OSTaskStkInit()的第一句:
    *(--stk) = (INT32U)0x00000000u;              /* No Name Register                         */
区别在FPU的第一个寄存器,保留寄存器是否在堆栈初始化时赋值,具体图可以参考:http://www.amobbs.com/thread-5400648-1-1.html
问题:是否加上这一句都可以正常运行,有人能给解释下吗
 楼主| wangzhihai1986 发表于 2013-1-12 11:35 | 显示全部楼层
pluto55 发表于 2012-12-26 16:54
请教楼主,开FPU,用ucos的话,OSTaskStkInit 和PendSV_Handler一定要更改吗,能解释一下更改的意义是什么 ...

一定要改的,因为这两处是对FPU的寄存器进行入栈和出栈处理的。
pluto55 发表于 2013-1-12 11:53 | 显示全部楼层
wangzhihai1986 发表于 2013-1-12 11:35
一定要改的,因为这两处是对FPU的寄存器进行入栈和出栈处理的。

楼主请看28#、29#的问题~
 楼主| wangzhihai1986 发表于 2013-1-14 08:53 | 显示全部楼层
pluto55 发表于 2013-1-12 09:16
发现如果在中断中进行浮点数计算的话,会进HARD_FALUT,需要对os_cpu_c.c和os_asm.a进行更改,但是发现有的 ...

加不加都一样,在任务创建时会调用这个程序对堆栈进行初始化。加上这句后,以后也不会用到它的空间,只是保留的,可以不要。这是任务切换时CPU自动入栈的情况:
sdd.JPG
pluto55 发表于 2013-1-14 09:09 | 显示全部楼层
本帖最后由 pluto55 于 2013-1-14 09:10 编辑
wangzhihai1986 发表于 2013-1-14 08:53
加不加都一样,在任务创建时会调用这个程序对堆栈进行初始化。加上这句后,以后也不会用到它的空间,只是 ...

意思是说在创建任务的时候可以不对CPU自动保存的寄存器堆栈初始化,因为CPU会将 FPSCR--R0 自动入栈?
 楼主| wangzhihai1986 发表于 2013-1-14 12:17 | 显示全部楼层
pluto55 发表于 2013-1-14 09:09
意思是说在创建任务的时候可以不对CPU自动保存的寄存器堆栈初始化,因为CPU会将 FPSCR--R0 自动入栈? ...

*(--stk) = (INT32U)0x00000000u;              /* No Name Register                         */,我的意思是这行可以不要,别的都得有。
pluto55 发表于 2013-1-14 14:58 | 显示全部楼层
wangzhihai1986 发表于 2013-1-14 12:17
*(--stk) = (INT32U)0x00000000u;              /* No Name Register                         */,我的意 ...

谢谢了~~~
quyifei 发表于 2013-1-14 17:26 | 显示全部楼层
看起来不错,我也试试
hgamber 发表于 2013-1-14 19:37 | 显示全部楼层
谢谢楼主
zdx818 发表于 2013-1-16 15:43 | 显示全部楼层
有否电路板图,一起共享就好了。
quyifei 发表于 2013-1-16 15:47 | 显示全部楼层
有GUI库没有?
zjczm 发表于 2013-2-4 16:14 | 显示全部楼层
下来玩玩看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部