shivency

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年12月20日

摘要: it's this section's map.1、事件控制块(ECB)初始化OS_InitEventList事件初始化代码在操作系统初始化函数OS_Init中被调用,其函数名为OS_InitEventList,定义如下 1 static void OS_InitEventList (void) 2 { 3 #if (OS_EVENT_EN) && (OS_MAX_EVENTS > 0) 4 #if (OS_MAX_EVENTS > 1) 5 INT16U i; 6 OS_EVENT *pevent1; 7 OS_EVENT *pevent2; 8 阅读全文
posted @ 2013-12-20 14:55 shivency 阅读(377) 评论(0) 推荐(0) 编辑

摘要: 学ucos至事件管理,事件之间将会有对话,开始拿本操作系统的书辅助理论上的理解。参考《操作系统之哲学原理》,作者 邹恒明。it's the map of this section.1 进程对白进程对白就是一个进程发出某种数据信息,另外一方接受数据信息,而这些数据信息通过一片共享的存储空间进行传递。管道所占空间可以是内存,也可以是磁盘。就像两个人对白的媒介可以是空气,也可以是线缆一样。要创建一个管道,一个进程只需要调用管道创建的系统调用即可。该系统调用所做的事情就是在某种存储介质上划出一片空间,赋给其中一个进程写的权利,另一个进程读的权利即可。1.1 管道从根本上说,管道是一个线性字节数 阅读全文
posted @ 2013-12-20 10:11 shivency 阅读(326) 评论(0) 推荐(0) 编辑

2013年12月17日

摘要: 1、事件控制块(ECB)任务管理需要任务控制块(TCB),同样,若是管理事件,也需要事件控制块(ECB),其定义于ucos_ii.h中 1 #if (OS_EVENT_EN) && (OS_MAX_EVENTS > 0) 2 typedef struct os_event { 3 INT8U OSEventType; /* Type of event control block (see OS_EVENT_TYPE_xxxx) */ 4 void *OSEventPtr; /* Po... 阅读全文
posted @ 2013-12-17 20:32 shivency 阅读(435) 评论(0) 推荐(0) 编辑

摘要: 1、ucos作为实时多任务的操作系统,是事件驱动的,必然支持如信号量、消息等机制。事件主要包括信号量和互斥信号量,而事件的组合可以用事件标志组来管理。事件管理的基础和操作对象是各种事件管理的数据结构。2、上一张思维导图,作为事件管理学习的map。 阅读全文
posted @ 2013-12-17 19:20 shivency 阅读(495) 评论(0) 推荐(0) 编辑

2013年9月10日

摘要: 0、前言这节既然谈到时间管理,便需要一个度量,来衡量系统执行的时间。我们可以用时间片,也可以用现实生活中的分秒。ucos中的时间片的具体设置与硬件环境有关,这里先不进行讨论。然而在多任务情况下,每个时间片(也叫时间中断)都要执行任务的调度,这种调度称为任务级任务调度(上一节已学习了中断级任务调度)。ucos在每个时间片都要进行任务调度。调度的结果或者是返回原来的任务继续执行,或者是因为找到了就绪的更高优先级的任务,而让任务运行。这个时间片可以是10ms或其他值。如果时间太长,高优先级的就绪任务可能等待时间过长,如果时间太短,花费在操作系统调度上的时间就显得过长,系统的吞吐量就变小。有关任务级任 阅读全文
posted @ 2013-09-10 13:11 shivency 阅读(456) 评论(0) 推荐(0) 编辑

2013年9月4日

摘要: 由于在任务调度中涉及到时间片这个概念,于是转而先学习下一章,中断管理和时间管理,一共俩小节。1、前言 ucos是实时多任务操作系统,系统的实时性主要体现在对中断的响应上;除了响应时间,ucos要求对中断服务程序(ISR)运行时间不能过长。在之前分析过的任务删除函数中,因为涉及到有关全局变量的操作,函数关掉了中断;而为了避免关中断的时间太长,于是在删除任务的过程中又开了一次中断。 对于不同的硬件系统,ISR的编写时完全不同的,因为这涉及到对底层寄存器的操作,操作系统中提供的中断管理函数位于core.c中。 事实上,任务的调度大多也依靠中断。ISR在发现了有更高优先级的就绪任务就会进行任务调... 阅读全文
posted @ 2013-09-04 10:10 shivency 阅读(339) 评论(0) 推荐(0) 编辑

2013年8月27日

摘要: 《数值分析与科学计算》的第二章便是讲求解线性方程组,权当对学了一个暑假的线代的总结。1、LU分解其映射简而言之便是这样:用公式表示则是Ly = bUx = y以下以matlab介绍LU分解 1 >> A = [8 8 4; 4 2 -1; 2 2 2] 2 A = 3 4 8 8 4 5 4 2 -1 6 2 2 2 7 8 >> [L,U]= lu(A) 9 L =10 11 1.0000 0 012 0.5000 1.0000 013 ... 阅读全文
posted @ 2013-08-27 15:14 shivency 阅读(1208) 评论(0) 推荐(0) 编辑

2013年8月17日

摘要: 此为全书第一章,主matlab入门——通过学习各种插值法:反线性插值、牛顿法之类。1、diff>> diff('x^2')ans = -26 -44>> diff(x^2) ans = 2*x 书上用的是加引号那个版本的,以至于我困了好久。2、牛顿法对 f(x) = (x*exp(x))/2 - 2*x^2 进行牛顿插值解>> x = 0: 0.05: 3;>> y = 0.5*x.*exp(x) - 2*x.^2;>> plot(x,y);grid牛顿插值实现1 >> f =inline('(x* 阅读全文
posted @ 2013-08-17 11:17 shivency 阅读(536) 评论(0) 推荐(0) 编辑

2013年8月11日

摘要: 参考《数值分析与科学计算》一书。matlab里有大量关于插值的命令。1、介绍vander()和fliplr()两个与范德蒙有关的函数>> x =[0 pi/2 pi 3*pi/2];v =vander(x)v = 0 0 0 1.0000 3.8758 2.4674 1.5708 1.0000 31.0063 9.8696 3.1416 1.0000 104.6462 22.2066 4.7124 1.0000>> v1 = fliplr(v)v1 = 1.0000 ... 阅读全文
posted @ 2013-08-11 21:27 shivency 阅读(856) 评论(0) 推荐(0) 编辑

2013年7月17日

摘要: 以前基础不扎实- -现在定义一个环境变量都挺难受1 #InstallJammer2 MY_INSTALLJAMMER_PATH=/home/shivency/tools/installjammer3 export PATH=$MY_INSTALLJAMMER_PATH:$PATH第二行那儿guide上之前有一个$,弄了好久发现是坑爹的- -测试:which installjammer/home/shivency/tools/installjammer/installjammer测试:MY_INSTALLJAMMER_PATH/installjammerbash: MY_INSTALLJAMME 阅读全文
posted @ 2013-07-17 19:00 shivency 阅读(207) 评论(0) 推荐(0) 编辑