STM32F429移植FreeRTOS基于STemWin实验教程

需积分: 50 5 下载量 155 浏览量 更新于2024-10-28 收藏 38.93MB ZIP 举报
资源摘要信息:"本文档提供关于如何在STM32F429阿波罗开发板上,基于EMWIN实验2 STemWin进行FreeRTOS操作系统的移植过程的详细指导。" 知识点一:EMWIN EMWIN(Embedded Windows)是一种嵌入式图形系统,由微软开发,用于在嵌入式设备上实现图形用户界面(GUI)。它支持多种微处理器和显示技术,常用于需要图形显示的应用中,比如工业控制、车载信息娱乐系统等。EMWIN支持多种操作系统平台,包括裸机和实时操作系统(RTOS)。 知识点二:STemWin STemWin是Segger公司为基于ARM Cortex-M系列的STM32微控制器提供的图形软件包。它是嵌入式系统中的一个小巧、高效且可定制的图形库,适用于多种显示需求。STemWin包括了字体、图形显示、窗口管理和事件处理等模块,允许开发者创建复杂的用户界面。 知识点三:STM32F429阿波罗开发板 STM32F429阿波罗开发板是正点原子(正点原子是中国一家专门设计和销售各类嵌入式开发板和开发工具的公司)设计的一款基于STM32F429系列微控制器的开发板。STM32F429系列是ST公司的一款高性能Cortex-M4微控制器,具有浮点运算能力,丰富的外设接口和高性能图形处理能力,非常适合需要复杂用户界面的应用。 知识点四:FreeRTOS FreeRTOS是一个可裁剪的、可重入的、跨平台的实时操作系统(RTOS),广泛用于资源受限的嵌入式系统中。它包含了任务调度、同步、计时器和消息队列等多种功能。FreeRTOS具有开源、小巧且高效的特点,支持多种编译器和处理器架构,是开发具有多任务、实时要求的嵌入式应用的理想选择。 知识点五:移植过程 移植RTOS到特定硬件平台上是嵌入式系统开发中的一个重要步骤。具体到本文档,即是在STM32F429阿波罗开发板上,基于STemWin的EMWIN实验2的成果,将FreeRTOS操作系统移植到开发板上,这涉及到FreeRTOS的配置、启动代码的编写、任务创建和调度等过程。 知识点六:移植步骤 1. 首先要了解FreeRTOS的运行机制和API接口。 2. 接下来要为STM32F429开发板编写启动代码,这是RTOS在该硬件平台上运行的底层基础。 3. 编写针对STM32F429的硬件抽象层(HAL),包括中断处理、定时器配置、串口通信等,以便FreeRTOS可以有效控制硬件资源。 4. 配置FreeRTOS内核,包括创建任务、设定堆栈大小、设置任务优先级和创建队列或信号量等同步机制。 5. 在EMWIN的图形界面中集成FreeRTOS的API,确保图形界面与RTOS任务可以顺利交互。 6. 编译和调试,确保移植的RTOS运行稳定并且图形界面表现正常。 以上是根据标题、描述和标签提供的关于EMWIN实验2 STemWin移植到FreeRTOS上的详细知识点介绍。通过这些步骤,开发者能够将一个功能强大的图形界面与实时操作系统结合,为嵌入式产品提供更丰富的用户交互体验。
2017-12-25 上传
DSP和标准外设库: 资源编号 : STSW-STM32065 资源名称 : STM32F4 DSP and standard peripherals library 文件名 : stm32_f105-07_f2_f4_usb-host-device_lib.zip 下载地址 : http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257901# USB库: 资源编号 : STSW-STM32046 资源名称 : STM32F105/7, STM32F2 and STM32F4 USB on-the-go Host and device library (UM1021) 文件名 : stm32_f105-07_f2_f4_usb-host-device_lib.zip 下载地址 : http://www.st.com/web/en/catalog/tools/PF257882 ETH以太网库: 资源编号 : STSW-STM32046 资源名称 : LwIP TCP/IP stack demonstration for STM32F4x7 microcontrollers (AN3966) 文件名 : stsw-stm32070.zip 下载地址 : http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257906 【CMSIS】 Cortex微控制器软件接口程序(Cortex Microcontroller Software Interface Standard (CMSIS). ) 版本: V4.2 发布日期: 31. July 2014 【STM32F4xx_StdPeriph_Driver】 STM32F40x系列CPU标准外设驱动程序 版本: V1.5.0 发布日期: 06-March-2015 【STM32_USB_OTG_Driver】 STM32F105/7xx, STM32F2xx and STM32F4xx USB Device Library 版本: V2.1.0 发布日期: 2012-03-19 【STM32_USB_Device_Library】 STM32F105/7xx, STM32F2xx and STM32F4xx USB Device Library 版本: V1.1.0 发布日期: 2012-03-05 【STM32_USB_HOST_Library】 STM32F105/7xx, STM32F2xx and STM32F4xx USB Host Library 版本: V2.1.0 发布日期: 2012-03-19 【STM32F4x7_ETH_Driver】 STM32F4x7 Eth Library 版本: V1.1.0 发布日期: 31-July-2013 ********************************************************************************************************* * * 版 本 : V1.0 * 说 明 : 本实验主要实现FreeRTOS+STemWin+FatFS+USB Host综合 * 实验目的: * 1. 学习FreeRTOS+STemWin+FatFS+USB Host综合 * 2. 这里的USB Host主要实现U盘相关处理,支持U盘热插拔。 * 用户可以根据需要在usb_usr.c文件中的插入检测函数: * USBH_USR_Configuration_DescAvailable或者函数USBH_USR_Init函数加入插入标志 * 拔出检测函数: * USBH_USR_DeviceDisconnected * 实验内容: * 1. 按下按键K1可以通过串口打印任务执行情况(波特率115200,数据位8,奇偶校验位无,停止位1) * ================================================= * 任务名 任务状态 优先级 剩余栈 任务序号 * vTaskUserIF R 2 272 2 * vTaskGUI R 1 657 1 * IDLE R 0 113 6 * vTaskMsgPro B 4 1957 4 * vTaskLED B 3 483 3 * vTaskStart B 5 489 5 * * * 任务名 运行计数 使用率 * vTaskUserIF 5583 1% * vTaskGUI 10782 2% * IDLE 355589 91% * vTaskLED 0 <1% * vTaskMsgPro 16770 4% * vTaskStart 17 <1% * 串口软件建议使用SecureCRT(V6光盘里面有此软件)查看打印信息。 * 各个任务实现的功能如下: * vTaskGUI 任务: emWin任务 * vTaskTaskUserIF 任务: 接口消息处理 * vTaskLED 任务: LED闪烁 * vTaskMsgPro 任务: U盘中文件处理和浏览 * vTaskStart 任务: 启动任务,也就是最高优先级任务,这里实现按键扫描和触摸检测 * 2. 任务运行状态的定义如下,跟上面串口打印字母B, R, D, S对应: * #define tskBLOCKED_CHAR ( 'B' ) 阻塞 * #define tskREADY_CHAR ( 'R' ) 就绪 * #define tskDELETED_CHAR ( 'D' ) 删除 * #define tskSUSPENDED_CHAR ( 'S' ) 挂起 * 3. 本实验的USB Host主要是对U盘的操作,通过电脑端的串口软件SecureCRT软件, * 给板子发送相关命令实现操作,具体实现在demo_fatfs文件里面。 * printf("请选择操作命令:\r\n"); * printf("1 - 显示根目录下的文件列表\r\n"); * printf("2 - 创建一个新文件armfly.txt\r\n"); * printf("3 - 读armfly.txt文件的内容\r\n"); * printf("4 - 创建目录\r\n"); * printf("5 - 删除文件和目录\r\n"); * printf("6 - 读写文件速度测试\r\n"); * printf("7 - 挂载U盘\r\n"); * printf("8 - 卸载U盘\r\n"); * 注意事项: * 1. 本实验推荐使用串口软件SecureCRT,要不串口打印效果不整齐。此软件在 * V5开发板光盘里面有。 * 2. 务必将编辑器的缩进参数和TAB设置为4来阅读本文件,要不代码显示不整齐。 * * 修改记录 : * 版本号 日期 作者 说明 * V1.0 2016-03-15 Eric2013 1. ST固件库到V1.5.0版本 * 2. BSP驱动包V1.2 * 3. FreeRTOS版本V8.2.3 * 4. STemWin版本V5.28 * 5. FatFS版本V0.11a * * Copyright (C), 2016-2020, 安富莱电子 www.armfly.com * *********************************************************************************************************