摘要: 1 LES BX, DWORD PTR DS:_OSTCBCur ;OSTCBCur->OSTCBStkPtr = SS:SP!!! 2 MOV ES:[BX+2], SS ;将当前SS(栈的基地址)寄存器值存放至当前任务控制块的2,3内存单元 3 MOV ES:[BX+0], SP ;将当前SP( 阅读全文
posted @ 2015-02-14 15:31 cposture 阅读(1741) 评论(1) 推荐(0)
摘要: uCOS2唯一值得学习的一个地方就是关于进程调度的O(1)算法: 最简单也是最愚蠢的方法是维护一个链表List。 这种方法的问题是:当一个Thread就绪时,如果根据其优先级插入List,则算法的时间复杂度为O(n)。 Linux采用了Bitmap,uCOS2也不例外。当然uCOS2的处理更简单,因 阅读全文
posted @ 2015-02-14 14:39 cposture 阅读(1129) 评论(0) 推荐(0)
摘要: 人们根据需要把一些功能模块(蓝牙、GPRS、TCP/IP通信模块等等)与MCU进行有机的结合,制造出集成度更高的系统级的芯片。 SoC是System on Chip的缩写,直译是“芯片级系统”,通常简称“片上系统”。因为涉及到“Chip”,SoC身上也会体现出“集成电路”与“芯片”之间的联系和区别, 阅读全文
posted @ 2015-02-14 14:16 cposture 阅读(854) 评论(0) 推荐(0)
摘要: 其实很简单: 临界段就是不可中断的程序段,比如从UART中读取当前传递回来的值,如果有UART中断,此时这个值又会改变。同样临界段就是保护这类全局变量,如在读取时间节拍时,不应该被时钟更新时钟节拍标志。 实现方法:就是关中断而已。 关中断有3种情况: 1:虽关了中断还是可以有中断产生,那就是临界段本 阅读全文
posted @ 2015-02-14 14:09 cposture 阅读(1624) 评论(0) 推荐(0)
摘要: 今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS、IP寄存器没有出栈和入栈指令,所以只能引发一次中断,自动将CS、IP寄存器压入堆栈,再利用中断返回,将新任务的任务断点指针弹出到CPU的CS 阅读全文
posted @ 2015-02-14 13:56 cposture 阅读(3583) 评论(0) 推荐(0)
levels of contents