holts2 发表于 2014-8-23 09:33:03

【网友讨论帖】谁来移植个协同式操作系统到K02

本帖最后由 FSL_TICS_ZJJ 于 2014-9-15 14:50 编辑

如题,本坛    再出个调度器,极小资源单片机值得一用
http://www.amobbs.com/thread-5508723-1-1.html
(出处: amoBBS 阿莫电子论坛)
看起来不错,那位好心的XD能移植到K02 ?

abszy 发表于 2014-8-23 09:35:58

板子还没到到了研究研究

sunnyqd 发表于 2014-8-23 09:37:00

没有k02的板子。。。

holts2 发表于 2014-8-23 09:37:11

abszy 发表于 2014-8-23 09:35
板子还没到到了研究研究

好啊,改好就发上来

holts2 发表于 2014-8-23 09:37:46

sunnyqd 发表于 2014-8-23 09:37
没有k02的板子。。。

你手上这么多飞币,换一块去

javabean 发表于 2014-8-23 09:42:53

飞币不够,没有板子{:cry:}

sunnyqd 发表于 2014-8-23 09:44:00

holts2 发表于 2014-8-23 09:37
你手上这么多飞币,换一块去

我在老家。。回去后再说,嘿嘿

holts2 发表于 2014-8-23 09:45:03

javabean 发表于 2014-8-23 09:42
飞币不够,没有板子

快了,努力努力

holts2 发表于 2014-8-23 09:46:11

sunnyqd 发表于 2014-8-23 09:44
我在老家。。回去后再说,嘿嘿

发个短信给莫大就可以了,等你回去估计菜都凉了

sunnyqd 发表于 2014-8-23 09:57:16

holts2 发表于 2014-8-23 09:46
发个短信给莫大就可以了,等你回去估计菜都凉了

主要是不想要小板啊,小板我这里有一大堆。。。攒钱换个大的玩玩。。我们做变频器的,现在倾向于用资源多的芯片,对于低端的芯片,有了量之后再转过去

holts2 发表于 2014-8-23 10:03:19

sunnyqd 发表于 2014-8-23 09:57
主要是不想要小板啊,小板我这里有一大堆。。。攒钱换个大的玩玩。。我们做变频器的,现在倾向于用资源多 ...

明白, 那你向3000进发吧,小板留给我

rootxie 发表于 2014-8-23 10:24:26

这个还要别人移植么?熟悉下KE02,估计也没费多长时间

holts2 发表于 2014-8-23 10:29:51

rootxie 发表于 2014-8-23 10:24
这个还要别人移植么?熟悉下KE02,估计也没费多长时间

对FSL的MCU不熟啊

szpspike 发表于 2014-8-23 10:48:43

这种调度器应该很好移植的

holts2 发表于 2014-8-23 10:52:03

szpspike 发表于 2014-8-23 10:48
这种调度器应该很好移植的

要不你帮帮手{:lol:}

tim 发表于 2014-8-23 10:52:14

人家不是说了“超级可以移植性,与CPU无关”

holts2 发表于 2014-8-23 10:54:48

tim 发表于 2014-8-23 10:52
人家不是说了“超级可以移植性,与CPU无关”

我也想不通这么超级容易的怎的没人做 ?{:lol:}

tim 发表于 2014-8-23 10:58:36

holts2 发表于 2014-8-23 10:54
我也想不通这么超级容易的怎的没人做 ?

楼主自己做呗{:titter:}

szpspike 发表于 2014-8-23 10:58:44

holts2 发表于 2014-8-23 10:52
要不你帮帮手

我没有板子,没有用过飞思卡尔.
他写了超级可以移植性,与CPU无关,几乎任何支持C语言编程的CPU都可以用!
如果你能在K02上跑起来最小系统,移植这个应该不是什么问题了

zhaojun_xf 发表于 2014-8-23 10:59:25

不如时间片轮询好用。。。

holts2 发表于 2014-8-23 11:00:00

tim 发表于 2014-8-23 10:58
楼主自己做呗

实在不行,只好自己上了

holts2 发表于 2014-8-23 11:00:46

szpspike 发表于 2014-8-23 10:58
我没有板子,没有用过飞思卡尔.
他写了超级可以移植性,与CPU无关,几乎任何支持C语言编程的CPU都可以用! ...

板子很容易的,发个短信给莫大要一块

