登录
首页 » 嵌入式系统 » 一个最简单的多任务并行系统 51例程

一个最简单的多任务并行系统 51例程

于 2023-05-03 发布 文件大小:18.86 kB
0 190
下载积分: 2 下载次数: 1

代码说明:

前言想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧.我不一定能造出玉,但我可以抛出砖.包括我在内的很多人都对51使用操作系统呈悲观态度,因为51的片上资源太少.但对于很多要求不高的系统来说,使用操作系统可以使代码变得更直观,易于维护,所以在51上仍有操作系统的生存机会.流行的uCos,Tiny51等,其实都不适合在2051这样的片子上用,占资源较多,唯有自已动手,以不变应万变,才能让51也有操作系统可用.这篇贴子的目的,是教会大家如何现场写一个OS,而不是给大家提供一个OS版本.提供的所有代码,也都是示例代码,所以不要因为它没什么功能就说LAJI之类的话.如果把功能写全了,一来估计你也不想看了,二来也失去灵活性没有价值了.下面的贴一个示例出来,可以清楚的看到,OS本身只有不到10行源代码,编译后的目标代码60字节,任务切换消耗为20个机器周期.相比之下,KEIL内嵌的TINY51目标代码为800字节,切换消耗100~700周期.唯一不足之处是,每个任务要占用掉十几字节的堆栈,所以任务数不能太多,用在128B内存的51里有点难度,但对于52来说问题不大.这套代码在36M主频的STC12C4052上实测,切换任务仅需2uS.

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 勤研电子QT2440
    勤研电子QT2440-V2开发板原理图-Diligence Electronic Research QT2440-V2 development board schematics
    2022-05-21 09:05:29下载
    积分:1
  • 基于VHDL的fpga设计课后程序
    周润景老师的《基于VHDL的fpga设计》的所有范例代码,可以直接使用
    2022-05-29 16:26:37下载
    积分:1
  • CC++编程实例 共九章,每章一个实例,让你快速学会cc++编程...
    CC++嵌入式编程实例 共九章,每章一个实例,让你快速学会cc++编程-CC++ Embedded programming examples of a total of nine chapters, each devoted to an example, lets you quickly learn to cc++ Programming
    2023-08-02 00:05:03下载
    积分:1
  • W5100 SPI变成
    资源描述代码是通过STM32通过SPI方式实现W5100网络控制器的自发自收
    2022-09-26 13:05:03下载
    积分:1
  • XILINX FPGA 串口调试程序
    应用背景KINTEX 7 FPGA 串口通讯程序 KINTEX 7 FPGA 串口通讯程序KINTEX 7 FPGA 串口通讯程序KINTEX 7 FPGA 串口通讯程序KINTEX 7 FPGA 串口通讯程序KINTEX 7 FPGA 串口通讯程序关键技术本模块的功能是验证实现和PC机进行基本的串口通信的功能。需要在PC机上安装一个串口调试工具来验证程序的功能。 程序实现了一个收发一帧10个bit(即无奇偶校验位)的串口控制器,10个bit是1位起始位,8个数据位,1个结束位。 串口的波特律由程序中定义的div_par参数决定,更改该参数可以实现相应的波特率。程序当前设定的div_par 的值 是0x104,对应的波特率是9600。用一个8倍波特率的时钟将发送或接受每一位bit的周期时间划分为8个时隙以使通 信同步. 程序的基本工作过程是,按动一个按键SW0,控制器向PC的串口发送“welcome", PC机接收后显示验证数据是否正确(串口调试工具设成按ASCII码接受方式). PC可随时向CPLD发送0-F的十六进制数据,CPLD接受后显示在7段数码管上.
    2022-01-25 23:46:06下载
    积分:1
  • 基于ATMEGA16的步进电机的驱动程序,
    基于ATMEGA16的步进电机的驱动程序,-Based on ATmega16 of stepper motor drivers,
    2022-05-15 04:57:22下载
    积分:1
  • LPC 1768 ARM Cortex M3
    应用背景宏定义#则_led_h#定义_led_h#包括“型。”#定义max_number_of_leds 8无效set_led_intensity(uint16_t强度);led_refresh_timer_init虚空(void);turn_off_all_leds虚空(void);turn_on_all_leds虚空(void);# endif // _led_h关键技术[ 11149.865325 ] ftdi_sio 2-1:1.0 FTDI USB串口转换器检测:[ 11149.865413 ] USB 2-1:检测ft2232c[ 11149.865415 ] USB端点2号2-1:[ 11149.865416 ] USB端点1 maxpacketsize 2-1:64[ 11149.865418 ] USB端点2 maxpacketsize 2-1:64[ 11149.865419 ] USB设置maxpacketsize 2-1:64[ 11149.871488 ] USB FTDI USB串口转换器2-1:现在附上ttyusb0[ 11149.871498 ] ftdi_sio 2-1:1.1 FTDI USB串口转换器检测:[ 11149.872001 ] USB 2-1:检测ft2232c[ 11149.872001 ] USB端点2号2-1:[ 11149.872001 ] USB端点1 maxpacketsize 2-1:64[ 11149.872001 ] USB端点2 maxpacketsize 2-1:64[ 11149.872001 ] USB设置maxpacketsize 2-1:64[ 11149.878268 ] USB FTDI USB串口转换器2-1:现在附上ttyusb1[ 11149.878450 ]:注册新的接口驱动程序ftdi_sio usbcore[ 11149.878452 ] ftdi_sio:V1.6.0:USB FTDI驱动串口转换器
    2023-08-11 04:25:02下载
    积分:1
  • arm lpc urat0
    arm lpc urat0-urat1通信程序-arm lpc urat0-urat1 Communication Program
    2022-08-16 13:59:11下载
    积分:1
  • 实时中的优先级反转问题
    嵌入式实时系统中的优先级反转问题-embedded real-time system of priority inversion problem
    2022-01-29 04:22:08下载
    积分:1
  • 采用等精度测频原理的频率计 要求: 设计一个用等精度测频原理的频率计。 频率测量测量范围1~9999; 其精度为 ; 用4...
    采用等精度测频原理的频率计 要求: 设计一个用等精度测频原理的频率计。 频率测量测量范围1~9999; 其精度为 ; 用4位带小数点数码管显示其频率; 并且具有超量程、欠量程提示功能。-With equal precision frequency measurement principle of the frequency of meter requirements: design of a frequency measurement with the principle of equal precision frequency counter. Frequency Measurement Measuring Range 1 ~ 9999 its accuracy with four with a decimal point LED display its frequency and has a super-range, less range prompts.
    2022-05-23 07:53:55下载
    积分:1
  • 696516资源总数
  • 106446会员总数
  • 9今日下载