硬汉嵌入式论坛

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

[μCOS-III] 强力吐槽Miricum发布的uCOS-II和III的FPU移植问题,每次发布一个例子修改一次(官方

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2016-3-19 13:16:18 | 显示全部楼层 |阅读模式
从发布的第一个M4内核的uCOS-III工程以来,基本每次的Demo里面移植代码都跟以前不同,咱还能整个稳定版本不?
一个FPU入栈出栈问题,每个Demo都重新折腾一遍,本以为他们已经做稳定了,打算后面的V5和V6都采用这种方式。
实际测试也没问题。
     结果就在M7内核上面又发布了新版本,也开始使能FPU的Lazy Stack特性了,以前的版本不用,这个版本
开始用了,看来是被众多的用户吐槽的不行了,决定还是放弃以前的通用FPU入栈和出栈方式了。
    其实我们的V5板子,早在2013年的时候就修改了官方的实现,使用了Lazy Stack,实际测试IAR和MDK版本
都很好用。项目中使用也是完全没有问题的。比官方的那种通用的FPU入栈和出栈方式效率更高。但是考虑到以后
升级uCOS的通用性,主要怕官方升级源码,决定采用官方的方式了,结果又闹了了这么一出。
   详情请看这个帖子的os_cpu_a.asm的实现:http://www.armbbs.cn/forum.php?mod=viewthread&tid=18009,其中文件os_cpu_c.c
文件里面的OSTaskStkInit函数写的有些臃肿了,创建任务阶段不存在浮点入栈和出栈问题,无需做浮点寄存器初始化。
估计他是怕用户创建的栈空间不足。
    我觉得官方后面uCOS-III还得继续折腾这个底层移植,大家敬请期待官方如何折腾。有兴趣大家可以了解下RTX和
FreeRTOS的底层移植,这么多年了,这个底层移植早在M4内核处理器发布之初就把移植文件定下来。
总结------:
说uCOS是所有这些主流OS里面移植最麻烦的,一点也不为过。
暂时就吐槽这么多吧,下次接着给大家吐槽下官方uCOS-II的底层移植问题,即8字节对齐问题,也是坑苦了太多初学者。
====================================================================
下面这段文字比较重要,官方的说明是在浮点单精度FPv4,FPv5和浮点双精度FPv5上都测试通过,兼容M3,M4和M7内核
; Note(s)   : (1) This port supports the ARM Cortex-M3, Cortex-M4 and Cortex-M7 architectures.
;                 (2) It has been tested with the following Hardware Floating Point Unit.
;                 (a) Single-precision: FPv4-SP-D16-M and FPv5-SP-D16-M
;                 (b) Double-precision: FPv5-D16-M
完整的地址移植文件截图:
2016-03-19_131204.png



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
 楼主| 发表于 2016-3-19 13:23:25 | 显示全部楼层
uCOS的这种浮点移植方式有个好处就是用户可以通过MDK或者IAR的Option选项里面直接禁止或者使能FPU。
而FreeRTOS和RTX是必须要使能的,他们不支持禁止。因为底层移植文件里面有浮点指令,要不编译不过。
其实简单的处理方式是可以使用M3内核的移植文件。
回复

使用道具 举报

29

主题

181

回帖

268

积分

高级会员

积分
268
发表于 2016-3-19 13:42:01 | 显示全部楼层
帮顶,不过到现在还是不明白怎么看工程里堆栈的使用情况
回复

使用道具 举报

6

主题

90

回帖

108

积分

初级会员

积分
108
QQ
发表于 2016-3-20 23:11:06 | 显示全部楼层
高大上了,只能默默帮顶
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2017-7-25 08:39:12 | 显示全部楼层
那是不是直接将这个文件从IAR中移植到keil就可以了,其他两个文件不用改?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
 楼主| 发表于 2017-7-25 09:28:03 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:那是不是直接将这个文件从IAR中移植到keil就可以了,其他两个文件不用改? (2017-07-25 08:39) 
全部更新下。最好uCOS-III也升级到最新的3.06.01
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2017-7-25 12:22:35 | 显示全部楼层
下次有空测试下[s:149]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 13:17 , Processed in 0.192204 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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