holts2 发表于 2014-8-23 11:01:57

zhaojun_xf 发表于 2014-8-23 10:59
不如时间片轮询好用。。。

有什么分别,不都是不可抢先的操作系统 ?

sunnyqd 发表于 2014-8-23 11:11:45

holts2 发表于 2014-8-23 10:54
我也想不通这么超级容易的怎的没人做 ?

实用的时候,没有多大必要吧,因为RTX资源占用已经可以忍受了,没有必要再实际产品里面使用这样一个简单的操作系统,大家只是玩玩而已。。我是这样觉得的

holts2 发表于 2014-8-23 11:18:04

sunnyqd 发表于 2014-8-23 11:11
实用的时候,没有多大必要吧,因为RTX资源占用已经可以忍受了,没有必要再实际产品里面使用这样一个简单 ...

主要是我用过这个,沉得不错, RTX没用过

sunnyqd 发表于 2014-8-23 11:19:44

holts2 发表于 2014-8-23 11:18
主要是我用过这个,沉得不错, RTX没用过

我推荐用RTX,不过好像需要商业付费的,和Keil结合的比较紧密,堆栈的占用可以实时查看。RTX占用的内存当然会大

xlxbangel 发表于 2014-8-23 11:32:09

手上倒是有一块ke02   不过在别人那改天拿过来试试

holts2 发表于 2014-8-23 11:35:09

sunnyqd 发表于 2014-8-23 11:19
我推荐用RTX,不过好像需要商业付费的,和Keil结合的比较紧密,堆栈的占用可以实时查看。RTX占用的内存当 ...

我只是业余玩,付费的不玩。

holts2 发表于 2014-8-23 11:37:10

xlxbangel 发表于 2014-8-23 11:32
手上倒是有一块ke02   不过在别人那改天拿过来试试

如果熟悉K02可以先动手

xlxbangel 发表于 2014-8-23 11:39:01

那个帖子好长啊   

holts2 发表于 2014-8-23 11:40:25

xlxbangel 发表于 2014-8-23 11:39
那个帖子好长啊

我从头到尾详看了三遍,才基本看懂

qinshiysb 发表于 2014-8-23 11:40:29

哈哈,楼主自己好好学习一下,自己就能移出来啦

xlxbangel 发表于 2014-8-23 11:40:39

holts2 发表于 2014-8-23 11:37
如果熟悉K02可以先动手

就用过一次然后就放在那里了   看了一下那个调度器也不是很复杂

xlxbangel 发表于 2014-8-23 11:41:16

holts2 发表于 2014-8-23 11:40
我从头到尾详看了三遍,才基本看懂

个人感觉移植不算难

holts2 发表于 2014-8-23 11:41:30

qinshiysb 发表于 2014-8-23 11:40
哈哈,楼主自己好好学习一下,自己就能移出来啦

这不想利用网站资源操个近路

cn_x 发表于 2014-8-23 11:43:46

介个····了解一下

qinshiysb 发表于 2014-8-23 11:45:54

holts2 发表于 2014-8-23 11:41
这不想利用网站资源操个近路

哈哈,,,,,

ludikn 发表于 2014-8-23 11:51:36

定时器调度+Adam 大神的phrotothreads

holts2 发表于 2014-8-23 11:53:06

ludikn 发表于 2014-8-23 11:51
定时器调度+Adam 大神的phrotothreads

对的就是这个,我也看过phrotothreads, 但还是国产的看起来苏服些

ludikn 发表于 2014-8-23 11:59:48

holts2 发表于 2014-8-23 11:53
对的就是这个,我也看过phrotothreads, 但还是国产的看起来苏服些

内容少了些,可以把类操作系统的通信机制加入,phrotothreads本身就有

holts2 发表于 2014-8-23 12:04:29

ludikn 发表于 2014-8-23 11:59
内容少了些,可以把类操作系统的通信机制加入,phrotothreads本身就有

不少了,加多了反而不好,这有个平衡

wangpengcheng 发表于 2014-8-23 12:29:55

有必要吗?

holts2 发表于 2014-8-23 12:31:48

wangpengcheng 发表于 2014-8-23 12:29
有必要吗?

有必要,很有必要

zndz410 发表于 2014-8-23 12:37:16

支持讨论,我是围观的,顺带飞币。

holts2 发表于 2014-8-23 12:43:33

