如何学习本书本书系统讲解FreeRTOS,共分为两个部分。第一部分重点讲解FreeRTOS的原理实现,从0开始,不断迭代,教你把FreeRTOS的内核写出来,让你彻底学会任务是如何定义的、系统是如何调度的(包括底层的汇编代码讲解)、多优先级是如何实现的等操作系统最深层次的知识。当你拿到本书开始学习的时候,你一定会惊讶,原来RTOS(Real Time Operating System,实时操作系统)的学习并没有那么复杂,反而是那么有趣,原来自己也可以写RTOS,成就感瞬间爆棚。当彻底掌握第一部分的知识之后,再学习其他RTOS,可以说十分轻松。纵观现在市面上流行的几种RTOS,它们的内核实现差异不大,只需要深入研究其中一种即可,没有必要对每一种RTOS都深入地研究源码。但如果时间允许,看一看也并无坏处。第二部分重点讲解FreeRTOS的移植、内核中每个组件的应用,比起第一部分,这部分内容掌握起来应该比较容易。全书内容循序渐进,不断迭代,尤其在第一部分,前一章多是后一章的基础,建议从头开始阅读,不要进行跳跃式阅读。在学习时务必做到两点:一是不能一味地看书,要把代码和书本结合起来学习,一边看书,一边调试代码。如何调试代码呢?即单步执行每一条程序,看程序的执行流程和执行的效果与自己所想的是否一致。二是在每学完一章之后,必须将配套的例程重写一遍(切记不要复制,哪怕是一个分号。但可以照书录入),做到举一反三,确保真正理解。在自己写的时候肯定会错漏百出,要认真纠错,好好调试,这是你提高编程能力的最好机会。记住,编写程序不是一气呵成的,而是要一步一步地调试。本书的编写风格本书第一部分以FreeRTOS V9.0.0官方源码为蓝本,抽丝剥茧,不断迭代,教你如何从0开始把FreeRTOS内核写出来。书中涉及的数据类型、变量名称、函数名称、文件名称、文件存放的位置都完全按照FreeRTOS官方的方式来实现。学完这本书之后,你可以无缝地切换到原版的FreeRTOS中使用。要注意的是,在实现的过程中,某些函数中会去掉一些形参和冗余的代码,只保留核心的功能,但这并不会影响学习。本书第二部分主要介绍FreeRTOS的移植和内核组件的使用,不会再去深入讲解源码,而是着重讲解如何应用,如果对第一部分不感兴趣,可以跳过第一部分,直接进入第二部分的学习。本书还有姊妹篇—《RT-Thread内核实现与应用开发实战指南:基于STM32》,两本书的编写风格、内容框架和章节命名与排序基本一致,语言阐述类似,且涉及RTOS抽象层的理论部分也相同,不同之处在于RTOS的实现原理、内核源码的讲解和上层API的使用,这些内容才是重点部分,是读者学习的核心。例如,虽然两本书的第一部分的章节名称基本类似,但内容不同,因为针对的RTOS不一样。其中,关于新建FreeRTOS工程和裸机系统与多任务(线程)系统的描述属于RTOS抽象层的理论部分,不具体针对某个RTOS,所以基本一样。第二部分中,对于什么是任务(线程)、阻塞延时和信号量的应用等RTOS抽象层的理论讲解也基本类似,但是具体涉及这两个RTOS的原理实现和代码讲解时则完全不同。如果读者已经学习了其中一本书,再学习另外一本的话,那么涉及RTOS抽象层的理论部分可跳过,只需要把精力放在RTOS内核的实现和源码API的应用方面。因为现有的RTOS在理论层基本都是相通的,但在具体的代码实现上各有特点,所以可以用这两本书进行互补学习,掌握了其中一本书的知识,再学习另外一本书定会得心应手,事半功倍。本书的参考资料及配套硬件关于本书的参考资料和配套硬件的信息,请参考本书附录部分。本书的技术论坛如果在学习过程中遇到问题,可以到野火电子论坛www.firebbs.cn发帖交流,开源共享,共同进步。鉴于作者水平有限,书中难免有错漏之处,热心的读者也可把勘误发送到论坛上以便改进。祝你学习愉快,FreeRTOS的世界,野火与你同行。