找回密码
 立即注册
查看: 8063|回复: 85

FreeRTOS @32G12K128移植; FreeRTOS @AI8051U移植来了|重复造车轮

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-4-5 09:07:02 | 显示全部楼层 |阅读模式
FreeRTOS@STC32G移植来了|重复造车轮
简介:
用于STC32G12K128, 32位8051内核上的 FreeTROS_V10.5.1  移植版本.
移植版本弥补了 portYIELD_FROM_ISR() 缺失的问题.

Keil C251 编译器   
     
FreeRTOS_STC32G12K.rar (1.19 MB, 下载次数: 481)



3 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!

本帖被以下淘专辑推荐:

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-9-7 16:20:37 | 显示全部楼层
2024/9/7
FreeRTOS Ai8051U 上运行的 最简代码例程
为了方便大家在  Ai8051U 实验箱 上做 FreeRTOS 实验,

直接下载即可运行。
截图202409071626254872.jpg
通常RTOS移植成功后的例程,会衔接一些典型的使用例子.
最近发现一个有趣的事情,
对于一些初学者,RTOS本身没有难倒他们,反而是那些例程让他们绕得很深。

鉴于此,这次使用的是最简范本,例程中仅两个点灯任务,
第一个任务,让实验箱上的8个LED走流灯,只有三行代码:        
截图202409071624038942.jpg
第二个任务,每秒用printf()函数输出一段字符串,只有一行代码:     
截图202409071617262314.jpg
喜欢FrerRTOS的朋友们,放飞吧,喜欢什么功能自己加!
FreeRTOSAi8051U 上运行的 最简演示代码例程
为了方便大家在  Ai8051U 实验箱 上做 FreeRTOS 实验,

直接下载即可运行。 FreeRTOS@AI8051U.rar (336.27 KB, 下载次数: 331)


2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-4-5 09:31:43 | 显示全部楼层
这个要支持,终于肯自己把自己的原创作品拿出来了,不再假他人之手
这里“原创”的意思是采用了一个与之前别人不一样的方法。
害羞的“小女孩”终于长大了,可让我足足等了半年

第一次.jpg


点评

重新移植过了,没有之前的担心动过源码. 源码险了处理了一些警告,基本上没动过 其它:我范例中用了 任务运行时间统计, 需要动态内存, heap_1.c 没有释放内存的功能, 所以用了heap_4.c 新的运行截图 [attachimg]  详情 回复 发表于 2024-4-5 09:41
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-4-5 09:34:52 | 显示全部楼层


就用楼主当年的原话作为介绍吧:

今天送杨老师一个礼物 <STC32G - FreeRTOS 中断切换任务版本>

这个版本去年年底就做了, 因为没有实际项目要用到, 当时只是浅尝即止了.
这个版本和官网上发的版本主要改动是用中断切换任务.基本功能已经做好了, 但文档还有些乱, 需要整理一下. 做的时候只是为了看一下运行结果,很多地方也还需要优化.
官网上那个FreeRTOS的版本中有个缺陷是, 如果在中断里激活了一个高优先级任务, 不能即时任务切换, 需要等到时钟滴塔到了以后再统一进行切换.
现在这个版本没有这个缺陷, 但是可靠性还得进一步验证.

去年年底我发现官网上这个FreeRTOS版本的缺点后就发贴提出过, 但很遗憾, 到现在官网上的范例代码仍没有改变, 还是老样子.

我希望杨老师接收这个礼物, 并将其发杨光大, 本人认为这是一个重大的改进, 毕竟名字叫做RTOS, 官网的例子不能实时切换任务, 那还能叫实时OS吗

范例中, 打开了任务运行时间统计功能, 串口0 printf 输出结果, 运行截图如下:


此代码需要注意的是, 运行时间统计功能需要很大的任务栈, 故范示中使用了heap_4.c , 好像 FreeRTOS 原码有个用大内存的地方原码也改过, 具体记不清了, 用的时候注意一下就可以了

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-4-5 09:41:17 | 显示全部楼层
本帖最后由 tzz1983 于 2024-4-5 09:45 编辑
杨*** 发表于 2024-4-5 09:31
这个要支持,终于肯自己把自己的原创作品拿出来了,不再假他人之手。
这里“原创”的意思是采用了一个与之 ...

重新移植过了,没有动过源码.  源码只是处理了一些警告.

