shivency

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

2013年7月17日

摘要: 1、什么是任务的挂起 任务在创建后将从睡眠态转换到就绪态,就绪的任务可以通过调用函数(OSTaskSuspend),剥夺起CPU的使用权,而使其暂时中止运行,转到阻塞状态。这个过程叫做挂起任务。 image:排队排的好好的(这个情景不对- -),突然天降大手将你抓起,高高挂起【有一点不恰当,任务是可以自己挂起自己的】。2、为什么要任务挂起 一个任务如果无事可做,且优先级又高,长期占有CPU,使其他任务得不到运行而“饿死”。这时我们便需要采取“挂起”的策略;当然解决这个问题的方法不止一种,还有任务延时等策略,将会在后面学习到,这里先挖个坑。3、什么是任务的恢复 被挂起的任务不能运行,直到... 阅读全文
posted @ 2013-07-17 12:15 shivency 阅读(1908) 评论(0) 推荐(1) 编辑

2013年7月16日

摘要: via: http://blog.sina.com.cn/s/blog_5f234d4701012p64.html按:在介绍工具之前先对理论基础进行必要的回顾是很必要的。没有理论的基础,讲再多的应用都是空中楼阁。本文主要设涉及线性代数和矩阵论的基本内容。先回顾这部分理论基础,然后给出MATLAB,继而给出Python的处理。个人感觉,因为Python是面向对象的,操纵起来会更接近人的正常思维;而MATLAB大多是以函数实现的,是向对象施加的一个操作。比如,A是一个矩阵,它有一个属性attr。用Python更可能是A.attr,而用MATLAB更可能是attr(A)。一、线形代数理论基础线形代. 阅读全文
posted @ 2013-07-16 08:22 shivency 阅读(739) 评论(0) 推荐(0) 编辑

2013年7月15日

摘要: 1、任务什么时候会被删除? 一开始,任务在操作系统中是以函数代码的形式存在的,在操作系统启动的时候被加载到内存中,并未运行。并且,最开始的时候就绪表和就绪组是空的,或者说里面的内容都是0.很明显,这时候任务在内存中睡眠,处于睡眠态。如果不调用任务创建函数对任务进行操作,该任务将永远处于睡眠态直到操作系统结束运行,被清除出内存。 (好像没有正面回答这个问题……)2、任务创建过程的回顾 任务创建的过程:首先分配一个空闲的TCB给任务,然后对该TCB的各个域进行赋值,对任务的堆栈进行初始化,其中,任务的代码的地址被压入堆栈。这为以后任务的运行做了充分的准备。就绪表和就绪组做了适当的处理,根据任... 阅读全文
posted @ 2013-07-15 12:54 shivency 阅读(606) 评论(0) 推荐(0) 编辑

2013年7月14日

摘要: 今天码代码的时候遇到这个warning,查了之后才发现,自己把定时器0也定在interrupt 0上了- -特此转载。 nformation in this article applies to:C51 All VersionsSYMPTOMSWhen linking your program, the linker responds the following warning:WARNING L5: CODE SPACE MEMORY OVERLAPCAUSEThis warning is caused by one or more code segments that overlap (. 阅读全文
posted @ 2013-07-14 20:58 shivency 阅读(1429) 评论(0) 推荐(0) 编辑

2013年6月29日

摘要: 重复,我猜其实就是loop,所以这章大致讲的,其实就是循环1、1 value = [1,2,3,4]2 print value #[1, 2, 3, 4]3 4 for v in value:5 v = 2 * v6 7 print value #[1, 2, 3, 4] 所以,在循环中对值进行翻倍只会影响v所引用的那个元素,并不会改变原始列表。2、关于range()默认情况下,range()是通过不断递增1的方式来生成数字的,如range(1,101),便是指1~100这100个数;我们可以通过设置第三个参数来改变默认步长,如rang... 阅读全文
posted @ 2013-06-29 16:58 shivency 阅读(251) 评论(0) 推荐(0) 编辑

2013年6月27日

摘要: 1、一直在纠结编译器是如何找到所要导入的module的;类似于math这些已有的module可以在/Libs/site-package里导入,而自己定义的模块呢而后发现在pydev下同一源文件下的模块可以直接导入- -2、练习1) 1 import math 2 3 a = math.fabs(-4.3) #4.3 4 b = math.sin(34.5) #0.0574874781049 5 c = math.floor(-4.3) #-5.0 6 d = math.ceil(-4.3) #-4.0 7 e = math.ce... 阅读全文
posted @ 2013-06-27 18:37 shivency 阅读(300) 评论(0) 推荐(0) 编辑

2013年6月17日

摘要: 上回说到,创建操作系统空闲任务的函数OS_InitTaskIdle()中,分别有两个函数OSTaskCreate(),和OSTaskCreateExt(),负责任务的创建。这一节的主角,便是这两个函数。先上一张表只有四个函数待认识。1、OSTaskCreate()源码: 1 #if OS_TASK_CREATE_EN > 0 2 INT8U OSTaskCreate (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT8U prio) 3 { 4 OS_STK *psp; 5 INT8U err;... 阅读全文
posted @ 2013-06-17 15:10 shivency 阅读(541) 评论(0) 推荐(0) 编辑

2013年6月16日

摘要: 【 剧情简介 】一切都由一枚150吨的陨石引发。陨石砸中了男主人公亨利家对面楼的天线,幸运的是他毫发无损。但此事过后,他的世界刚好与现实世界偏离了水平91cm。很快被这个设定代入,而后在纠结,究竟是往哪里偏移的91cm,为什么是91cm?想起《逆世界》里,假如要设定一个新的世界,即是一个新的规则。倘若要制定一个新的宇宙级别的规则,那将是很麻烦的事,吃力容易不讨好。但纠结其合理性毕竟太过,我心里便想,且当做一枚150吨的陨石过后,主角被砸进了另一个次元中,而与原来他所生活的次元,偏移91cm。有一度以为这是个励志片,因为主角为了回归正常,计算陨石的落点,驱车去一个渺无人迹的失落之地。但整个色调就 阅读全文
posted @ 2013-06-16 16:39 shivency 阅读(249) 评论(0) 推荐(0) 编辑

2013年6月15日

摘要: 书的章节如此,实际上是讲bool。经过数电的洗礼,这种1和0的逻辑运算对我来说不怎么费解(估计对大部分人都一样)。简要摘几点。1、不要写奇葩的表达式1 a = 3 < 5 != True #actually a = (3 < 5) and (5 != True)2 b = 3 < 5 != False #actually b = (3 < 5) and (5 != False)3 c = (3 < 5) != True4 d = (3 < 5) != False5 6 print a #True7 print b ... 阅读全文
posted @ 2013-06-15 16:41 shivency 阅读(208) 评论(0) 推荐(0) 编辑

2013年6月14日

摘要: 额外的,在网上收录的段子,会不断补充:1、看到一段很有意思的话,来自Eagle的BLOG……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………前一篇中,讲述了在ucos2中定义了一些用于任务管理的变量: *OSTCBCur,*OSTCBFreeList,*OSTCBHighRdy,*OSTCBList,*OSTCBPrioTbl[],OSTCBTbl[]. 如果你足够细心的话可以注意到,在这些变量中唯独OSTCBTbl不是指针,而是一个纯粹的数组.也就是 阅读全文
posted @ 2013-06-14 20:13 shivency 阅读(567) 评论(0) 推荐(0) 编辑