![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RTOS
文章平均质量分 75
lbc___
这个作者很懒,什么都没留下…
展开
-
打造自己的rtos(5)
第五篇: 完善的协作式的内核 现在为上面的协作式内核添加一些OS中所必须的服务: 1 挂起和重新运行任务 2 信号量(在必要时候,可以扩展成邮箱和信息队列) 3 延时 #include #include #include unsigned char Stack[400]; register unsigned char OSRdyTbl转载 2010-01-08 18:18:00 · 504 阅读 · 0 评论 -
打造自己的rtos(6)
第六篇:时间片轮番调度法的内核 Round-Robin Sheduling 时间片轮调法是非常有趣的。本篇中的例子,建立了3个任务,任务没有优先级,在时间中断的调度下,每个任务都轮流运行相同的时间。如果在内核中没有加入其它服务,感觉上就好像是有三个大循环在同时运行。 本例只是提供了一个用时间中断进行调度的内转载 2010-01-08 18:19:00 · 433 阅读 · 0 评论 -
打造自己的rtos(7)
第七篇:占先式内核(只带延时服务) Preemptive Multitasking 当大家理解时间片轮番调度法的任务调度方式后,占先式的内核的原理,已经伸手可及了。 先想想,占先式内核是在什么地方实现任务调度的呢?对了,它在可以在任务中进行调度,这个在协作式的内核中已经做到了;同时,它也转载 2010-01-08 18:22:00 · 393 阅读 · 0 评论 -
打造自己的rtos(2)
-------------第二篇: 人工堆栈 在单片机的指令集中,一类指令是专门与堆栈和PC指针打道的,它们是 rcall 相对调用子程序指令 icall 间接调用子程序指令 ret 子程序返回指令 reti 中断返回指令 对于ret和reti,它们都可以将堆栈栈顶的两个字节被弹出来送入程序计转载 2010-01-08 18:14:00 · 475 阅读 · 1 评论 -
打造自己的rtos(3)
第三篇:GCC中对寄存器的分配与使用 在很多用于AVR的RTOS中,都会有任务调度时,插入以下的语句: 入栈: __asm__ __volatile__("PUSH R0 /n/t"); __asm__ __volatile__("PUSH R1 /n/t"); ...... __asm__ __volatile转载 2010-01-08 18:16:00 · 470 阅读 · 0 评论 -
打造自己的rtos(4)
第四篇:只有延时服务的协作式的内核 Cooperative Multitasking 前后台系统,协作式内核系统,与占先式内核系统,有什么不同呢? 记得在21IC上看过这样的比喻,“你(小工)在用厕所,经理在外面排第一,老板在外面排第二。如果是前后台,不管是谁,都必须按排队的次序使用厕所;如果是协作式,那么可以等你用完厕所,老板就要比经理先进入;如果是占先式,只要有更高级的人在转载 2010-01-08 18:26:00 · 515 阅读 · 0 评论 -
打造自己的rtos(1)
从网上转转载的一片文章,原作者好像叫 黄建昌 ,觉得很有价值。 第一篇:函数的运行 在一般的单片机系统中,是以前后台的方式(大循环+中断)来处理数据和作出反应的。 例子如下: makefile的设定:运行WinAvr中的Mfile,设定如下 MCU Type: mega8转载 2010-01-08 18:13:00 · 487 阅读 · 0 评论 -
打造自己的rtos(8)
第八篇:占先式内核(完善的服务)2008-01-24 14:04第八篇:占先式内核(完善的服务) 如果将前面所提到的占先式内核和协作式内核组合在一起,很容易就可以得到一个功能较为完善的占先式内核,它的功能有: 1,挂起和恢复任务 2,任务延时 3,信号量(包括共享型和独占型) 另外,在本例中,在各个任务中加入了从串口发送任务状态的功能。转载 2010-01-08 18:23:00 · 432 阅读 · 0 评论