标题: 求助:有人知道怎么在单片机里用线程么
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-7-27 08:53  资料  短消息  加为好友 
求助:有人知道怎么在单片机里用线程么

在单片机里能用纯C编出类似线程的东西么

顶部
[广告] SETI@home 优化程序,推荐使用!
JUST
版主
Rank: 6Rank: 6



UID 1265
精华 0
积分 1726
帖子 1379
阅读权限 100
注册 2004-5-4
来自 北京
发表于 2005-7-27 12:33  资料  短消息  加为好友 
可以做个操作系统来模拟,不过难度挺大
我曾经见过类似的(好像是51上的,和Windows3.1差不多,不是抢占式的,就是说每个线程必须自觉的放弃CPU的使用权),但是因为硬件没有相应的机构,完全用软件模拟性能很低








中国分布式计算项目Pi Segment(已结束)
www.pisegment.net
顶部
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-8-2 09:34  资料  短消息  加为好友 
谢谢,那要想使用线程就要在芯片中内置操作系统了

顶部
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-8-2 10:23  资料  短消息  加为好友 
如何将操作系统放到芯片中呢?

顶部
JUST
版主
Rank: 6Rank: 6



UID 1265
精华 0
积分 1726
帖子 1379
阅读权限 100
注册 2004-5-4
来自 北京
发表于 2005-8-2 21:41  资料  短消息  加为好友 


QUOTE:
引用 magic_mage 在 2005-8-2 10:23 AM 时的帖子:
如何将操作系统放到芯片中呢?

操作系统实际上也是一段程序,所以像普通程序一样用ROM写进去就行

如果是专用的操作系统,甚至可以把它作为应用程序的一个库,设计比较简单








中国分布式计算项目Pi Segment(已结束)
www.pisegment.net
顶部
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-8-3 08:53  资料  短消息  加为好友 
太谢谢了

顶部
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-8-3 09:13  资料  短消息  加为好友 
JUST以前把OS放到过单片机里么
如果这么使过,是哪种OS,哪种单片机呢

顶部
池龙
论坛知事
Rank: 3Rank: 3



UID 3947
精华 0
积分 423
帖子 403
阅读权限 10
注册 2005-2-15
来自 江苏南京
发表于 2005-8-3 09:56  资料  主页 短消息  加为好友  QQ ICQ 状态
如果是自己搞的话,没必要作到整个操作系统那么麻烦,只需要写线程调度的部分就可以了。但是没必要在一般的单片机上搞多线程吧?线程调度也是要消耗不少资源的。





不要把否定一切当作是有思想的证明。不要把粗鲁当作是豪爽的证明。不要把任性当作是个性的证明。
顶部
JUST
版主
Rank: 6Rank: 6



UID 1265
精华 0
积分 1726
帖子 1379
阅读权限 100
注册 2004-5-4
来自 北京
发表于 2005-8-3 12:04  资料  短消息  加为好友 


QUOTE:
引用 magic_mage 在 2005-8-3 09:13 AM 时的帖子:
JUST以前把OS放到过单片机里么
如果这么使过,是哪种OS,哪种单片机呢

我记得高二的时候参加一个机器人比赛,它就运行在一个操作系统上,应该是自己开发的
单片机被Remark了,主频1MHz,当时对型号不太懂,现在回想一下应该就是51

另外的确像池龙所说,只用作线程调度部分就行。如果线程不多,也可以这样:

p1
{
   //goto Ln
l1:
   //do sth
   //save n=2 return
l2:
   //do sth
   //save n=3 return
.....
   //set p1 finish flag
}

p2
{
   //goto Lm
l1:
   //do sth
   //save m=2 return
l2:
   //do sth
   //save m=3 return
.....
   //set p2 finish flag
}

main
{
while(p1 and p2 not finish)
{
p1()
p2()
}
}








中国分布式计算项目Pi Segment(已结束)
www.pisegment.net
顶部
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-8-3 16:22  资料  短消息  加为好友 
大家都好厉害,高深,不太明白,不过这样做是不是速度很慢,我要放在单片机里的是网络协议程序
其实使用motorola公司的MQX就能直接把程序编译成motorola芯片能识别的代码,可一套MQX十多万买不起,只能找别的办法了.而且现在这个网络协议的开发平台是QNX
有人用过MOTOROLA 68360芯片么,它支持PPS吧

顶部
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-8-3 16:24  资料  短消息  加为好友 
再感叹一下,这里真是高手如云呀,JUST高二就接触单片机啦,什么学校这么厉害.我大二才知道什么是单片机

顶部
tfzjn
资深顾问
Rank: 5Rank: 5
★★建卒★★


UID 3634
精华 0
积分 1090
帖子 733
阅读权限 10
注册 2005-1-12
来自 重庆建院(四川遂宁人
发表于 2005-8-3 18:23  资料  短消息  加为好友  QQ
我大二了,,还不知道~~~~





想在建筑的天空留下自己的闪光.....建筑精灵.....

顶部
JUST
版主
Rank: 6Rank: 6



UID 1265
精华 0
积分 1726
帖子 1379
阅读权限 100
注册 2004-5-4
来自 北京
发表于 2005-8-3 19:15  资料  短消息  加为好友 


QUOTE:
引用 magic_mage 在 2005-8-3 04:24 PM 时的帖子:
再感叹一下,这里真是高手如云呀,JUST高二就接触单片机啦,什么学校这么厉害.我大二才知道什么是单片机

我中学是人大附中

其实当时只是用到而已。我4个月前才知道什么叫51
我本身对硬件了解并不多,尤其是缺乏实践

你要是在北京就好办了,我们出版社全是单片机的书








中国分布式计算项目Pi Segment(已结束)
www.pisegment.net
顶部
magic_mage
新手上路
Rank: 1



UID 5404
精华 0
积分 22
帖子 22
阅读权限 10
注册 2005-5-19
发表于 2005-8-4 08:27  资料  短消息  加为好友 
人大附中……厉害
4个月前才知道51现在就这么厉害了,了不起

顶部
JUST
版主
Rank: 6Rank: 6



UID 1265
精华 0
积分 1726
帖子 1379
阅读权限 100
注册 2004-5-4
来自 北京
发表于 2005-8-4 13:36  资料  短消息  加为好友 


QUOTE:
引用 magic_mage 在 2005-8-4 08:27 AM 时的帖子:
人大附中……厉害
4个月前才知道51现在就这么厉害了,了不起

其实实现多线程属于软件的范畴,相当于操作系统那个层次

对了,你用的单片机可以设置中断吗?比如200ms产生一次中断








中国分布式计算项目Pi Segment(已结束)
www.pisegment.net
顶部
 



当前时区 GMT+8, 现在时间是 2008-7-7 07:09
沪ICP备05042587号

本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 中国分布式计算总站 - Archiver - WAP