找回密码
 立即注册
楼主: tzz1983

分享 FreeRTOS, uC/OS 移植到51, 251 实用移植集锦 2026-10月 优化更新

[复制链接]

19

主题

920

回帖

2765

积分

荣誉版主

积分
2765
 楼主| 发表于 2026-10-23 21:42:45 | 显示全部楼层
eda*** 发表于 2026-10-23 21:25
我用uc,251的版本老版本在兼容的前提下能提供进一步的优化升级版本吗?

我想想看,其实对于 uC/OS-II - C251 上一版本身已经很完善了, 本次的更新重心是 取消了pendSV 机制 + 中断使用方式变更。

如果你适应了就接着用吧,前版没有问题,效率也没有折扣,前版只是多用了一个pendSV模拟硬件中断。

其它功能都在的,比如 ISR 专用栈前版也有,ISR专用栈的作用是如果任务多的话,可以省很多RAM
回复

使用道具 举报 送花

1

主题

62

回帖

135

积分

注册会员

积分
135
发表于 2026-10-23 21:50:10 | 显示全部楼层
tzz1*** 发表于 2026-10-23 21:42
我想想看,其实对于 uC/OS-II - C251 上一版本身已经很完善了, 本次的更新重心是 取消了pendSV 机制 + 中 ...

好的,谢谢
回复

使用道具 举报 送花

1

主题

62

回帖

135

积分

注册会员

积分
135
发表于 2026-10-23 21:57:44 | 显示全部楼层
#if OS_USE_XDATA
        #define WORD2_OSTCBCur  1
#else
        #define WORD2_OSTCBCur  0
#endif      新版取消了OS_USE_XDATA定义,这方面能解释下改进在哪里吗?

点评

这个是因为,新版使用的是通用指针,指针内本身包含了地址高字节, 不需要额外的信息,新移植为了合规许可,尽量的减少对源代码的修改,所以还原回了通用指针。 老版用的是专用指针,通过宏定义,要么指向EDATA,要么  详情 回复 发表于 2026-10-23 22:03
回复

使用道具 举报 送花

19

主题

920

回帖

2765

积分

荣誉版主

积分
2765
 楼主| 发表于 2026-10-23 22:03:51 | 显示全部楼层
eda*** 发表于 2026-10-23 21:57
#if OS_USE_XDATA
        #define WORD2_OSTCBCur  1
#else

这个是因为,新版使用的是通用指针,指针内本身包含了地址高字节, 不需要额外的信息,新移植为了合规许可,尽量的减少对源代码的修改,所以还原回了通用指针。

老版用的是专用指针,通过宏定义,要么指向EDATA,要么指向XDATA. 定义的1/0告诉编译器当前任务控制块在XDATA或EDATA.

这个对你使用没有影响,你用哪个版本就看哪个版本的说明。
回复

使用道具 举报 送花

1

主题

62

回帖

135

积分

注册会员

积分
135
发表于 2026-10-23 22:17:51 | 显示全部楼层
tzz1*** 发表于 2026-10-23 22:03
这个是因为,新版使用的是通用指针,指针内本身包含了地址高字节, 不需要额外的信息,新移植为了合规许可 ...

好的,谢谢
回复

使用道具 举报 送花

0

主题

23

回帖

2911

积分

金牌会员

积分
2911
发表于 2026-10-25 15:22:31 | 显示全部楼层
感谢楼主的分享!
回复

使用道具 举报 送花

已绑定手机

5

主题

91

回帖

1471

积分

禁止发言

积分
1471
发表于 2026-10-28 08:22:15 | 显示全部楼层
打卡学习
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-7 10:34 , Processed in 0.075417 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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