目录 开山废话... 2 第一章 经典暗器... 2 · 栈... 3 · CPU寄存器... 3 第二章 两类武器... 4 · 局部变量... 4 · 全局变量... 10 第三章 风水轮流转... 10 · 怎样实现两个任务的切换... 10 · μC/OS-II的任务切换... 12 · μC/OS-II怎样实现多任务... 13 · 前后台系统与实时系统对比... 14 · 临界区... 14 第四章 作战指挥部... 16 · main.c. 16 · AppCfg.h. 16 · AppTask.C. 17 第五章 核武器一... 18 · 非结构体全局变量及参数... 18 · 结构体全局变量OS_TCB. 19 第六章 OS初始化战队一... 20 · OSInit() 20 · OS_InitRdyList() 21 · OS_InitTCBList() 22 第七章 OS任务管理战队一... 23 · OSTaskCreate() 23 · OSTaskStkInit() 24 · OS_TCBInit() 25 · OSTaskDel() 27 第八章 OS内核调度战队一... 29 · OS_Sched() 29 · OS_SchedNew() 30 · OS_TASK_SW() / OSCtxSw() 30 第九章 OS启动战队一... 34 · OSStart() 34 · OSStartHighRdy() 34 第十章 时间管理战队一... 35 · OSTimeDlyHMSM() 35 · OSTimeDly() 36 第十一章 关于Cortex-M3. 37 · CPU寄存器... 37 · 操作模式与操作级别... 37 · 中断... 39 第十二章 μC/OS-II代码特色... 40 · 巧妙的全局变量定义与声明... 40 · 适当的空间换时间... 41 第十三章 FAQ.. 43 笔记... 43 编后语... 45 开山废话 “开山废话”并不像其它多数秘籍的“前言” —— 废话居多。 它就算不是很重要,也十分有必要存在①。跳过它,可能导致你误解本宝典,甚至不能很好的“卧槽”。 【适用群体】 本书不像其它秘籍,或从操作系统原理开始讲起,或将μC/OS-II讲得透彻。 本书只适合熟悉单片机的研发/学习人员阅读②,且该类人员最好是: ·具备“C老鸟”与“汇编菜鸟”的双重身份:本文介绍了少量汇编知识,可能只有汇编菜鸟才不会反感。 ·具备“μC/OS迷”与“μC/OS初学者”的双重身份:μC/OS看的迷迷糊糊(基础不是0),来看卧槽宝典刚好。 【重要说明】 若无特殊说明,本书所研究的μC/OS-II,其运行环境为: ·版本号:V2.91(但,上册会将V2.91裁剪为一个更小的核心,只删不改③) ·编译器:μVisions V4.23(话说是Keil出的),编译优化参数设置为“Level 0”(不优化) ·硬件:Port103V(话说是微雪电子出的,基于Cortex-M3 STM32F103VE的简易开发板) 【“勘误表”④】 这里集中给出一些“懒人简写”(这些简写甚至可能会引起读者误会): ·μC/OS:μC/OS-II⑤ ·CM3:Cortex-M3 ·反汇编:C语言对应的汇编代码⑥ 【自私说明】 ·由于作者水平二般,导致本书难免有错漏,请读者用红字标出,并通知笔者修正“原著”,谢谢。 ·本书中的灰色小号字体,多是一些补充。(尽管,那些补充对个别读者来说很有用。) ------------------------------------------------------------------------------------------------------------------------------------------- ① 伟大提示:如果可能,还是请阅读“开山废话”。“欲练此功,必先自宫;若不自宫,也能成功;若想成功,不能自宫。”如果没看完整,显然郁闷。 ② 之所以说“只适合嵌入式研发/学习人员阅读”,是因为,本文研究的μC/OS-II在Cortex-M3 STM32上跑,所以,建议非专业人士,另寻武功秘籍。 另外,如果读者用过STM32,阅读本书将更容易明白所以然。毕竟,笔者假定读者具备那些基础知识,所以,跳过了一些相关的基础知识。 ③ 为让读者轻装上阵,了解μC/OS-II的核心,笔者决定裁剪μC/OS-II(只删不改)。 ④ 之所以,勘误表加了双引号,是因为,如果读者抽读本书,可能会以为本书写错了,其实不然,懒人简写而已。 ⑤ 虽然“II”实际上应为罗马数字“II”,但笔者为方便录入,写为“II”。 ⑥ 早些时候,我认为,反汇编指的应该是,机器语言转为汇编语言,而高级语言转为汇编语言,最多只能说是“返汇编”,但后来,我觉得可能是自己鸡毛。 我们很多命名并不严谨,至少可以说,和我们的“语感”作对。就像我们的化学,能调慢反应速度也叫“催化剂”,这个“催”字实在无语,催它慢点。。。 ------------------------------------------------------------------------------------------------------------------------------------------- |