设为首页 加入收藏

TOP

微控制器实时操作系统实践1实时系统介绍(一)
2023-07-23 13:25:37 】 浏览:84
Tags:时操作 时系统

0书籍简介

这本实践指南将为你提供最重要的功能知识,以使实时操作系统(RTOS)在微控制器(MCU)上启动和运行。如果你有兴趣学习如何通过使用实际硬件的实例来实现RTOS的应用,并讨论常见的性能与开发时间的权衡,那么你就来对地方了!我们将使用自由RTOS来实现代码!

我们将使用FreeRTOS内核实现代码,使用低成本的STM Nucleo开发板与流行的STM32 ARM MCU一起工作,并使用SEGGER调试工具调试/分析代码。 本书中使用的所有工具都是经过挑选的,因为它们对于刚刚入门的业余爱好者或专业人士来说很容易获得,同时也因为它们在现实世界的专业团队中很受欢迎。你通过阅读本书和通过实例获得的知识和经验将直接适用于专业环境中的实际开发。

本书适用对象

RTOS编程不是初学者的话题,绝对不是学习嵌入式系统的正确起点。如果你对MCU或C语言完全陌生,那么你最好从基础知识开始,在进入这个更高级的话题之前获得一些实践经验。

那么,谁能从本书中受益最多?

  • 专业程序员: 你总是在裸机上编程(没有操作系统),并希望通过学习如何使用RTOS来满足严格的定时要求、平衡并发操作和创建模块化代码来提高你的MCU编程技能。

  • 对 "弄脏自己的手 "感兴趣的学生: 你一直在学习理论知识,听讲座,并在实验室进行编码练习,但现在你正在寻找完整的指南,帮助你开始使用你可以实际触摸和互动的东西。

  • 创客们进入了更高级的主题: 你已经写了一些草图或脚本,但你正在寻找你的下一个挑战。也许你想从头开始创建一个完整的基于MCU的系统--这里的信息将帮助你走上编程的轨道。你甚至会得到一些提示,了解为你的项目选择MCU时应该注意什么。

本书的内容

本书共包括17章,分布在四个部分。如果你对某些材料已经很熟悉,就没有必要直接阅读本书。例如,如果你对基本的RTOS概念和实时系统已经很熟悉,可以跳到第4章,选择合适的MCU。以下是本书各章的简要说明:

第1章,实时系统介绍,简单介绍了什么是RTOS以及何时和为何要使用RTOS。还讨论了基于MCU的RTOS的硬件和软件替代方案。

第2章,了解RTOS任务,提供了超级循环和RTOS任务的比较,包括使用两者实现并行操作的各种方式。

第3章,任务信号和通信机制,是对更多RTOS概念的简短介绍,其中有大量的图表。 这一章和第2章 "理解RTOS任务 "一起,如果你需要的话,应该可以作为参考,快速复习一下这些概念和术语。

第4章,选择合适的MCU,帮助你了解在选择MCU时应该考虑什么。在了解了硬件和固件之间的相互依存关系之后,我们来看看为什么硬件和固件工程师在系统设计中都有参与是如此重要。

第5章 "选择IDE "介绍并讨论了各种类型的集成开发环境(IDE),包括为什么你可能决定选择一种而不是另一种(或者根本不选择)的原因。这里涵盖了关于设置STM32CubeIDE和导入示例代码的说明。

第6章,实时系统的调试工具,涵盖了调试嵌入式系统的工具,包括我们将在本书其余部分使用的调试工具--SEGGER Ozone和SEGGER SystemView可视化软件。这里介绍了如何使用Ozone和SystemView的说明。基于硬件的测试设备和一些其他有用的工具也包括在你的嵌入式系统开发工作流程中。

第7章,FreeRTOS调度器,教你使用FreeRTOS创建任务的各种方法以及如何排除启动失败的故障。你将获得对任务状态和优化性能的不同方法的理解。

第8章,保护数据和同步任务,包括使用信号的任务同步和使用互斥的数据保护,以及如何避免竞赛条件和优先级反转。还涉及到软件定时器。

第9章,任务内通信,研究了任务间传递信息的不同方式,有使用队列按值和参考传递信息的不同例子,讨论了两种方法的优点和注意事项。我们还将了解一种轻量级的任务间通信机制--直接任务通知,包括任务通知和队列的比较。

第10章,驱动程序和ISRs,深入探讨了几个详细的例子,说明如何用各种FreeRTOS基元实现高效的驱动程序,包括信号灯、队列和流缓冲器。我们还将研究FreeRTOS如何与MCU硬件(如DMA)结合使用,以提供极其有效的CPU驱动实现。这一章既可以直接使用MCU外围寄存器,也可以使用STM32 HAL代码。

第11章,跨任务共享硬件外设,教你如何创建可以在多个任务中安全使用的驱动程序,同时共享硬件资源。我们将对STM提供的USB CDC实现进行调整,使其更加友好和高效,用一个突变器和队列来包装它,以便在多个任务中安全使用。

第12章,创建良好抽象架构的技巧,涵盖了代码的可重用性、灵活性和硬件的可移植性,着眼于创建抽象,使你的工作更容易。还包括一些关于源代码组织的建议,以帮助促进重用。

第13章,用队列创建松散耦合,是本书所有概念的高潮。它包括完整的松散耦合架构的例子,用来创建适当的抽象的、端到端的应用程序。我们将使用先前开发的USB CDC虚拟通信端口以及LED抽象,使用命令队列创建松散耦合的、完全可重用的LED排序器。这个嵌入式应用可以用Python编写的跨平台用户界面从PC上控制。

第14章,选择一个RTOS API,继续我们的高层架构讨论,看一下可用于访问FreeRTOS功能的三种不同的API:本地FreeRTOS API,ARM的CMSIS-RTOS,以及POSIX。讨论的主题包括对可用功能的比较,以及为什么你会在不同的项目中选择其中一个。

第16章,多处理器和多核系统,告诉你多处理器和多核系统是如何用于各种原因的--了解它们是什么,以及如何让系统的不同部分进行通信。

第17章,故障排除提示和下一步,涵盖了系统故障排除的提示,包括如何避免堆栈溢出的提示和如何对挂起的系统进行故障排除。还包括对下一步工作的一些建议

参考资料

准备

我们已经尽一切努力使本书中的例子对广大读者来说尽可能的简单。 为了最大限度地利用本书(通过实例工作),你将需要以下硬件:

  • 一台可以上网的Windows、macOS或Linux电脑
  • 一块STM32 Nucleo-F767ZI开发板
  • 两根Micro-USB电缆
  • 跳线--20至22 AWG(约0.65毫米)实心线

由于本书的目标是为低级别的嵌入式系统编程,我们将使用C语言作为首选。假设有一些微控制器的知识,以及阅读数据手册的能力。如果你对C语言(或C++)有很好的理解,那么你应该可以轻松地阅读本书--不需要以前的RTOS知识。由于我们将在嵌入式系统中使用MCU,所以在硬件方面也会有一些偶尔的讨论,主要涉及到MCU和开发板的特性。这些主题将涵盖足够的细节,具有最低限度的硬件知识的人应该能够跟上,没有太大困难。

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇STM32H5移植zbar记录 下一篇微控制器实时操作系统实践2了解RT..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目