51 单片机 操作系统,很小的操作系统,学习用
贴一个超简版的(上传有更全面的):
#include <reg51.h>
#define MAX_TASKS 2 //任务槽个数.必须和实际任务数一至
#define MAX_TASK_DEP 12 //最大栈深.最低不得少于2个,保守值为12.
unsigned char idata task_stack[MAX_TASKS][MAX_TASK_DEP];//任务堆栈.
unsigned char task_id; //当前活动任务号
//任务切换函数(任务调度器)
void task_switch(){
task_sp[task_id] = SP;
if(++task_id == MAX_TASKS)
task_id = 0;
SP = task_sp[task_id];
}
//任务装入函数.将指定的函数(参数1)装入指定(参数2)的任务槽中.如果该槽中原来就有任务,则原任务丢失,但系统本身不会发生错误.
void task_load(unsigned int fn, unsigned char tid){
task_sp[tid] = task_stack[tid] + 1;
task_stack[tid][0] = (unsigned int)fn & 0xff;
task_stack[tid][1] = (unsigned int)fn >> 8;
}
//从指定的任务开始运行任务调度.调用该宏后,将永不返回.
#define os_start(tid) {task_id = tid,SP = task_sp[tid];return;}
/*============================以下为测试代码============================*/
void task1(){
static unsigned char i;
while(1){
i++;
task_switch();//编译后在这里打上断点
}
}
void task2(){
static unsigned char j;
while(1){
j+=2;
task_switch();//编译后在这里打上断点
}
}
void main(){
//这里装载了两个任务,因此在定义MAX_TASKS时也必须定义为2
task_load(task1, 0);//将task1函数装入0号槽
task_load(task2, 1);//将task2函数装入1号槽
os_start(0);
}
分享到:
相关推荐
《51单片机操作系统详解》 51单片机,作为微控制器领域的经典之作,以其结构简单、应用广泛而深受工程师喜爱。本压缩包文件“51单片机操作系统.rar”显然聚焦于51单片机上的操作系统设计与实现,这对于我们深入理解...
标题中的"圈圈写的一个51单片机操作系统"指的是一个专门为51系列单片机设计的操作系统。51单片机是微控制器领域中非常经典的一种,由Intel公司开发,广泛应用于各种嵌入式系统中。这个操作系统可能是由个人或团队名...
标题中的“自己编的51单片机操作系统,比keil强”暗示了这是一个自研的、针对51系列单片机的操作系统,且作者认为它在某些方面优于KEIL,一个广泛使用的51单片机开发环境。 KEIL包含了μVision IDE、编译器、调试器...
51单片机操作系统开发中的问题与技巧 & 构造一个51单片机的实时操作系统
51单片机操作系统的实现源代码.pdf 本文档主要讲述了基于51单片机的操作系统的设计和实现,讨论了在开发过程中需要注意的问题和技巧。首先,文档介绍了51单片机的特点和应用范围,然后讨论了基于51单片机的操作系统...
《51单片机操作系统-RTX51 Tiny详解及应用》 51单片机是微控制器领域中广泛使用的一类芯片,以其结构简单、性价比高、资源丰富等特点深受工程师喜爱。在51单片机的应用开发中,为了实现更高效、更复杂的任务管理,...
### 开发51单片机操作系统时应注意的问题 #### 一、引言 随着嵌入式系统的广泛应用,针对特定硬件平台的操作系统开发变得尤为重要。51单片机作为一款经典的微控制器,在工业控制、家用电器等领域有着广泛的应用。...
根据提供的文件信息,以下是关于51单片机操作系统实现及源代码的知识点总结: 1. 51单片机概述: 51单片机是一种经典的微控制器系列,最初由英特尔公司在1980年代推出。这类单片机基于Intel 8051微控制器架构,广泛...
《51单片机上的微型操作系统详解》 51单片机是微控制器领域中一款经典且广泛应用的芯片,以其简单、经济、易用的特点深受工程师喜爱。在电子设计和嵌入式系统开发中,51单片机常被作为教学和实践的基础平台。本文将...
《rxt51单片机操作系统使用指南》 在嵌入式系统开发中,单片机操作系统(MCU OS)是实现复杂任务管理和资源优化的关键。RTX51是一款广泛应用于8位和16位单片机的实时操作系统,特别适合于资源有限但需要高效执行多...
在51单片机操作系统开发过程中,会遇到各种挑战,同时也蕴含着许多实用的技巧。51单片机因其简单易用、性价比高而广泛应用于嵌入式领域,但其有限的内存和处理能力对操作系统的开发提出了特殊要求。本文将深入探讨51...
这是自己写的51单片机操作系统演示程序,调度算法采用的是先进先出的算法,可以在此基础上修改代码,采用优先级调度算法。程序中有4个任务,负责在串口打印A、B、C、D。头文件#include请在宏晶官方网站下载,或者将...
一个简单的51单片机操作系统可能包含以下关键组件: 1. **内核**:内核是操作系统的最核心部分,负责任务调度、中断处理、内存管理等。在51单片机上,内核可能包括了任务切换机制,使得多个任务可以并发执行,尽管...
通过这个过程,初学者不仅可以学习到uCOS的使用,还能深入了解单片机操作系统的基本原理和移植技巧。提供的"精简内核20110214"文件很可能是移植后的源代码,供学习者参考和实践。这个实例为嵌入式开发的学习者提供了...
如果开发一套基于51系列单片机的操作系统,那么用户只需要编写各个任务的程序,不必同时将所有任务运行的各种情况记在心中,不但大大减少了程序编写的工作量,而且减少了出错的可能性。1 开发平台的选择和论证开发...
多年来我们一直想找一个合适的实时操作系统,作为自己的开发基础。根据开发需求,整合一些常用的嵌入式构件,以节约开发时间,尽最大可能地减少开发工作量;另外,要求这个实时操作系统能非常容易地嵌入到小容量的...
本资料包“一个跑在51单片机上的简单操作系统.zip”提供了关于51单片机操作系统的基础知识,旨在帮助学习者理解和掌握如何在51单片机上实现简单的操作系统。 首先,我们来理解一下51单片机的基本架构。51系列单片机...
51单片机多任务操作系统的设计和实现 在嵌入式系统中,操作系统扮演着至关重要的角色,能够使得系统变得更加灵活、可靠和高效。然而,对于资源有限的 51 单片机来说,实现一个操作系统是非常具有挑战性的。鉴于此,...