zndz410 发表于 2014-8-23 12:37
支持讨论,我是围观的,顺带飞币。

你已经这么多了,还顺?

qwert1213131 发表于 2014-8-23 12:46:08

楼主快有机会拿ke02板子了

lyzhangxiang 发表于 2014-8-23 13:01:28

有定时器就能移植吧要求很低很低
等有板子可以试一下

holts2 发表于 2014-8-23 13:05:37

qwert1213131 发表于 2014-8-23 12:46
楼主快有机会拿ke02板子了

是的,谢谢支持

holts2 发表于 2014-8-23 13:06:23

lyzhangxiang 发表于 2014-8-23 13:01
有定时器就能移植吧要求很低很低
等有板子可以试一下

主要是和硬件相关的参数如何设

kinsno 发表于 2014-8-23 13:10:04

sunnyqd 发表于 2014-8-23 11:19
我推荐用RTX,不过好像需要商业付费的,和Keil结合的比较紧密,堆栈的占用可以实时查看。RTX占用的内存当 ...

RTX占用FLASH和RAM多大?
我手里有一个精简版的UCOS,占用FLASH和RAM大约在4K和2K左右,想继续裁剪到2K和1K就好了!

sunnyqd 发表于 2014-8-23 13:13:55

kinsno 发表于 2014-8-23 13:10
RTX占用FLASH和RAM多大?
我手里有一个精简版的UCOS,占用FLASH和RAM大约在4K和2K左右,想继续裁剪到2K和 ...


你这么精简的要求,估计有难度

浪里白条 发表于 2014-8-23 21:27:26

什么是协同式操作系统?

holts2 发表于 2014-8-23 21:37:58

浪里白条 发表于 2014-8-23 21:27
什么是协同式操作系统?

就是不可以抢占的意思

浪里白条 发表于 2014-8-23 21:39:53

holts2 发表于 2014-8-23 21:37
就是不可以抢占的意思

原来如此,学习了。

holts2 发表于 2014-8-23 21:41:42

浪里白条 发表于 2014-8-23 21:39
原来如此,学习了。

发了这个贴子,口水了一地,就没个XD帮手移植{:lol:} {:lol:}

zgxcom123 发表于 2014-8-23 21:56:31

{:titter:}攒飞币,先到手了尝试玩玩代码移植哈

holts2 发表于 2014-8-23 22:02:19

zgxcom123 发表于 2014-8-23 21:56
攒飞币,先到手了尝试玩玩代码移植哈

支持你,到时帮手搞搞移植

wxfje 发表于 2014-8-23 22:32:38

首先呢,没有板子,没法玩,其次呢,这个操作系统还没看过,改天抽时间看看先,不过看看K02的资料,移植起来应该也不难

wxfje 发表于 2014-8-23 22:35:00

holts2 发表于 2014-8-23 21:37
就是不可以抢占的意思

要是你能吧这个改正支持抢占的,那就牛了
但用UCOS时,抢占就是在每次要退出系统时钟时进行一次调度。所以呢,不知道这个改起来难度有多大

holts2 发表于 2014-8-23 22:49:56

wxfje 发表于 2014-8-23 22:32
首先呢,没有板子,没法玩,其次呢,这个操作系统还没看过,改天抽时间看看先,不过看看K02的资料,移植起 ...

用过UCOS的人,这个是小CASE了

holts2 发表于 2014-8-23 22:50:40

wxfje 发表于 2014-8-23 22:35
要是你能吧这个改正支持抢占的,那就牛了
但用UCOS时,抢占就是在每次要退出系统时钟时进行一次调度。所 ...

这是不可能的。

laotui 发表于 2014-8-23 22:58:30

快有板子了,到时试试。

zndz410 发表于 2014-8-23 23:37:05

holts2 发表于 2014-8-23 12:43
你已经这么多了,还顺?

目标3000还差很多哦。

dgtg 发表于 2014-8-24 00:13:08

楼主搞好了记得发上来啊!学习学习!

holts2 发表于 2014-8-24 06:52:49

zndz410 发表于 2014-8-23 23:37
目标3000还差很多哦。

差不多了

holts2 发表于 2014-8-24 06:53:25

dgtg 发表于 2014-8-24 00:13
楼主搞好了记得发上来啊!学习学习!

搞不定它啊,所以才发动群众麻

