OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: shr5791

★★★ 自己写的操作系统SCH51(有优先级,可抢占,可用于实际项目)_欢迎各位大神们批评指正 ★★★

  [复制链接]

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2017-3-17 11:34:06 | 显示全部楼层
无痕幽雨 发表于 2017-3-16 19:52
这个代码是《时间触发嵌入式系统设计模式 8051系列微控制器开发可靠应用》里面的。第6点很早就已经解决了 ...

请教下第六点是如何解决的?我除了知道用protothread的算法可以解决外,就只剩下状态机的算法了,如果方法跟传统状态机一样那还不如直接用传统的状态机算了
OS保存断点的做法跟底层相关的就不在讨论范围里面了

拿来长岛冰茶换我半晚安睡
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

6

主题

153

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1323
金钱
1323
注册时间
2016-12-27
在线时间
156 小时
发表于 2017-3-17 19:41:35 | 显示全部楼层
FreeRTOS 发表于 2017-3-16 15:50
贴上你的代码或工程呗,看下你是怎样使用的

帮忙看看,有哪里调度的不对

SCH51 ★★★★★★★ V1.45.rar

139.12 KB, 下载次数: 303

回复 支持 反对

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2017-3-18 09:55:42 | 显示全部楼层
本帖最后由 FreeRTOS 于 2017-3-18 10:00 编辑
大瓶子凌凌漆 发表于 2017-3-17 19:41
帮忙看看,有哪里调度的不对

大概看了下你的代码,调用方法貌似也没问题,你有没有用仿真器看过程序卡在哪个位置?
拿来长岛冰茶换我半晚安睡
回复 支持 反对

使用道具 举报

6

主题

153

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1323
金钱
1323
注册时间
2016-12-27
在线时间
156 小时
发表于 2017-3-18 11:28:58 | 显示全部楼层
FreeRTOS 发表于 2017-3-18 09:55
大概看了下你的代码,调用方法貌似也没问题,你有没有用仿真器看过程序卡在哪个位置?

51很少用仿真器,我直接裸机上运行都是没有问题的。在该小系统上可能是调度的时间不太够吧
回复 支持 反对

使用道具 举报

0

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2017-6-12
在线时间
8 小时
发表于 2017-6-19 23:07:45 | 显示全部楼层
顶楼主。
回复 支持 反对

使用道具 举报

39

主题

212

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
金钱
303
注册时间
2016-4-21
在线时间
129 小时
发表于 2017-7-28 14:41:15 | 显示全部楼层
本人交流群:136045527,欢迎各位大佬和萌新
回复 支持 反对

使用道具 举报

3

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2017-7-29
在线时间
18 小时
发表于 2017-7-29 15:43:01 | 显示全部楼层
强,学习了, 不错
回复 支持 反对

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6661
金钱
6661
注册时间
2016-5-29
在线时间
909 小时
发表于 2018-1-10 10:04:48 | 显示全部楼层
楼主的多任务操作系统,其实就是一个软定时器系统.
不操作堆栈很难实现抢占式操作系统.
楼主能独立完成这个软定时的程序.已经很厉害了.
至少不会使用低效率的延时函数了.
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-3-31
在线时间
0 小时
发表于 2018-2-5 08:51:58 | 显示全部楼层
这个真的很牛,下载来,看看
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-2-6
在线时间
6 小时
发表于 2018-2-7 13:20:22 | 显示全部楼层
楼主很强!
回复 支持 反对

使用道具 举报

6

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2016-3-13
在线时间
36 小时
发表于 2018-2-8 21:26:00 | 显示全部楼层
这也算系统?我也呵呵了。
回复 支持 反对

使用道具 举报

32

主题

300

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2012-3-30
在线时间
321 小时
发表于 2018-3-11 15:22:56 | 显示全部楼层
目前还没有用到,看看。
回复 支持 反对

使用道具 举报

2

主题

