3337|3

4

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430-简单实用的任务调度服务程序 [复制链接]

开发环境:IAR4.20.1
硬件平台:MSP430F5438
主频:16MHz

功能:实现用户任务按照时间片调度运行。
说明:任务分为背景任务(主线程)和用户任务,当定义好时间片的大小和用
      户任务的执行时刻后,随着时间指针的运行,到了运行时刻的用户任务
      便开始执行,到了其挂起时刻便停止运行。在各任务的间隙执行背景任
      务(主线程)。
原理:利用1ms中断服务程序的返回,进行任务切换。当需要切换任务时,将
      当前任务的R4~R15压入其堆栈,并保存其栈顶地址;将欲切换任务的栈
      顶地址赋给SP,然后从该任务的堆栈中单出R4~R15

*******************************************************************/

//--------------使用说明------------------------------------------
/*
不支持中断嵌套
1ms中断中执行调度,将调度代码放在中断服务程序的最后
任务初始化函数void InitFuncSch(void),放在开中断之后,进主循环之前
任务书写格式:

void name(void)
 {
   while(1)
  {
    //喂狗
  }
 }

必须是一个无限循环 每循环一次应当喂狗

定义任务按照以下步骤:
1.定义任务数量
2.定义任务堆栈大小
3.定义时间片的长度,单位ms
4.定义任务堆栈(一个数组)
5.填任务定义表FuncDef[][4],[0]表示任务堆栈大小 ,[1]表示任务堆栈首地址,
  [2]表示任务启动时间点,[3]表示任务挂起时间点
6.将任务函数名,填到任务列表中
7.如需测试任务堆栈的使用最大量,开放 EN_TestStack 定义,各任务使用堆栈的最大值
  放在数组SP_ByteMax[Num_FS]中,0~Num_FS-1 对应了 1~Num_FS任务
*/
//----------------------------------------------------------------
下载地址:
http://www.rayfile.com/files/77abcbe6-f3d4-11e0-b217-0015c55db73d/

最新回复

这个必须顶一下,很不错  详情 回复 发表于 2011-10-12 10:07
 
点赞 关注

回复
举报

4

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

板凳
 
这个必须顶一下,很不错
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

4
 

MSP430任务调度之IAR工程实例

使用IAR4.20.1做了一个工程实例:

使用的MSP430F5438,晶震XT1使用32.678Mhz,XT2使用8MHz。

工程中写了2个很简单的任务,example01,example02,主循环(背景任务)空转只喂狗了。
在20ms的时间片中,example01运行3ms,example02 运行2ms,其他时间留给了时背景任务运行。

FunSch_V01_02Example-IAR420.rar

39.2 KB, 下载次数: 16

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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