译者序
FreeRTOS是用于微控制器和小型微处理器的实时操作系统(RTOS),在MIT开源许可下免费使用,适用于嵌入式领域。FreeRTOS目前支持40多种处理器架构,在嵌入式领域中大量应用,已经成为实时操作系统的事实标准。
FreeRTOS具有以下特性。
1.值得信赖的小巧和省电内核
FreeRTOS内核具有公认的健壮性、微小的体积(程序占用低至9KB)和广泛的设备支持,还支持某些架构的无滴答省电模式。
2.加快进入市场的时间
通过借鉴现成的详细预配置演示工程,启动新工程开发时不需要从零开始。FreeRTOS在构建时强调了易用性,快速下载、编译,所以能够使产品更快地进入市场。
3.广泛的生态系统支持
FreeRTOS合作伙伴生态系统提供了广泛的选择,包括社区贡献、专业支持和集成的IDE与生产力工具。例如,ST公司针对STM32系列ARM微控制器的开发平台STM32CubeMX,已经集成了FreeRTOS内核软件包,使开发基于STM32系列微控制器+FreeRTOS的应用程序更加简便和高效。
4.长期的技术支持
FreeRTOS通过长期支持(LTS)版本确保功能的稳定性。FreeRTOS LTS库每两年就会有安全更新和关键错误修复,由亚马逊网络服务(AWS)负责维护。
由于FreeRTOS的以上特性,FreeRTOS在基于微控制器和小型微处理器的嵌入式领域得到了广泛应用。例如,在物联网领域,因为对系统功耗有严格要求,所以通常选用低功耗微控制器;同时联网功能要求实现网络协议,采用FreeRTOS+网络组件更容易实现。在我们公司基于ARM Cortex系列处理器的单板计算机和基于FPGA ZYNQ系列的信号处理板等产品中也使用了FreeRTOS。根据实际使用情况,我们认为FreeRTOS功能强大且易于使用,可以改变程序员的编程思路和模式,使应用程序更加健壮且开发效率更高。
为了使更多的设计师了解和学习FreeRTOS,并尽快在设计开发工作中应用,我们将Mastering the FreeRTOS Real Time Kernel a Hands-on Tutorial Guide一书翻译成中文。本书作者是亚马逊网络服务首席工程师、FreeRTOS创始人理查德· 巴里,所以本书具有权威性,是一本为初学者提供掌握FreeRTOS实时内核的上手教程指南。
本书英文版包括前言、第1章~第12章等,重点讨论了FreeRTOS的堆内存管理、任务管理、队列管理、软件定时器管理、中断管理、资源管理、事件组和任务通知等优秀的实时操作系统必须具备的功能和特性;为了有助于应用程序的开发和调试,本书也涉及了开发者支持和故障排除等内容,总结了提高设计开发效率的方法,介绍了多年来用户请求技术支持中排在前几位的问题及其解决方案。
本书结构清晰,知识讲解循序渐进,重点突出;对FreeRTOS内核提供的主要API函数,以表格形式详细说明其功能、参数和返回值,方便读者随时查阅;对任务的抢占式调度、任务与任务之间及任务与中断之间进行同步等重要且较抽象的概念,以时序图方式讲解执行顺序,便于读者直观理解。另外,本书的另一重要特色和优点是例程丰富,FreeRTOS内核提供的主要功能几乎都用例程进行了演示,而且例程都有完整的注释。读者完全可以借助这些例程,首先读懂,然后利用FreeRTOS在Windows操作系统里的模拟器(FreeRTOS Windows Port)亲手操作实践,加深理解,从而快速地掌握FreeRTOS实时内核。本书介绍的知识和应用程序设计思路,与其他实时操作系统是相通的,完全可以实现触类旁通,因此本书也可以作为学习其他实时操作系统的参考用书。
本书讲解的FreeRTOS内核基于V8.xx,与内核V9.xx和V10.xx相比,内核的主要功能和知识点是相同的,并且V9.xx和V10.xx是向下兼容V8.xx的。掌握了FreeRTOS内核V8.xx,再转向内核V9.xx和V10.xx,不会有任何障碍。而且,本书在讲解内核函数时,还专门提到V9.00新增的对应函数或功能。中文版会以附录形式专门介绍FreeRTOS内核的新版本、新特性及V9和V10的亮点。另外,本书英文版第3章3.11节和第10章无具体内容,我们根据官网上的相关内容做了适当补充。
本书的翻译过程也是我的学习过程,由于中英文两种语言的差异和个人理解的偏差,以及嵌入式领域对专业术语的命名没有完全统一,中文版必定存在疏漏之处和不准确的描述,恳请读者批评和指正,非常感谢!联系邮箱:viofni@163.com。
本书在翻译过程中,得到了中电科蓉威电子技术有限公司各部门领导和同事的关心与帮助,特别是总经理张伟先生和开发部经理何斌先生一直给予我热情鼓励和大力支持。另外,网友“踏雪寻梅”在中文排版方面提供了协助。在此向他们深表谢意!
我们承担的四川省科研基金项目“基于3S+C技术的多源异构数据融合与应用研究”(立项编号:2021YFG0017)借鉴和参考了FreeRTOS内核,本书的出版得到了该基金项目的资助,谨向负责该基金项目的领导和同事致谢。
黄华
中电科蓉威电子技术有限公司
2022年8月