56

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1394
金钱
1394
注册时间
2014-12-31
在线时间
187 小时
发表于 2018-8-9 08:13:30 | 显示全部楼层
下载学习了
回复 支持 反对

使用道具 举报

20

主题

227

帖子

0

精华

高级会员

Rank: 4

积分
605
金钱
605
注册时间
2017-7-14
在线时间
116 小时
发表于 2018-8-9 15:56:38 | 显示全部楼层
好东西不错不错
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2018-8-29
在线时间
34 小时
发表于 2018-8-29 15:18:51 | 显示全部楼层
roywahaha 发表于 2016-12-7 18:01
**** 作者被禁止或删除 内容自动屏蔽 ****

连函数名都没改的 原模原样的搬过来就是自己写的
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2018-8-29
在线时间
34 小时
发表于 2018-8-29 15:24:09 | 显示全部楼层
拿着《时间触发嵌入式系统设计模式》书里面的代码原模原样函数名都没改的搬过来就说自己写的  这也太不尊重原作者了吧
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2018-8-29
在线时间
34 小时
发表于 2018-8-29 15:27:00 | 显示全部楼层
电子极客迷 发表于 2018-8-29 15:24
拿着《时间触发嵌入式系统设计模式》书里面的代码原模原样函数名都没改的搬过来就说自己写的  这也太不尊重 ...

书上源码
QQ截图20180829151925.png
回复 支持 反对

使用道具 举报

37

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2016-6-10
在线时间
191 小时
发表于 2019-1-3 17:57:48 | 显示全部楼层
只是用了最基本的类似标志位的东西,不具有实时性,有些非周期性任务仍然无法处理,比如我想一边放音乐,一边处理游戏数据,两个都是非周期的任务,这个“操作系统”就无能为力了。
必须涉及汇编和堆栈处理才能解决这个问题,但是51单片机本身架构不如ARM架构,PC寄存器,不允许访问。头疼
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2014-8-3
在线时间
2 小时
发表于 2019-1-4 00:17:57 | 显示全部楼层
周亚龙 发表于 2019-1-3 17:57
只是用了最基本的类似标志位的东西,不具有实时性,有些非周期性任务仍然无法处理,比如我想一边放音乐,一 ...

建议试一试新的51单片机操作系统:Starlight V0.2,在帖子“51单片机操作系统:Starlight V0.2”中有介绍。
回复 支持 反对

使用道具 举报

0

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2014-9-18
在线时间
21 小时
发表于 2020-5-16 12:38:24 | 显示全部楼层
cool,太厉害
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-5-15
在线时间
14 小时
发表于 2021-2-1 17:08:21 | 显示全部楼层
楼主,你这个程序我有2个问题。
第一: 通过函数指针调用其他任务函数,在keilC51里可能会出现内存覆盖的问题吗?PS.因为我百度后有人说调用树可能不能被正确的构建。
第二:我看的是 SCH51 ★★★★★★★  V1.45 这个文件,里面程序中,调度器定时器中断里面,你通过判断Delay_MS是否<=0 从而 判断 设置的周期时间到了没有,这个Delay_MS是上次定时中断Delay_MS-1的Delay_MS。 也就是你这个程序周期比设置的多了1个T0_TICK_TIME_MS。
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2013-12-9
在线时间
19 小时
发表于 2022-11-20 09:19:55 | 显示全部楼层
谢谢楼主分享。
我行我可以
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
295
金钱
295
注册时间
2020-6-4
在线时间
32 小时
发表于 2023-9-6 14:54:34 | 显示全部楼层
如果任务A和任务B定时同时定时到,该执行哪个?如果执行A,那么B就得舍弃,注意,是舍弃,不是等一会再执行B,我想问为什莫不执行b呢
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2024-1-14
在线时间
8 小时
发表于 2024-3-13 09:56:01 | 显示全部楼层
粗看一下,眼直了,腿抖了,厉害呀,楼主
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 11:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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