搜索
bottom↓
123
返回列表 发新帖
楼主: summarize

结合时间触发+消息+protothread思想+支持优先级的非抢占调度器

  [复制链接]

出0入0汤圆

发表于 2014-8-26 16:32:36 | 显示全部楼层
学习一下,下下来看看

出0入0汤圆

发表于 2014-8-26 16:42:00 | 显示全部楼层
这帖子好长啊!!

出0入0汤圆

发表于 2014-8-26 16:43:26 | 显示全部楼层
mark........

出0入0汤圆

发表于 2014-10-8 11:43:36 | 显示全部楼层
楼主 可以把你的 类OS调度器 用于商业产品上吗 最近正在做 STM8 的产品

出0入0汤圆

 楼主| 发表于 2014-10-8 12:23:19 | 显示全部楼层
mathison 发表于 2014-10-8 11:43
楼主 可以把你的 类OS调度器 用于商业产品上吗 最近正在做 STM8 的产品

可以,欢迎使用.

出0入0汤圆

发表于 2014-10-9 09:27:23 | 显示全部楼层
protothread 在了解contiki 的时候了解了下,觉得很巧妙

出0入8汤圆

发表于 2014-10-17 16:10:58 | 显示全部楼层
后排帮顶~

出0入0汤圆

发表于 2014-10-17 17:44:57 | 显示全部楼层
谢谢分享。

出0入8汤圆

发表于 2014-10-25 13:20:55 | 显示全部楼层
好想知道怎么在进程里添加呼吸灯,为啥不呼吸憋死了呢?

出0入0汤圆

发表于 2014-10-25 17:53:07 | 显示全部楼层
楼主的 switch case 用得 很妙! 延时前 延时后 有关联的 变量 还要用static修饰。

出0入0汤圆

发表于 2014-10-25 19:13:56 | 显示全部楼层
今天把楼主的程序移植到了keil mdk上去了,填补了没有stm32 keil mdk 版本,以方便其他人学习啊,目前只测试了串口和led都能正常工作,adc和看门狗没加进去啊,星期一再加进去看看。看了楼主的程序,唯一不理解的就是楼主写的这种格式让人不是很理解啊,希望楼主能解释下啊void vLedTest(void)
{
static SCH_UINT8 SchLc=0; switch(SchLc){ case 0:;

while(1)
{

{SchLc=SCH_CURR_LINE;pCurTCB->TimeCounter=Ticks;}return ;case SCH_CURR_LINE:

}

;}; SchLc=0;        

}对于这种格式,这段程序是怎么运行的,里面的while(1)为什么会以这种格式出现啊,还有就是case SCH_CURR_LINE:的用法啊,我在网上查不到啊 ,呵呵

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-11-14 23:22:15 来自手机 | 显示全部楼层
不错,学习了

出0入0汤圆

发表于 2014-12-10 23:25:58 | 显示全部楼层
rootxie 发表于 2014-4-22 18:11
这个东西是协作式的,跟uc/os的区别就是 即使最高优先级的任务也得等正在运行的任务运行完才能 运行,uc/ ...

大虾  能讲下 _LINE_这个是怎么用的?

出0入0汤圆

发表于 2015-6-1 22:53:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2015-7-13 09:31:14 | 显示全部楼层
谢谢 指点  

出0入0汤圆

 楼主| 发表于 2015-7-13 10:42:40 | 显示全部楼层
zzjjhh250 发表于 2014-12-10 23:25
大虾  能讲下 _LINE_这个是怎么用的?

编译器取当前代码的行号,格式就是这样,没有什么道理可言的。

出0入0汤圆

发表于 2015-7-17 17:26:54 | 显示全部楼层
summarize 发表于 2013-9-22 20:46
#define SCH_CURR_LINE                (SCH_UINT8)(__LINE__+(!__LINE__))         ->这个定义是不是有 ...

请教:goto怎么代替switch。

出0入0汤圆

 楼主| 发表于 2015-7-17 21:43:16 | 显示全部楼层
LVmcu 发表于 2015-7-17 17:26
请教:goto怎么代替switch。

94楼有回复.

出0入0汤圆

发表于 2015-7-18 10:02:34 | 显示全部楼层

看来你的博文,附件无法下载,可否转到本坛?

出0入0汤圆

发表于 2015-7-18 10:59:54 | 显示全部楼层
楼主精神可佳还再维护这个帖子,而且不厌其烦。赞!

出0入0汤圆

 楼主| 发表于 2015-7-18 16:37:46 | 显示全部楼层
LVmcu 发表于 2015-7-18 10:02
看来你的博文,附件无法下载,可否转到本坛?

不会吧,楼主位的东西不能下载么?

出0入0汤圆

发表于 2015-7-19 03:17:40 | 显示全部楼层
本帖最后由 maplewang 于 2015-7-18 11:18 编辑

