7.上述移植方法存在的问题 由于FreeRTOS和HAL库都默认使用Systick定时器作为时基源,而systick中断优先级一般设置为最低,导致在高优先中断函数里调用HAL_Delay()会卡死,因此要避免在中断里调用HAL_Delay()或者配置别的定时器作为HAL库的时基源。 8.FreeRTOS是怎么初始化systick的? 在FreeRTOS源码包\FreeRTOS\Source...
以下内容是手动移植的过程记录使用stm32cubemx创建裸机项目注意:在SYS设置timebase source时(即HAL_Delay的时钟源),不能使用SysTick,因为SysTick被FreeRTOS使用了,可以使用其他的(如TIM1、TIM2……)另外,假设使用了TIM1作为timebase source,记得修改其优先级为较高或最高,比如0或1...
(一)裸机工程创建 (二)移植FreeRTOS 本工程源码下载:https://github.com/ankun6/HAL_FreeRTOS_Demo (一)裸机工程创建 使用STM32CubeMX创建裸机工程: 这里我是用的芯片是STM32F103RBT6,时钟主频为72MHz,配置时钟树: 配置调试串口1: 配置两个LED灯: 由于FreeRTOS...
在STM32上移植FreeRTOS涉及多个步骤,这些步骤将帮助你设置和配置环境,以便FreeRTOS能够在STM32微控制器上成功运行。以下是一个详细的分步指南,包括必要的代码和配置说明(虽然具体的代码细节可能会根据STM32的具体型号和FreeRTOS的版本而有所不同): 1. 准备开发环境 首先,确保你已经安装了STM32的开发环境,如STM32Cube...
在开始移植之前,需要确保已经安装了Keil MDK-ARM或其他支持ARM Cortex-M系列的IDE,并准备好STM32的开发板。 3. 下载FreeRTOS 可以从FreeRTOS官网下载最新的源代码。下载完成后,解压并查看源代码结构,了解各个目录的作用。 4. 配置FreeRTOS 4.1 创建项目和文件夹结构 在Keil MDK-ARM中创建一个新的STM32项目,并在...
2.1 新建一个移植工程(拷贝原子哥的也行),在工程中新建一个文件夹FreeRTOS存放源码 2.2 打开解压到的源码“..\FreeRTOSv8.2.2”,里边有几个文件夹和文件等东西 看到上图中红色圈圈的就是源码了,整个文件夹拷贝到新建工程的“FreeRTOS”文件夹中 2.4 在源码文件夹中“..\FreeRTOSv8.2.2\FreeRTOS\Demo\CORTEX...
将#define CMSIS_device_header "stm32f10x.h" 修改成 #define CMSIS_device_header "stm32f1xx_hal.h" ,keil下载的默认是库函数版移植的,需要将头文件变更成"stm32f1xx_hal.h" 接下来修改FREERTOS_CONFIG.H,打开头文件FREERTOS_CONFIG.H, 将#define configUSE_TIMERS 0 修改成 #define configUSE_TIMERS...
六、移植步骤 内核文件引入 把Free RTOS内核源码文件添加到STM32工程后,需对工程的头文件包含路径进行配置,使编译器能找到相关头文件,如在Keil MDK中通过“Options for Target” - > “C/C++” - > “Include Paths”添加Free RTOS头文件路径。同时,在源文件中引入必要的头文件,例如: ...
第一章:FreeRTOS的简述 10:08 第二章:FreeRTOS的移植(手动移植) 19:07 第二章:FreeRTOS的移植(CubeMX快速生成) 10:43 第三章:FreeRTOS的优先级 08:58 第四章:FreeRTOS任务的状态 15:08 第五章:FreeRTOS任务的基本操作(CubeMX HAL库) 10:09 第六章:FreeRTOS任务的消息队列 22:23 第七章:FreeRTOS信...