搜索
bottom↓
回复: 76

发布一个STM32的简单RTOS

  [复制链接]

出0入0汤圆

发表于 2014-1-5 20:59:02 | 显示全部楼层 |阅读模式
本帖最后由 lcw_swust 于 2014-1-5 21:00 编辑

上程序:

系统介绍:
        系统小巧,占用ROM约1KB.
        参考了"51圈圈操作系统",
        参考了 Pony279 的<<带你为STM32写一个不到100行代码的多任务OS.pdf>>,
       
        任务调度机制有点像FreeRTOS:
                是可剥夺型内核,既支持优先级调度算法也支持轮换调度算法
                允许不同的任务使用相同的优先级,在没有更高优先级任务就
                绪的情况下,同一优先级的任务共享CPU的使用时间。
        任务调度由TIM2中断实现,Update中断用于任务延时,Trigger用于立即进行调度.
缺点:
        功能简单,没有邮箱\信号量\删除任务等功能.
        任务调度函数由C编写,可能会占用较长的时间.
        可靠性有待观察.

注意:
        建立任务时,高优先级的任务要先建立.
        有些地方貌似需要加volatile.
KEIL3编译结果:

仿真运行情况:

之前发的一个51单片机上的例子:http://www.amobbs.com/thread-5565209-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981

出0入0汤圆

发表于 2014-1-5 21:26:51 | 显示全部楼层
沙发

出0入0汤圆

发表于 2014-1-6 12:22:29 | 显示全部楼层
哈哈  好东西  可惜没时间看了!!

出0入0汤圆

发表于 2014-1-6 12:22:46 | 显示全部楼层
哈哈  好东西  可惜没时间看了!!

出0入0汤圆

发表于 2014-1-6 12:24:00 | 显示全部楼层
哈哈  好东西啊

出0入0汤圆

发表于 2014-1-6 13:09:46 | 显示全部楼层
好东西收藏

出0入0汤圆

发表于 2014-1-6 13:23:22 | 显示全部楼层
MARK,记下了

出0入0汤圆

发表于 2014-3-28 13:46:50 | 显示全部楼层
有没那个用过?怎么样?顶起!

出0入0汤圆

发表于 2014-3-28 13:59:31 | 显示全部楼层
下载后解压出错!

出0入0汤圆

发表于 2014-3-29 00:22:48 | 显示全部楼层
楼主,你仿真运行,那些数是啥呀,什么数据?能否简单介绍下···嘻嘻···

出0入0汤圆

发表于 2014-3-29 06:45:46 来自手机 | 显示全部楼层
mark,回头学习

出0入0汤圆

发表于 2014-3-29 17:11:07 | 显示全部楼层
好东西!!

出0入0汤圆

发表于 2014-3-29 17:17:37 | 显示全部楼层
mark!!!!

出0入0汤圆

发表于 2014-3-30 21:20:56 | 显示全部楼层
代码量那么少吗?

出0入0汤圆

 楼主| 发表于 2014-3-31 09:02:00 | 显示全部楼层
eddia2012 发表于 2014-3-28 13:59
下载后解压出错!

我试了下,没问题。要不你换个浏览器试试?

出0入0汤圆

 楼主| 发表于 2014-3-31 09:03:51 | 显示全部楼层
tian_zi 发表于 2014-3-30 21:20
代码量那么少吗?

代码量少是因为功能少,另有一个51单片机版本的代码量更少:
http://www.amobbs.com/forum.php? ... p;page=1#pid7420833

出0入0汤圆

 楼主| 发表于 2014-3-31 09:04:57 | 显示全部楼层
kalo425 发表于 2014-3-29 00:22
楼主,你仿真运行,那些数是啥呀,什么数据?能否简单介绍下···嘻嘻··· ...

这个,你看看task1、task2、task3、task4这四个函数就明白了。

出0入0汤圆

发表于 2014-3-31 09:16:32 来自手机 | 显示全部楼层
挺喜欢这种小系统了,能够增强对系统的感念

出0入0汤圆

发表于 2014-3-31 09:47:21 | 显示全部楼层
顶楼主,一直想了解这钟小系统,但无从下手,谢谢楼主了

出0入0汤圆

发表于 2014-3-31 09:52:41 | 显示全部楼层
好东西,留下,慢慢研究。

出0入0汤圆

发表于 2014-3-31 10:22:49 | 显示全部楼层
很关注,这种小系统学习一下。

出0入0汤圆

发表于 2014-9-2 21:55:52 | 显示全部楼层
楼主能把“ 带你为STM32写一个不到100行代码的多任务OS.pdf ”中提到的“简陋库函数”上传一个给我等小白一个启发吗

出0入0汤圆

发表于 2014-9-2 23:25:42 | 显示全部楼层
我擦,为何这么叼!

出0入0汤圆

发表于 2014-9-3 06:32:10 | 显示全部楼层
谢谢楼主的分享!标记一下

出0入0汤圆

发表于 2014-9-3 06:33:28 | 显示全部楼层
学习了,膜拜楼主

