shivency

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

2013年6月14日

摘要: 今天涂涂画画的时候发现我没有把一些重要的数据结构先做个说明,挺伤的。等这章写完后一定补上。好了,还是先上流程图。嗯,可以看到OSInit()里调用了很多函数,这里只分析打绿色背景的函数;至于其他的,像 OS_InitEventList(), OS_FlagInit(), OS_MemInit(), OS_QInit(),会在相关章节进行讨论。首先,我们看OSInit( )在哪里出现。 1 #include "includes.h" 2 3 OS_STK AppStartTaskStk[APP_OS_CFG_START_TASK_STK_SIZE]; 4 5 static v 阅读全文
posted @ 2013-06-14 19:47 shivency 阅读(611) 评论(0) 推荐(0) 编辑

摘要: (一)既然这的一章是讲关于任务管理,那便需要一些“ID CARD”来识别不同的任务;用术语来说,便是任务控制块,是一种struct,名为OS_TCB。这里引用 engineer一篇博客里的比喻: “任务控制块相当于一个任务的身份证,系统就是通过任务控制块来感知管理任务,没有任务控制块的任务不能被系统承认和管理。ucos把所有任务控制块链接为两条链表,并通过他们管理各个任务”(二)思维导图ps:1、⑥、⑦、⑧中定义类型有两种,INT8U和INT16U;2、在参考书上,任务堆栈,本是有这么一个定义:OS_STK TaskStk[OS_MAX_TASKS][TASK_STK_SIZE]但我的工程里找 阅读全文
posted @ 2013-06-14 18:59 shivency 阅读(737) 评论(0) 推荐(0) 编辑

2013年6月12日

摘要: 1、列表的索引很有玩头,包括负索引、切片(slice) 但试图对空列表索引会引发错误;2、使用List.split(),会自动生成字符列表1 metals= '1 2'.split()2 3 print metals #['1', '2']4 5 print metals[0] + metals[1] #123、这里说明一点,调用list方法,返回通常是None,而不想想当然的修改后的列表(除了pop之外) 1 numbers= '1 2 3 4 5 6 7'.split() #['1', '2', 阅读全文
posted @ 2013-06-12 20:45 shivency 阅读(222) 评论(0) 推荐(0) 编辑

2013年6月11日

摘要: 1、输出格式化/多个输出格式化1 x= 42 y= 12.53 4 print 'the rabbit is %d',x5 print 'the rabbit is %d years old',x6 print '%f is average',y7 print '%f * %d' %(y,x)8 print '%f * %d is %f' %(y, x, y*x)4~6行是输出格式化,7~8行为多个输出格式化下面是结果1 the rabbit is %d 42 the rabbit is %d years old 阅读全文
posted @ 2013-06-11 10:56 shivency 阅读(204) 评论(0) 推荐(0) 编辑

2013年6月10日

摘要: 我喜欢这首歌,喜欢和莎莫的500天,今天有兴致翻译了下。(一)Oh girl I don't know all the reasons why,嘿女孩,我不知道为什么(我们会分手)I found the answer lookin' in your eye,但我想我在你的眼里找到了答案I go out walking all day long,我出门闲逛了整整一天Take away this lonely man soon he will be gone,嘿,其实我不再感到那么难受了Cause I'll tell you everything about living 阅读全文
posted @ 2013-06-10 19:00 shivency 阅读(240) 评论(0) 推荐(0) 编辑

2013年6月7日

摘要: 先上流程图A/B分别代表OS_EXIT_CRITICAL() OS_ENTER_CRITICAL()然后可能会问,最后的 OS_EXIT_CRITICAL(), 为什么会对应A1/A2呢于是,上源码,微长,分段上 1 INT8U OS_TCBInit (INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT32U stk_size, void *pext, INT16U opt) 2 { 3 OS_TCB *ptcb; 4 #if OS_CRITICAL_METHOD == 3 ... 阅读全文
posted @ 2013-06-07 19:51 shivency 阅读(566) 评论(0) 推荐(0) 编辑

摘要: (一)首先,明确学习目标第一次学,我想弄清整个系统的框架,或者说执行流程;第二次学,我想能够自己编写代码进行测试。现在的记录是属于第一次“创造”的过程。我的想法是,按书上的顺序,依次记录各个函数,以及对应的数据结构,并通过流程图或者思维导图的方式呈现出来,而尽量不是用语言线性地描述。而后可能会有一些基础的tip,会在这篇文章里统一地描述,不定时地添加。(二) 基础tip1、关于OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()我们会经常在源码里看到这俩货成双成对的出现,如果不介意我更愿意用A和B来指代 OS_ENTER_CRITICAL() ... 阅读全文
posted @ 2013-06-07 19:08 shivency 阅读(199) 评论(0) 推荐(0) 编辑

2013年6月6日

摘要: 用思维导图的方式把第二章的函数基本上都列出来了作为接下来的,提纲数据结构加上去太麻烦了,准备单节进行描述 阅读全文
posted @ 2013-06-06 20:07 shivency 阅读(189) 评论(0) 推荐(0) 编辑

摘要: 开博,记录学习ucos的过程练习的源码来自lyy学长的提供,参考的书籍主要来自卢有亮的《嵌入式实时操作系统——ucos原理与实践》如果文中有引用别的文章,会另加说明。我会尽量以思维导图或者流程图的方式来写博,尽量不用线性的记录。源码附在文章最下面。6.14 添加我写的比较天马行空,爱用图,文字的话喜欢用传送门,而且不怎么系统难免有遗漏,请不吝赐教,定虚心接受7.17 添加回过头要把函数返回的宏再分析写出。要有自己的风格,即写博客的格式,具体表示在字体颜色的标志,博客的结构。 阅读全文
posted @ 2013-06-06 13:19 shivency 阅读(117) 评论(0) 推荐(0) 编辑