楼主支持PCI 8位单片机吗?另外在github.com 上面开个项目维护吧,这样人更多了。

出0入0汤圆

 楼主| 发表于 2015-7-19 08:55:48 | 显示全部楼层
maplewang 发表于 2015-7-19 03:17
楼主支持PCI 8位单片机吗?另外在github.com 上面开个项目维护吧,这样人更多了。
...

1.你说的应该是PIC单片机吧.

2.纯C实现的,只要的支持C语言的平台就可以.移植步骤在47楼.

3.对"github.com "不太了解,能简单介绍下相关功能及使用步骤不?

出0入0汤圆

发表于 2015-7-20 01:57:32 | 显示全部楼层
1 我是说PIC的单片机
3 github.com 就是可以把你代码上传到那里,用git方式进行代码管理,回溯所有的修改记录。gitbub 可以把你的代码通过web 的方式显现出来,方便别人下载或者提交问题。自从有了它code.google准备关门了,sourceforge.net 也不行了。你就当他是高级的sourcesafe, svn系统就好了。

出0入0汤圆

 楼主| 发表于 2015-7-20 08:58:52 | 显示全部楼层
maplewang 发表于 2015-7-20 01:57
1 我是说PIC的单片机
3 github.com 就是可以把你代码上传到那里,用git方式进行代码管理,回溯所有的修改记 ...

昨天注册了帐户,还不会用,以前用过SVN,不知道这个和SVN和多大区别?

出0入0汤圆

发表于 2015-7-20 09:03:56 | 显示全部楼层
summarize 发表于 2015-7-18 16:37
不会吧,楼主位的东西不能下载么?

确实不能下载。还是麻烦转一下到本坛吧!

出0入0汤圆

 楼主| 发表于 2015-7-20 09:15:52 | 显示全部楼层
LVmcu 发表于 2015-7-20 09:03
确实不能下载。还是麻烦转一下到本坛吧!

不好意思,我有点晕了,你说的到底是本帖子楼主位的东西不能下载,还是94楼给出的网页链接的内容不能下载?

出0入0汤圆

发表于 2015-7-20 09:23:44 | 显示全部楼层
summarize 发表于 2015-7-20 09:15
不好意思,我有点晕了,你说的到底是本帖子楼主位的东西不能下载,还是94楼给出的网页链接的内容不能下载 ...

94楼给出的网页链接的内容不能下载,不好意思,我没有表达清楚。

出0入0汤圆

 楼主| 发表于 2015-7-20 11:40:14 | 显示全部楼层
LVmcu 发表于 2015-7-20 09:23
94楼给出的网页链接的内容不能下载,不好意思,我没有表达清楚。

确实不能下载.
同样的内容在本坛也有
http://www.amobbs.com/forum.php?mod=viewthread&tid=4077658

应用部分的代码是已经贴出来了的,调度部分源码直接百度找“protothread”就可以了。

出0入79汤圆

发表于 2015-9-29 22:04:37 | 显示全部楼层
顶 楼主, 楼主还在搞 吗 ?  RAM消耗 怎么样 能不能用在 小于4K RAN 的系统上

出0入0汤圆

 楼主| 发表于 2015-9-30 08:40:25 | 显示全部楼层
BOERLBH 发表于 2015-9-29 22:04
顶 楼主, 楼主还在搞 吗 ?  RAM消耗 怎么样 能不能用在 小于4K RAN 的系统上

每一个任务至少要用到一个TCB,看其结构体就知道占用RAM情况了。

出0入0汤圆

发表于 2015-12-16 23:25:22 | 显示全部楼层
summarize 发表于 2013-7-22 01:17
使用说明文档已经出来了:
自制类OS调试器应用与说明
一、调度器功能说明。

请问是不是修改定时器部分的代码就可以完成移植了,谢谢!

出0入0汤圆

 楼主| 发表于 2015-12-17 11:32:14 | 显示全部楼层
banjiaoshi 发表于 2015-12-16 23:25
请问是不是修改定时器部分的代码就可以完成移植了,谢谢!

先看完使用说明文档,还有不明白的地方我回答你。

出0入0汤圆

发表于 2015-12-18 23:37:56 | 显示全部楼层
本帖最后由 banjiaoshi 于 2015-12-18 23:39 编辑
summarize 发表于 2015-12-17 11:32
先看完使用说明文档,还有不明白的地方我回答你。


请问如何进入临界状态,就是调度器不工作,是否停止系统时钟就可以?
另外如何主动放弃当前进程强制让系统自动跳转到其他任务?是否更新系统时钟中断标志位就可以?

出0入0汤圆

发表于 2015-12-19 17:01:50 | 显示全部楼层
summarize 发表于 2013-5-24 13:54
9600/8bit=1200,加上起止停止位等,算位1K频率,对应1ms,再不行可以用示波器看下发送一个字节到底用多 ...