出0入0汤圆

 楼主| 发表于 2014-9-3 09:02:26 | 显示全部楼层
CrystalShell 发表于 2014-9-2 21:55
楼主能把“ 带你为STM32写一个不到100行代码的多任务OS.pdf ”中提到的“简陋库函数”上传一个给我等小白一 ...

貌似原帖在这里:
http://www.openedv.com/posts/list/11005.htm
Pony279的程序:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-3 15:05:53 | 显示全部楼层
貌似好东西。收藏了先。

出0入0汤圆

发表于 2014-9-3 17:06:12 | 显示全部楼层
rtos  架构  mark

出0入0汤圆

发表于 2014-9-7 06:46:36 | 显示全部楼层
在实际项目中用过吗,还是只想当玩具

出0入0汤圆

发表于 2014-9-7 09:37:02 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2014-9-7 09:45:33 | 显示全部楼层
下载下来,自己跑跑看看咯。

出0入0汤圆

 楼主| 发表于 2014-9-7 20:29:53 | 显示全部楼层
xiangye 发表于 2014-9-7 06:46
在实际项目中用过吗,还是只想当玩具


还真没在项目中用过...
一直是裸奔
相信会有用得到的一天。

出0入0汤圆

发表于 2014-9-7 20:52:25 | 显示全部楼层
好东西嘿嘿 学习了

出0入0汤圆

发表于 2014-9-7 21:36:14 | 显示全部楼层
看看,学习中。。。。。。

出0入0汤圆

发表于 2014-9-7 21:50:06 | 显示全部楼层
好东西

出0入0汤圆

发表于 2014-9-7 22:03:35 | 显示全部楼层
兄弟能否贴出项目的map文件,以核实rom占用确实小于1k,rtx是mdk自带的rtos,同样也是非常的小,他的rom占用在O3优化时是4k左右

出0入0汤圆

 楼主| 发表于 2014-9-8 11:50:02 | 显示全部楼层
myxiaonia 发表于 2014-9-7 22:03
兄弟能否贴出项目的map文件,以核实rom占用确实小于1k,rtx是mdk自带的rtos,同样也是非常的小,他的rom占 ...

map在附件中有的,我也看不明白。
你可以把工程中OS.C去掉,main.c中与OS相关的也去掉,再编译对比一下看看。

出0入0汤圆

发表于 2014-9-8 13:33:56 | 显示全部楼层
本帖最后由 myxiaonia 于 2014-9-8 13:45 编辑
lcw_swust 发表于 2014-9-8 11:50
map在附件中有的,我也看不明白。
你可以把工程中OS.C去掉,main.c中与OS相关的也去掉,再编译对比一下看 ...


主要是我下载不下来,网速很不稳定啊,你看能不能把编译输出文件删除了再上传下


现在已经下载下来了,os.c在O3优化下只有500字节左右,os.c也只有200多行,确实很小,就是个调度器吧

出0入0汤圆

发表于 2014-9-8 14:15:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-9-8 16:36:13 | 显示全部楼层
谢谢楼主分享。。。

出0入0汤圆

发表于 2014-9-8 20:42:11 | 显示全部楼层
lcw_swust 发表于 2014-9-8 11:50
map在附件中有的,我也看不明白。
你可以把工程中OS.C去掉,main.c中与OS相关的也去掉,再编译对比一下看 ...

LZ我把你的工程中输出文件删除了,这样的话工程就比较小了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

发表于 2014-9-8 20:54:24 | 显示全部楼层
做的不错

出0入4汤圆

发表于 2014-9-8 20:55:01 | 显示全部楼层
做的不错

出0入0汤圆

发表于 2014-9-8 20:59:44 | 显示全部楼层
好东西,收藏了

出0入0汤圆

发表于 2014-9-8 21:51:01 | 显示全部楼层
mark                          

出0入0汤圆

 楼主| 发表于 2014-9-9 09:18:47 | 显示全部楼层
myxiaonia 发表于 2014-9-8 20:42
LZ我把你的工程中输出文件删除了,这样的话工程就比较小了

O3是啥? 居然能压缩到500字节.
貌似也可以称之为"调度器",因为功能少,就像单片机的核心板一样.

出0入0汤圆

发表于 2014-9-9 09:58:55 | 显示全部楼层
lcw_swust 发表于 2014-9-9 09:18
O3是啥? 居然能压缩到500字节.
貌似也可以称之为"调度器",因为功能少,就像单片机的核心板一样. ...

汗  O3是优化级别,在option选型->c/c++项目选型卡,左下附近

出0入0汤圆

发表于 2014-9-9 09:59:50 | 显示全部楼层
mark,回头学习

出0入0汤圆

发表于 2014-9-9 10:10:49 | 显示全部楼层
谢谢 标记一下 留用

出0入0汤圆

 楼主| 发表于 2014-9-9 10:14:02 | 显示全部楼层
myxiaonia 发表于 2014-9-9 09:58
汗  O3是优化级别,在option选型->c/c++项目选型卡,左下附近

