5018|8

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助linux下任务调度的问题 [复制链接]

之前在2440板子上裸机实现了这样的功能:
通过SPI、外部中断及几个普通的I/O口,接上一个无线通信模块(CC2420芯片,实现802.15.4协议),使两块板子之间能够进行802.15.4数据包交互。
代码中设定了一个定时器中断(us级),每隔一定的时间就会触发中断,在这个定时器中断服务程序中完成复杂的任务调度功能(自己定义了任务优先级、任务队列等等)。当收到数据包时会触发外部中断对数据包进行处理。
现在在板子上加载了LINUX操作系统,想把之前实现的这些功能在LINUX下实现,应该怎么来做?是否需要做一个驱动?之前通过定时器中断实现的任务调度是否可以交给操作系统来调度,如果可以这一步怎么来做?
刚刚接触LINUX,高手们帮忙看看,提供一些思路?能否提供一些相关的文章、例程?
我现在有两个思路,但感觉都不是很理想;一、把所有的功能做成一个模块,加载模块实现功能,但是感觉这么做的话,给板子加载操作系统没有什么特别大的意义。 二、把原先靠定时器中断管理的任务拆分成很多小任务然后交给Linux来管理,这样做可不可行,又怎么来做?
帮忙看一下,谢谢大家!

最新回复

扫了下以太网的代码,没看懂呵呵。 想看下源码里对这样一个具体的协议是怎样实现的,怎样来调度实现协议的任务,不知道我想了解的这些东西在哪个目录下?  详情 回复 发表于 2009-5-9 20:48
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
一般将设备相关、协议相关部分编译成模块放到核心,使用的程序放在应用层...
既然已经有外部中断,那是用定时器中断来调度有什么特别的意义?
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
外部中断是负责处理接收到的数据包的。定时器中断是用来管理实现802.15.4协议的各个任务的。
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

4
 
呵呵,30多个任务啊,貌似任务切分的有点儿问题 ...
基本上所有的操作系统的 tcp/ip 协议栈处理都在核心,
你那个 802.15 的协议处理最好也作为核心模块加载
运行在核心空间吧...
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(初级)

5
 
恩。问一下,怎样才查到tcp/ip之类的协议在linux下是怎么实现的?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
那 802.15.4 有几个任务嘛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
查了一下代码,一共30几个任务需要加到任务队列中,这30几个任务现在在我们的代码中就是通过定时器中断来管理的,感觉太乱了,所以想着要交给操作系统来管理。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
http://www.kernel.org 上有源码,比如最新的 linux-2.6.29.tar.bz2,解压后

linux-2.6.29/net/ipv4 和 ipv6 下就是
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 
扫了下以太网的代码,没看懂呵呵。
想看下源码里对这样一个具体的协议是怎样实现的,怎样来调度实现协议的任务,不知道我想了解的这些东西在哪个目录下?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表