logo资料库

STM32F4 RTOS+GUI移植指南.pdf

第1页 / 共88页
第2页 / 共88页
第3页 / 共88页
第4页 / 共88页
第5页 / 共88页
第6页 / 共88页
第7页 / 共88页
第8页 / 共88页
资料共88页,剩余部分请下载后查看
第一章 RT-Thread
第二章 FreeRTOS
第三章 LittlevGL
第四章 STemWin
第五章 emXGUI+RT-Thread
第六章 AWTK
第七章 STemWin+RT-Thread
第八章 STemWin+FreeRTOS
武汉跳兔科技有限公司
武汉跳兔科技有限公司 写在前面....................................................................................................................................................2 第一章 RT-Thread..................................................................................................................................3 目录 第二章 FreeRTOS..................................................................................................................................20 第三章 LittlevGL................................................................................................................................... 29 第四章 STemWin.................................................................................................................................. 41 第五章 emXGUI+RT-Thread...............................................................................................................55 第六章 AWTK.........................................................................................................................................65 第七章 STemWin+RT-Thread............................................................................................................ 71 第八章 STemWin+FreeRTOS..............................................................................................................80
武汉跳兔科技有限公司 写在前面 本文档硬件基于野牛开发板,但是使用方法不局限与硬件,读者在学会操作 后,应该有能力移植到其他平台。 作者水平有限,如果在文档中出现错误或者不合理的地方,还望读者提出意 见和建议,作者会虚心接收大家的建议,也会积极改正自己的错误。 在移植过程中一定要学会抄,抄官方的、抄第三方的,有时候一个 DEMO 就 足以学会如何移植了。 文档在出现的名词解释,如果无特殊说明,以下特殊名词代表的含义同解释 一致 RTT、rtt、RT-Thread 统指 RT-Thread 操作系统 LittlevGL、lvgl 统指 LittlevGL 图形库 FreeRTOS 指 FreeRTOS 嵌入式操作系统 STemWin、emwin、stemwin 统指 STemWin 图形库 emXGUI、emxgui 统指 emXGUI 图形库 AWTK、awtk 统指 AWTK 图形库 野牛开发板 QQ 交流群:909796874
武汉跳兔科技有限公司 第一章 RT-Thread 在阅读以下教程的时候,请读者自行确保已经掌握了 STM32 的基础工程建 立,开发软件和编译下载。本教程使用的是 RT-Thread Nano 版本,从完整版本 中抽取 Nano 并保留 msh 功能,版本为 4.0.2 ,而且没有使用 env 进行配置而是 自行移植。对于 RT-Thread 的 shell/finish/msh 作者如果没有明显区分的话, 读者自行理解。RT-Thread 官网也有对应的文档和教程,如果您觉得作者写的不 够完善,您可以在官网获取更高质量的文档: https://www.rt-thread.orgRT-Thread API 手册 https://www.rt-thread.org/document/api/group___basic_def.html 1.1 RT-Thread 源码下载: 码云:https://gitee.com/rtthread/rt-thread GitHub:https://github.com/RT-Thread/rt-thread 下载后的文件如下图所示,本例程使用的版本是 4.0.2 文件解析
目录名 bsp 武汉跳兔科技有限公司 描述 板级支持包,包含芯片的底层驱动 components 包含各种组件 documentation 文档 examples include libcpu src tools 其他 组件或内核的应用实例 内核头文件 内核与 CPU 的支持文件 内核源码源文件 包含 env 在内的各种工具 Git 支持文件或者说明文档等 1.2 目标板的最小系统工程建立 最小系统工程我们直接使用野牛开发板配套的 LTDC 示例工程即可。 复制 RT-Thread 的源码到工程文件夹里面并将整个工程文件夹和工程名修 改为 RT-Thread 为了减小工程所占用的硬盘空间,我们删掉 RT-Thread 源码 bsp 中与我们板
武汉跳兔科技有限公司 子无关的文件,这里只保留 stm32f429-disco 文件夹,文件夹里面有 board.c 和 config 是我们需要抄的文件,一般用到什么平台就抄对应平台的 bsp。 如果读者是 ST 官方的开发板或是正点原子、野火、安富莱的开发板, RT-Thread 的 bsp 里面会直接有对应的 bsp,可以直接抄或者拿来用即可。这也 是 RT-Thread 优秀本地化支持,这些 bsp 在 FreeRTOS/UCOS 里面是很难见到的。 不过在官方的 bsp 里面是没有针对我们板子的 bsp 的,所以需要自己抄一下同类 型芯片的移植文件。
武汉跳兔科技有限公司 复制 rtconfig.h 到用户 User 目录下 复制 rt-thread\bsp\stm32f429-disco\rtconfig.h 到 User 文件夹,顾名思 义这个文件是 RT-Thread 的配置文件,可以对内核、组件等进行配置和裁剪,我 们后面需要针对我们的工程进行修改和配置。因为每个芯片每个板子都有不同的 config 文件,所以我们将其复制到 User 目录。 复制 board.c 和 board.h 到 User 目录下 复制 rt-thread\bsp\stm32f429-disco\drivers\board.c 和同目录下的 board.h 到 User 目录下,这个文件主要是 RT-Thread 的目标板支持文件,不同 的芯片或目标板有不同的 board 文件。我们后面针对野牛开发板进行对应的修 改。 复制串口驱动文件到 User 目录下 复制 rt-thread\bsp\stm32f429-disco\drivers\usart.c 和同目录下的 usart.h 到 User 目录下,为了区分用户自己板子的 usrt 文件,我们将其修改为 drv_usart.c 和 drv_usart.h,这两个文件是 RT-Thread 的 msh 组件的底层串口 驱动,由于我们使用了跟我们芯片平台差别不大的 bsp,我们直接复制使用即可。
武汉跳兔科技有限公司 1.3 添加 RT-Thread 到工程中 1.3.1 添加源文件到工程 打开 KEIL 工程,新建 RT-Thread/Kernel 文件夹、RT-Thread/Shell 文件夹、 RT-Thread/DeviceDrivers 文件夹和 Drivers 文件夹 将 rt-thread\src 下的所有文件添加到 RT-Thread/Kernel,将 rt-thread\libcpu\arm\cortex-m4\cpuport.c 和同目录下的 context_rvds.S 添 加到 RT-Thread/Kernel 文件夹下,这里添加了内核和 cpu 平台适配文件,关于 libcpu 下面的文件夹,因为我们使用的是 STM32F4,所以添加 cortex-m4 即可, 如果使用 cm3 或者 risc-v 的话添加对应的文件即可。context_rvds.S 是针对 KEIL 的,如果是 IAR 或者 GCC 的话选择对应的.S 文件。 将 rt-thread\components\finsh\cmd.c 和同目录下的 msh.c msh_cmd.c msh_file.c shell.c symbol.c 添加到 RT-Thread/Shell 文件夹下,这里主要是 添加了 msh 命令行组件的一些文件。 将 rt-thread\components\drivers\serial\serial.c 和 rt-thread\components\drivers\src\completion.c 添加到 RT-Thread/DeviceDrivers 文件夹下面,这里存放的是 RT-Thread 的组件的驱动 文件 将 User/drv_usrt.c 添加到 Drivers 文件夹下面,这里是 RT-Thread 需要调 用的串口硬件底层驱动文件。 将 User/board.c 和 rtconfig.h 添加到 User 文件夹下
分享到:
收藏