其它:我范例中用了 任务运行时间统计, 需要动态内存, heap_1.c 没有释放内存的功能, 所以用了heap_4.c

新的运行截图

333.PNG


点评

你的这个移植版存在重大BUG:不能运行此次排行榜的实时响应时间测试程序,会死机。 作为本尊,你应该亲自编写一个可以正常运行的,不死机的测试程序发布出来供大家学习。 如果你编不成功,就请给出一个说明,我们等  详情 回复 发表于 2024-4-16 21:58
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-4-5 10:37:08 | 显示全部楼层
   有空时,下来学习、学习!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:182
  • 最近打卡:2025-04-30 08:33:07

0

主题

48

回帖

748

积分

高级会员

积分
748
发表于 2024-4-5 22:23:20 | 显示全部楼层
厉害
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:287
  • 最近打卡:2025-05-01 13:00:01

0

主题

52

回帖

1280

积分

金牌会员

积分
1280
发表于 2024-4-7 14:10:31 | 显示全部楼层
准备学习FreeRTOS,支持一下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-4-7 14:36:31 | 显示全部楼层
正好搭配楼主的实战代码
实战 + 理论 探索,快速上手
FreeRTOS
入门@
STC32G , 【1 ~ 11 集】 连载,本坛荣誉版主杨老师出品
===STC32G12K128
STC32G FreeRTOS入门(1):单片机后台任务简介
STC32G FreeRTOS入门(2):单片机前后台任务编程中的问题
STC32G FreeRTOS入门(3):STC32G PK STC8--完胜
STC32G FreeRTOS入门(4):实时任务
STC32G FreeRTOS入门(5):与优化无关的软件延时函数
STC32G FreeRTOS入门(6):如何学好RTOS编程
STC32G FreeRTOS入门(7):抢占式任务调度
STC32G FreeRTOS入门(8):空闲任务与任务恢复
STC32G FreeRTOS入门(9):搭建完整操作系统功能
STC32G FreeRTOS入门(10):STC32G单片机的Keil C251引导过程简析
STC32G FreeRTOS入门(11):现场保护与恢复机制—FreeRTOS与C251中断异同


FreeRTOS入门@STC32G, 【1 ~ 11 集】 连载,本坛荣誉版主杨老师出品 - FreeRTOS/uCOS,GUI-uGFX/U8g2,文件系统/嵌入式系统/实时操作系统 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-4-16 21:58:02 | 显示全部楼层
tzz1*** 发表于 2024-4-5 09:41
重新移植过了,没有动过源码.  源码只是处理了一些警告.

其它:我范例中用了 任务运行时间统计, 需要动态 ...

你的这个移植版存在重大BUG不能运行此次排行榜的实时响应时间测试程序,会死机

作为本尊,你应该亲自编写一个可以正常运行的,不死机的测试程序发布出来供大家学习。
如果你编不成功,就请给出一个说明,我们等你消除BUG,发布新版本后再用你的新版本来学习研究。
静等


点评

没有啊, 我用都没死机 代码做好了, 按您的要求做的, 我按您的方法, 自己测试的结果分别为: 11.5 和 11.2 请检阅代码: [attachimg]41573[/attachimg] [attachimg]41574[/attachimg] [attachimg]41576[/att  详情 回复 发表于 2024-4-17 10:26
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-4-17 10:26:14 | 显示全部楼层
本帖最后由 tzz1983 于 2024-4-17 11:27 编辑
杨*** 发表于 2024-4-16 21:58
你的这个移植版存在重大BUG:不能运行此次排行榜的实时响应时间测试程序,会死机。

作为本尊,你应该亲 ...

没有BUG哦, 我做了代码都没死机

代码做好了, 按您的要求做的,
按照您的方法, 我自己测试的结果分别为: 11.5微秒  和  11.2微秒
请检阅代码:

捕获1.JPG
您是不是忘记中断里要用ISR特征的函数了?

捕获2.JPG

捕获3.JPG

捕获4.JPG

FreeRTOS_STC32G12K给杨老师的切换测试代码.rar (1.18 MB, 下载次数: 175)


点评

(1)收到,谢谢! (2)以后在编写STCx51单片机程序的时候,对于bit位变量,千万别再写“P21=!P21”这种形式,请写为“P21=~P21”,丢脸。 自己去调研一下为什么,服不服都回复给初学者看看  详情 回复 发表于 2024-4-18 20:41
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:41 , Processed in 0.243108 second(s), 120 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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