近三天新闻50字左右,株洲优化公司,虚拟服务器建网站,怎么样让百度收录网站这篇文章是将 FreeRTOS移植到STM32F103RCT6 详细流程。创建用于移植的根文件夹#xff0c;如 FreeRTOS-F103。也可以命名为别的名称。进入 FreeRTOS-F103 文件夹#xff0c;在其内创建以下几个子文件夹#xff1a;apps#xff0c;doc#xff0c;drivers#xff0c;FreeRT…这篇文章是将 FreeRTOS移植到STM32F103RCT6 详细流程。创建用于移植的根文件夹如 FreeRTOS-F103。也可以命名为别的名称。进入 FreeRTOS-F103 文件夹在其内创建以下几个子文件夹appsdocdriversFreeRTOSlibsproject。用于存放项目文件。从 STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 中复制以下四个文件到 apps 文件夹main.cstm32f10x_conf.hstm32f10x_it.cstm32f10x_it.h。在 doc 文件夹下创建新文件 readme.txt用于项目说明。在 drivers 文件夹下创建两个子文件夹 inc 和 src。用于存放项目的驱动头文件和源文件。复制 FreeRTOSv9.0.0\FreeRTOS\Source 下的全部文件和文件夹到 FreeRTOS 中。其中portable文件夹中只保留 keil、MemMang 和 RVDS 三个文件夹其余都删除。复制 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries 下的全部两个文件夹到 libs 文件夹下。打开 Keil新建新项目 demo保存到 project 文件夹下。选择设备为 STM32F103RC。将默认目标 Target1 更改为 demo并对 demo 目标进行分组并为各组添加文件。添加 FreeRTOS-F103\FreeRTOS\portable\MemMang\heap_4.c 到 FreeRTOS_PORT 组。添加全局宏STM32F10X_HD,USE_STDPERIPH_DRIVER。添加头文件路径
..\apps;..\drivers\inc;..\FreeRTOS\include;..\FreeRTOS\portable\RVDS\ARM_CM3;..\libs\CMSIS\CM3\CoreSupport;..\libs\CMSIS\CM3\DeviceSupport\ST\STM32F10x;..\libs\STM32F10x_StdPeriph_Driver\inc。打开 main.c 文件删除以下这些行24行27~ 37行45~ 69行73行76~ 82行100~ 159行170~186行。这些行是项目模板中与验证板相关的代码用不着删除它们。删除后的样子编译。报错
..\FreeRTOS\include\FreeRTOS.h(98): error: #5: cannot open source input file FreeRTOSConfig.h: No such file or directory这是缺少 FreeRTOSConfig.h 头文件。从 FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_STM32F103_Keil 下复制 FreeRTOSConfig.h 头文件到 FreeRTOS-F103\FreeRTOS\include 下。再次编译通过。另外还得更改三个中断处理函数名称。port.c 中定义了三个中断处理函数它们与默认的一一对应为了在产生这三个中断时能执行 port.c 中定义的中断处理函数需要对启动文件 startup_stm32f10x_hd.s 中的三个中断处理函数进行对应更改SVC_Handler 改为 vPortSVCHandlerPendSV_Handler 改为 xPortPendSVHandlerSysTick_Handler 改为 xPortSysTickHandler再次编译通过。至此移植 FreeRTOS 到 STM32F103RC 完成。
测试移植的 FreeRTOS 系统。测试代码通过在启动任务中创建一个LED_R 灯闪烁任务一个蜂鸣器间断鸣叫任务来测试系统移植后能否正常工作。首先更改 main.c。在 drivers/src 中添加 led.c、beep.c在 drivers/inc 中添加 led.h、beep.h在 apps 下添加 test_task.c、test_task.h。这些文件见附件。将 led.c 和 beep.c 添加到 drivers 组将 test_task.c 添加到 apps 组。编译通过。烧录后能看到LED_R 灯闪烁蜂鸣器间断鸣叫说明系统能正常运行。