串口的接收是中断接收,发送是通过任务调度的,是不是这样理解的?楼主牛X

出0入0汤圆

 楼主| 发表于 2015-12-21 12:32:57 | 显示全部楼层
xts 发表于 2015-12-19 17:01
串口的接收是中断接收,发送是通过任务调度的,是不是这样理解的?楼主牛X ...

你说得对。  

出0入0汤圆

 楼主| 发表于 2015-12-21 12:35:59 | 显示全部楼层
banjiaoshi 发表于 2015-12-18 23:37
请问如何进入临界状态,就是调度器不工作,是否停止系统时钟就可以?
另外如何主动放弃当前进程强制让系 ...

这只是调度器,不是真正的OS。所以没有临界状态(或者说不用考虑),任务是顺序执行的,即A任务执行结束后才会执行B任务,没有强制的概念。

出0入0汤圆

发表于 2016-1-26 15:22:34 | 显示全部楼层
这个类OS确实不错,请问有没有那位兄弟移植成功了STVD平台的,我这弄一直有报错。

出0入0汤圆

发表于 2016-1-26 15:30:10 | 显示全部楼层
关注一下

出0入0汤圆

发表于 2016-1-26 16:10:19 | 显示全部楼层
大神能否弄一份STVD平台的寄存器版的上来呀,STM8S我是用STVD平台的。

出0入0汤圆

 楼主| 发表于 2016-1-27 13:16:23 | 显示全部楼层
lattice2008 发表于 2016-1-26 16:10
大神能否弄一份STVD平台的寄存器版的上来呀,STM8S我是用STVD平台的。

别大神,你自己看下移植说明也差不多,仔细看下来一点都不难,都是C语言。就不要做伸手党了吧,弄出来后再分享到这里造福坛友啊。

出0入0汤圆

发表于 2016-1-27 19:42:06 | 显示全部楼层
我开始也试下自已移植了,但是这条语句一直报错,找不到原因呀。 pCurTCB->pTask();//执行当前任务控制块指向的任务   , 求解。

出0入0汤圆

发表于 2016-1-27 20:27:37 | 显示全部楼层
可以了,刚才移植到了STVD平台了,void  (*pTask)(); 须要改为 void  (*pTask)(void); 否则STVD平台会提示出错。

出0入0汤圆

发表于 2016-7-6 10:07:09 | 显示全部楼层
summarize 发表于 2013-7-22 01:17
使用说明文档已经出来了:
自制类OS调试器应用与说明
一、调度器功能说明。

楼主你好,不明白SCHTaskBegin();这个为什么一定要,看了里面的具体实现,没有做什么处理呀。

出0入0汤圆

发表于 2016-7-6 10:22:27 | 显示全部楼层
liudijiang 发表于 2016-7-6 10:07
楼主你好,不明白SCHTaskBegin();这个为什么一定要,看了里面的具体实现,没有做什么处理呀。 ...

哦哦,,,知道了,,,,

出0入0汤圆

发表于 2017-9-12 08:40:17 | 显示全部楼层
summarize 发表于 2016-1-27 13:16
别大神,你自己看下移植说明也差不多,仔细看下来一点都不难,都是C语言。就不要做伸手党了吧,弄出来后 ...

请问一下楼主,怎么样去删除一个任务了

出0入0汤圆

发表于 2017-9-13 18:19:09 | 显示全部楼层
__LINE__+(!__LINE__) 中的(!__LINE__) 有什么讲究?

出0入0汤圆

 楼主| 发表于 2017-10-3 09:58:10 | 显示全部楼层
jiangyimfs1 发表于 2017-9-12 08:40
请问一下楼主,怎么样去删除一个任务了

调度器本身就很小,就没有必要搞删除操作了。

出0入0汤圆

 楼主| 发表于 2017-10-3 10:08:25 | 显示全部楼层
EE_Duan 发表于 2017-9-13 18:19
__LINE__+(!__LINE__) 中的(!__LINE__) 有什么讲究?

参见64楼。  

出0入0汤圆

发表于 2017-10-9 08:43:34 | 显示全部楼层

感谢提醒.摘要出来方便后来者.

"#define SCH_CURR_LINE                (SCH_UINT8)(__LINE__)  相比,加上 +(!__LINE__)) 后 ,它只能解决0x00与0x0100行不会冲突(转成8位后同时为0,编译会提示出错)。0x00行计算结果为0x01。0x0100行计算结果为0x00。但它并不能解决如0x01行与0x0101行的冲突,因为这两个行的计算结果都是0x01。所以这个算法基本没什么意义了,或者编译提示重复定义出错时,加个回车键是最简单有效的办法。"

出10入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-18 17:24

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

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