启动开发板介绍
本章将帮助您逐步完成在新平台上开始TouchGFX编程的板卡启动阶段。 启动板卡意味着在将TouchGFX添加进来之前,确保所有必要的板载部件和相应的驱动程序均能正常工作。
如果您已拥有一个的可以工作的带显示屏的板卡,则此阶段的许多操作将很容易。 如果您拥有的是块全新的定制板,则你需要预期此阶段可能需要花费好几天才能完成。 一个不稳定的平台上很难编写良好的应用程序,所以这项工作值得一做。 从另一方面讲,稳定可靠的平台让您更专注于应用程序的开发。
如果您就是负责板上硬件和底层软件能够按预期工作的开发人员,则本章很适合您。 如果您只关注应用程序的实际UI界面,则本章不太适合您。
在搭建开发板时,您应全面了解板的组件和外设、所有这些部件之间的连接、所用到的通信协议以及各个可用和/或所需的驱动程序代码。
📄️ 1. 创建项目
📄️ 2. CPU运行
📄️ 3. 显示屏的帧缓存位于内部RAM中
📄️ 4. 外部RAM
📄️ 5. 显示屏的帧缓存位于外部RAM中
📄️ 6. 外部可寻址闪存
📄️ 7. 块模式下的外部闪存
📄️ 8. 硬件加速器
📄️ 9. 触摸控制器
📄️ 10. 按钮
📄️ 11. 闪存下载
下一章TouchGFX AL开发将讨论如何创建允许TouchGFX在硬件和驱动程序之上运行的抽象层。
行业工具
下表列出了搭建基于STM32的电路板时的一些重要工具。
工具 | 说明 |
---|---|
STM32CubeMX | 一种易于使用的工具,用于配置MCU并生成包括内部外设的整个工程初始化源代码。 |
STM32Cube固件包 | MCU各系列的STM32Cube固件包含那些如何使用各种外设的诸多示例和各类综合应用工程。 |
供应商器件数据手册 | 外部设备,如显示屏或闪存的数据手册包含着重要信息如时序和电压,这些对 (比如通过STM32CubeMX) 正确初始化MCU以及外部设备都非常重要。 |
器件供应商的驱动程序 | 为了节省时间,您应向供应商索取外部设备/器件的驱动代码。 通常需要将供应商的驱动程序代码移植到STM32 MCU中,这至少比从头开始编写驱动程序代码更简单。 |
在板搭建阶段要完成的所有准备工作均不依赖于TouchGFX,也不应涉及任何TouchGFX代码。 相反,所做的工作和所产生的代码将为开发TouchGFX抽象层奠定坚实的基础。
其主要目标在于确保硬件和底层软件实际上按照最终应用的预期运行。
功能验证
在板搭建启动期间所产生的代码(基于一个或多个测试项目)将用于两个目的:
抽象层 | 板初始化代码是构建TouchGFX AL以及最终可运行的UI应用程序的基础 |
测试代码 | 如果最终运行情况不符合预期,则需要基于现有开发板的初始化代码编写验证程序。 在开发板搭建阶段,将会创建许多小验证程序,以确保整个开发板和每个特定组件按预期工作。 这些验证程序在整个搭建过程中很有价值,尤其在测试情况变得不确定时,可以对其重新修改并予以完善。 |
鉴于上述两个原因,系统地保存各类验证程序会非常有益。 您以后可以再次使用这些测试程序。 例如,当更复杂的应用程序意外失败时,可使用这些测试程序验证新版本硬件或查找根源。 还建议系统性地记录在开发期间完成的任何测量数据,如存储器带宽。
总体流程
由于我们无法了解您硬件的具体构造,因此以下操作指南将作为启动和准备用于运行TouchGFX开发板的一般性分步指南。
本指南的每一步都涉及您的硬件和/或软件组件的一个特定部分及其启动。 硬件的自定义组件部分的一个示例可以是触摸控制器。 总体目标是与触摸控制器进行通信,以获取有关显示屏上的任何触摸信息。 发送给触摸控制器的特定指令取决于您在硬件上使用的特定控制器,因此本指南无法提供完整的驱动程序。 为此,开发时需要将指南与触摸控制器数据手册中的信息相结合。
Note
- 每次仅执行一步
- 在继续下一步之前,请彻底验证每个步骤
- 当某部分未能按预期工作时,本指南将作为调试方法,或者返回并重新执行以前的步骤,以确保没有违背这些步骤
- 如果您遇到意外情况,请不必惊慌,毕竟板的启动搭建不是一件容易的事
指南中的每一步都将遵循以下结构:
- 动机 此部分将解释步骤,并说明为什么该步骤是准备在硬件上运行TouchGFX时的重要步骤。
- 目标 目标部分列出了此步骤的目标。 验证点列表详述了您应执行的特定测试。 这些验证点确保您的软件满足在硬件上成功运行TouchGFX的需求。
- 先决条件 我们在这里列出了执行任务所需的项目。
- 执行 此部分尽可能具体地解释了如何编写配置和使用硬件所需的软件。 由于软件在很大程度上取决于您所使用的硬件,某些步骤不可能非常准确。 在这种情况下,此部分在更高阶层面上列出了步骤,您还必须找到与您自己的硬件相关的详细信息。
各个操作步骤如下:
步骤 | 内容 |
---|---|
创建项目 | 在STM32CubeMX上创建一个空项目 |
CPU运行 | 确保MCU以所需速度运行 |
显示屏的帧缓存位于内部RAM中 | 在内部RAM中分配帧缓冲并将其内容传输到显示屏 |
外部RAM | 使能外部RAM |
显示屏的帧缓存位于外部RAM中 | 将帧缓冲移至外部RAM,并将其传输到显示屏 |
外部可寻址闪存 | 使能外部存储映射闪存 |
外部块模式闪存 | 使能外部块模式闪存 |
硬件加速器 | 使能Chrom-ART图形加速器 |
触摸控制器 | 设置与触摸控制器的通信 |
按钮 | 配置对按钮的访问 |
闪存装载软件 | 开发一种方法将数据写入外部闪存 |