找回密码
 新注册用户
搜索
查看: 14766|回复: 27

求助:有人知道怎么在单片机里用线程么

[复制链接]
发表于 2005-7-27 08:53:54 | 显示全部楼层 |阅读模式
在单片机里能用纯C编出类似线程的东西么
回复

使用道具 举报

发表于 2005-7-27 12:33:14 | 显示全部楼层
可以做个操作系统来模拟,不过难度挺大
我曾经见过类似的(好像是51上的,和Windows3.1差不多,不是抢占式的,就是说每个线程必须自觉的放弃CPU的使用权),但是因为硬件没有相应的机构,完全用软件模拟性能很低
回复

使用道具 举报

 楼主| 发表于 2005-8-2 09:34:06 | 显示全部楼层
谢谢,那要想使用线程就要在芯片中内置操作系统了
回复

使用道具 举报

 楼主| 发表于 2005-8-2 10:23:19 | 显示全部楼层
如何将操作系统放到芯片中呢?
回复

使用道具 举报

发表于 2005-8-2 21:41:30 | 显示全部楼层
引用 magic_mage 在 2005-8-2 10:23 AM 时的帖子:
如何将操作系统放到芯片中呢?


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

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

使用道具 举报

 楼主| 发表于 2005-8-3 08:53:57 | 显示全部楼层
太谢谢了
回复

使用道具 举报

 楼主| 发表于 2005-8-3 09:13:47 | 显示全部楼层
JUST以前把OS放到过单片机里么
如果这么使过,是哪种OS,哪种单片机呢
回复

使用道具 举报

发表于 2005-8-3 09:56:54 | 显示全部楼层
如果是自己搞的话,没必要作到整个操作系统那么麻烦,只需要写线程调度的部分就可以了。但是没必要在一般的单片机上搞多线程吧?线程调度也是要消耗不少资源的。
回复

使用道具 举报

发表于 2005-8-3 12:04:48 | 显示全部楼层
引用 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()
}
}
回复

使用道具 举报

 楼主| 发表于 2005-8-3 16:22:20 | 显示全部楼层
大家都好厉害,高深,不太明白,不过这样做是不是速度很慢,我要放在单片机里的是网络协议程序
其实使用motorola公司的MQX就能直接把程序编译成motorola芯片能识别的代码,可一套MQX十多万买不起,只能找别的办法了.而且现在这个网络协议的开发平台是QNX
有人用过MOTOROLA 68360芯片么,它支持PPS吧
回复

使用道具 举报

 楼主| 发表于 2005-8-3 16:24:26 | 显示全部楼层
再感叹一下,这里真是高手如云呀,JUST高二就接触单片机啦,什么学校这么厉害.我大二才知道什么是单片机
回复

使用道具 举报

头像被屏蔽
发表于 2005-8-3 18:23:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2005-8-3 19:15:59 | 显示全部楼层
引用 magic_mage 在 2005-8-3 04:24 PM 时的帖子:
再感叹一下,这里真是高手如云呀,JUST高二就接触单片机啦,什么学校这么厉害.我大二才知道什么是单片机


我中学是人大附中

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

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

使用道具 举报

 楼主| 发表于 2005-8-4 08:27:10 | 显示全部楼层
人大附中……厉害
4个月前才知道51现在就这么厉害了,了不起
回复

使用道具 举报

发表于 2005-8-4 13:36:59 | 显示全部楼层
引用 magic_mage 在 2005-8-4 08:27 AM 时的帖子:
人大附中……厉害
4个月前才知道51现在就这么厉害了,了不起


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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-4-29 04:40

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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