summarize 发表于 2014-8-24 08:16:54

送到嘴边的肉还想让别人帮忙先嚼碎,自己花的时间精力去弄吧,不要浮躁。

holts2 发表于 2014-8-24 08:20:01

summarize 发表于 2014-8-24 08:16
送到嘴边的肉还想让别人帮忙先嚼碎,自己花的时间精力去弄吧,不要浮躁。 ...

也没指望太多,慢慢来

takashiki 发表于 2014-8-24 08:20:30

holts2 发表于 2014-8-23 22:50
这是不可能的。

这必须是可能的。

比如:采用定时器中断调度,几乎所有的任务都是软中断,也是可以支持抢占的。
但是,但是,由于所有的任务都共用同一个中断,由于中断不断重入问题,寄存器神马的进出堆栈都由编译器保证,事实上调度比OS要慢。当然,如果你的空闲中断很多的话(事实上一般应用中还真是会有N多中断空闲),就可以将每一个任务映射到每一个单独的中断,这样效率高多了,绝对比什么uc/os、RTX之类要高。
主要思想可以参见这个:http://www.amobbs.com/thread-5509424-1-1.html

下面是一些乱弹:

另一种采用堆栈的协作式内核,看起来也很简单,而且是不用中断,可以采用setjmp保存现场,longjmp恢复现场,本质上和OS没有多大区别,同样保存N多寄存器、堆栈神马的,效率也低,编译后的代码也长(源代码很短的)。好处就是根本就无需移植,支持C语言就可以用了
范例:http://blog.chinaunix.net/uid-20359379-id-3190647.html

那个所谓的“小小调度器”本质上就是ProtoThread,再本质点就是状态机,优点和缺点都是一样的,但是他将延时部分进行了充分的改进,这点非常好。
效率上,比ProtoThread的AddrLabels要低,比switch方式要高。ROM占用上,一般来说,要比ProtoThread小。
关于移植:这个东西真的需要移植?你设定某个定时器中断,比如SysTick,每ms中断一次,中断中调用那个UpdateTimers就可以了,其他的啥也不用改动。

holts2 发表于 2014-8-24 08:31:56

takashiki 发表于 2014-8-24 08:20
这必须是可能的。

比如:采用定时器中断调度,几乎所有的任务都是软中断,也是可以支持抢占的。


透彻,终于等来了。

关于不可能,我的意思是说,改成抢占,思路变了,味道也变了,不值得做。

关于移植主要指的是和硬件相关的运行环境。

wxfje 发表于 2014-8-24 08:44:07

takashiki 发表于 2014-8-24 08:20
这必须是可能的。

比如:采用定时器中断调度,几乎所有的任务都是软中断,也是可以支持抢占的。


这些说的不错,学习学习

rootxie 发表于 2014-8-24 10:04:23

攒飞币,顶一下先

qwert1213131 发表于 2014-8-25 19:25:22

KE02的资源还算不错

bluestone2012 发表于 2014-8-25 19:46:22

米有板子如何破

浪里白条 发表于 2014-8-25 19:48:23

takashiki 发表于 2014-8-24 08:20
这必须是可能的。

比如:采用定时器中断调度,几乎所有的任务都是软中断,也是可以支持抢占的。


学习了,分析得很透彻。

RainKing 发表于 2014-8-25 20:02:56

这个几乎不用改什么东西吧,就寄存器不一样........

wshg 发表于 2014-8-25 23:05:29

飞币不够,没有板子

bluestone2012 发表于 2014-8-28 20:00:23

顶顶看,有人移植么

holts2 发表于 2014-8-28 20:10:34

bluestone2012 发表于 2014-8-28 20:00
顶顶看,有人移植么

水了这么多,K02也发了不少板子,我不相信就没有人做这个?

chjf 发表于 2014-8-29 10:48:57

支持,支持。

DiaoMao_Huang 发表于 2014-8-29 11:34:11

不会弄啊

zhongjiequan 发表于 2014-8-29 21:25:00

自己动手丰衣足食

holts2 发表于 2014-8-29 21:27:00

zhongjiequan 发表于 2014-8-29 21:25
自己动手丰衣足食

这个不难

holts2 发表于 2014-8-30 18:14:51

holts2 发表于 2014-8-29 21:27
这个不难


/*
* File:                Demo.c
* Purpose:                Main process
*
*/

