搜索
bottom↓
回复: 8

Protothreads不错,以后就用它。

[复制链接]

出0入0汤圆

发表于 2008-1-31 20:26:48 | 显示全部楼层 |阅读模式
Protothreads不错,以后就用它。

Protothreads本身只是几个宏文件,就能实现类似OS线程调度。
没有其他多余程序,可塑性强,打算在其内核基础上加上一些常用功能函数,打造自己的Protothreads。


Protothreads需要注意:
1.线程不能保存局部变量,需要保存保存的局部变量需要定义成静态变量。
2.阻塞函数只能在线程中调用,其他函数不能调用阻塞函数。
3.如果线程包含switch语句,switch语句内不能调用阻塞函数。


#include "config.h"

THR_Create(Thread1);
THR_Create(Thread2);

TMR_Create(timer1);
TMR_Create(timer2);

uint8 Thread1(Tpt *pt)
{
  PT_BEGIN(pt);
    while(1)
    {
      PORTA^=_BV(0);
      PT_TIMER_DELAY(&timer1,500);
    }
   PT_END(pt);
}

uint8 Thread2(Tpt *pt)
{
   PT_BEGIN(pt);
    while(1)
    {
      PORTA^=_BV(1);
      timer2.TimerSet(1000);
      PT_WAIT_UNTIL(pt,timer2.TimerExpired());
    }
   PT_END(pt);
}

int main()
{
  DDRA=_BV(0)|_BV(1);
  PORTA=_BV(0)|_BV(1);
  
  TCNT0 = TCNT0_INIT;
  TCCR0 =  T0_CLK_DIV256;
  TIMSK|=_BV(0);
  sei();  

  while(1)
  {
     PT(Thread1)->execute();
     PT(Thread2)->execute();  
  }
}


半成品,未完成。
点击此处下载ourdev_209975.rar(文件大小:141K)

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入70汤圆

发表于 2008-1-31 21:00:34 | 显示全部楼层
近期一个项目也要用到RTOS,不知道Protothreads占用ROM和RAM的情况如何?

出0入0汤圆

 楼主| 发表于 2008-1-31 21:21:10 | 显示全部楼层
Protothreads不用给线程分配堆栈空间,RAM使用基本上和前后台系统一样。
ROM用量也就几百个字节。

要说明的是Protothreads本身并不是OS,但具有类似OS的线程调度。

出0入0汤圆

发表于 2009-5-20 23:08:14 | 显示全部楼层
Protothreads 推荐一个网站
Protothreads - Lightweight, Stackless Threads in C
http://www.sics.se/~adam/pt/

出0入0汤圆

发表于 2009-5-22 20:13:22 | 显示全部楼层
怎么有两个上官金虹?你们是同一个人吗?古龙复活写外传啦?

出0入0汤圆

发表于 2009-5-22 20:31:46 | 显示全部楼层
都是我。

只是换个ID而已。

出0入0汤圆

发表于 2009-5-22 20:39:28 | 显示全部楼层
感觉上官金虹攻击性更强些,
上官先生比较文雅^_^

出0入0汤圆

发表于 2009-5-22 20:53:08 | 显示全部楼层
protothreads,我试下了,按这个思路写了个程序,感觉编译后生成的代码很大,或者说应该是非常大才对.

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-23 09:35

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

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