,其实我一直没改过优化级别,怕出问题.

出0入0汤圆

发表于 2014-9-9 11:15:52 | 显示全部楼层
不错,我来用用

出0入0汤圆

发表于 2014-10-9 09:19:04 | 显示全部楼层
简单也是美,下来试下,不错可用,谢谢

出0入0汤圆

发表于 2014-10-9 10:45:13 | 显示全部楼层
目前一直在学ucos,楼主看样子也是系统高手了

出0入0汤圆

发表于 2014-10-9 10:53:10 | 显示全部楼层
RTOS 留名 支持

出0入0汤圆

发表于 2014-10-9 10:54:53 | 显示全部楼层
下载测试学习。

出0入0汤圆

发表于 2014-10-9 11:50:32 | 显示全部楼层
MARK,记下了

出0入0汤圆

发表于 2014-10-9 12:25:15 | 显示全部楼层
小白请教一下楼主,RTOS和UCOS有什么区别

出0入0汤圆

发表于 2014-10-9 12:50:25 | 显示全部楼层
简单的工程里用用也很不错

出0入0汤圆

 楼主| 发表于 2014-10-9 14:10:33 | 显示全部楼层
何小小宝 发表于 2014-10-9 12:25
小白请教一下楼主,RTOS和UCOS有什么区别

简单的说,UCOS是RTOS的一种。
百度了一下:
UCOS(μC/OS )
μC/OS II(Micro Control Operation System Two))的前身是μC/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在《嵌入式系统编程》杂志的5 月和6 月刊上刊登的文章连载,并把μC/OS 的源码发布在该杂志的B B S 上。
μC/OS II是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。

RTOS(Real Time Operating System)
实时操作系统,是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。

出0入102汤圆

发表于 2014-10-9 16:31:15 | 显示全部楼层
从小系统开始,收藏学习,感谢分享。

出0入0汤圆

发表于 2014-10-11 16:41:58 | 显示全部楼层
好东西,先收藏

出0入79汤圆

发表于 2015-4-6 15:05:01 | 显示全部楼层
有没有 API ? 使用说明书上面的  我现在用的几个RTOS 占用RAM 太大(我的可以RAM 只有 2K) 不知道这个可以吗 ?

出0入0汤圆

发表于 2015-4-6 17:13:54 | 显示全部楼层
收下了, 有空试下

出0入0汤圆

发表于 2015-4-6 18:57:21 | 显示全部楼层
不错,看看。

出0入0汤圆

发表于 2015-4-6 19:07:52 | 显示全部楼层
我也喜欢研究os,调度器之类的.......顶

出0入0汤圆

 楼主| 发表于 2015-4-6 20:21:27 | 显示全部楼层
BOERLBH 发表于 2015-4-6 15:05
有没有 API ? 使用说明书上面的  我现在用的几个RTOS 占用RAM 太大(我的可以RAM 只有 2K) 不知道这个可以 ...

API是啥?
我觉得这程序够精简了,多看看就明白了.
至于RAM占用,我也搞不明白,这里ZI-data有点大,应该不全是操作系统占用的,
因为几乎相同的系统移植到51单片机只占用不到200字节的RAM.
建议你试一试.
(我的电脑刚重装了系统,不方便试)

出0入79汤圆

发表于 2015-4-7 10:51:29 | 显示全部楼层
lcw_swust 发表于 2015-4-6 20:21
API是啥?
我觉得这程序够精简了,多看看就明白了.
至于RAM占用,我也搞不明白,这里ZI-data有点大,应该不全 ...

谢谢 等我忙完手头的工作 试试 。。

出0入0汤圆

发表于 2015-12-23 00:29:16 | 显示全部楼层
谢谢,试一下操作系统的过程。

出0入0汤圆

发表于 2015-12-23 08:23:57 | 显示全部楼层
不错留个脚印,等有空看看

出0入0汤圆

发表于 2015-12-23 10:55:50 | 显示全部楼层
收藏了先,用空在看

出0入0汤圆

发表于 2019-7-12 21:49:31 | 显示全部楼层

谢谢楼主分享

出0入0汤圆

发表于 2019-7-13 08:29:09 | 显示全部楼层
水平太低,冒昧问一句是抢占式的吗

出0入0汤圆

 楼主| 发表于 2019-7-15 14:34:46 | 显示全部楼层
cnxh 发表于 2019-7-13 08:29
水平太低,冒昧问一句是抢占式的吗

这个,我也搞不太清楚了.

出0入0汤圆

发表于 2019-7-15 18:24:31 | 显示全部楼层
非常好,让人兴奋的帖子

出0入0汤圆

发表于 2019-12-29 23:25:03 | 显示全部楼层
楼主的都是精品啊,先收藏了

出0入0汤圆

发表于 2019-12-30 10:20:12 | 显示全部楼层
楼主太牛了,好东西,多谢分享!

出0入0汤圆

发表于 2019-12-30 17:32:35 | 显示全部楼层
不错不错,学习下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-1 14:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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