#include "common.h"

#ifdef CMSIS
#include "start.h"
#endif

#include "ptask.h"

volatile unsigned char timers;


/********************************************************************/
int main (void)
{
            char ch;
      
#ifdef CMSIS// If we are conforming to CMSIS, we need to call start here
    start();
#endif
      
        printf("\n\rRunning the Demo project.\n\r");

        while(1)
        {
                ch = in_char();
                out_char(ch);
        }
}
/********************************************************************/

pcbddd 发表于 2014-8-30 18:19:43

这个不会,,K02板子还没有,有了再试

holts2 发表于 2014-8-30 18:22:16

pcbddd 发表于 2014-8-30 18:19
这个不会,,K02板子还没有,有了再试

试试,有问题 反溃回来

divineliu 发表于 2014-8-30 19:43:20

wxfje 发表于 2014-8-23 22:35
要是你能吧这个改正支持抢占的,那就牛了
但用UCOS时,抢占就是在每次要退出系统时钟时进行一次调度。所 ...

这个差别还是蛮大的,主要是堆棧的问题。

myxiaonia 发表于 2014-8-30 21:31:39

sunnyqd 发表于 2014-8-23 11:11
实用的时候,没有多大必要吧,因为RTX资源占用已经可以忍受了,没有必要再实际产品里面使用这样一个简单 ...

我正要推荐rtx呢,你已经提到了。我一看lz标题,rtx完全满足要求么,它可以配置为抢占,合作,时间片这3种形式

cn_x 发表于 2014-8-30 21:47:25

我还是先折腾下MQX吧

holts2 发表于 2014-8-30 21:49:51

cn_x 发表于 2014-8-30 21:47
我还是先折腾下MQX吧

MQX是什么?

cn_x 发表于 2014-8-30 21:53:34

holts2 发表于 2014-8-30 21:49
MQX是什么?

Freescale MQX™实时操作系统是一款功能完备的免费实时操作系统,包括MQX™内核、TCP/IP协议栈(RTCS)、嵌入式MS-DOS文件系统(MFS)、USB主机/设备协议栈等组件。MQX™多任务处理内核提供抢占式调度、快速中断响应、丰富的进程间通信和同步工具。MQX实时操作系统自带外设驱动程序。
http://www.freescale.com/zh-Hans/webapp/sps/site/homepage.jsp?code=MQX_HOME&tid=mKOvp

holts2 发表于 2014-8-30 22:01:28

cn_x 发表于 2014-8-30 21:53
Freescale MQX™实时操作系统是一款功能完备的免费实时操作系统,包括MQX™内核、TCP/IP协议栈(RTCS)、嵌 ...

这个没怎么听说,只是FSL一家在用?

cn_x 发表于 2014-8-31 06:23:33

holts2 发表于 2014-8-30 22:01
这个没怎么听说,只是FSL一家在用?

被飞思卡尔收购买断了

fengyunyu 发表于 2014-8-31 07:23:01

用protothread就可以了

sunnyqd 发表于 2014-8-31 09:02:41

myxiaonia 发表于 2014-8-30 21:31
我正要推荐rtx呢,你已经提到了。我一看lz标题,rtx完全满足要求么,它可以配置为抢占,合作,时间片这3 ...

RTX占用资源相对于楼主的应用可能还是多了点

fengyunyu 发表于 2014-8-31 10:02:49

sunnyqd 发表于 2014-8-31 09:02
RTX占用资源相对于楼主的应用可能还是多了点

其实大部分单片机项目protothread就可以了,复杂的可以考虑freertos

sunnyqd 发表于 2014-8-31 10:13:17

fengyunyu 发表于 2014-8-31 10:02
其实大部分单片机项目protothread就可以了,复杂的可以考虑freertos

RTX好处是利用了延迟中断,可以不管中断的调度

franki 发表于 2014-8-31 10:13:51

协同操作系统是什么   

没听过啊    实时性怎么样

holts2 发表于 2014-8-31 11:28:33

cn_x 发表于 2014-8-31 06:23
被飞思卡尔收购买断了

哪就不叫Free了

holts2 发表于 2014-8-31 11:29:28

fengyunyu 发表于 2014-8-31 07:23
用protothread就可以了

简单应用用这个不错
页: [1] 2
查看完整版本: 【网友讨论帖】谁来移植个协同式操作系统到K02