代码编织梦想

  1. 建立stm32空项目

这里使用STM32CubeMX快速创建项目,要注意的是我们完成最基本的配置以后,需要将我 们的Timebase Source修改一下,修改成除了滴答滴答定时器的其他定时器,就像这样:

af8887b2449c83bb94afbf45813d00dc.png

在FreeRTOS中我们的SysTick定时器被用于了我们的时钟基准,它用来实现我们的任务切换,我们的SysTick定时器每次触发我们的中断(默认是一毫秒,可以自行修改为其他值)。

正常裸机开发中我们的SysTick定时器是用来主要是用来进行我们的HAL_Delay() 延时的,使用其作为基准,前面我们说了SysTick定时器被用于系统任务切换了,所以它就是一直在工作,或者说一直在触发中断,这样的话我们的HAL_Delay()就需用使用我们的其他定时器进行替代其作用了。

  1. FreeRTOS内核下载

浏览器进入FreeRTOS官网,点击右上角下载FreeRTOS。

321ddac4e769d33578b53805351ab255.png

上面的是FreeRTOS的最新版本,下面的就是长期维护的版本。点击上方github的链接,在github下载压缩包。下载下来并不完整,他的子模块还没有。继续向下滑动网页:

4101855d27a76cad8380ef235c0f9af8.png

点击连接同样下载压缩包,解压后:

53be9826b261d04658741499d5abb164.png
  1. 开始移植

Keil打开stm32项目,左侧添加两个新分组:

0ec5483562b048e553960a4b358ee9ff.png

在工程中,新建文件夹:

4803d1a48bef282ed59d87f3c55a5046.png

打开FreeRTOS-Kernel-main文件夹,复制所有.c文件到刚刚建立的FreeRTOS文件中。

复制include文件夹以及portable文件夹到FreeRTOS文件夹下

保留FreeRTOS/portable文件夹中的Keil、MemMang、RVDS文件夹,其余全部删除。

保留FreeRTOS/portable/RVDS文件夹中的ARM_CM4F文件夹。

\FreeRTOS\FreeRTOS-main\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK\FreeRTOSCionfig.h文件复制到FreeRTOS\include中。

将.c文件添加到之前建立的分组中:

947c5df385ee5111906820841c0c986b.png

添加头文件路径:

5cba64c08cbd0da50eb978a18cfe4d33.png

编译提示错误:SystemCoreClock未定义。对应修改FreeRTOSCionfig.h

e8f12dfec2d6071632ea2731d714ffa3.png

编译报错:重复定义

f79648c2957458e75eec419e8d722dca.png

在stm32f4xx_it.c中删除这几个函数。再次编译无错。

  1. 点灯任务测试

引入相关头文件:”FreeRTOS.h” ”task.h”.

任务函数创建:

d8217d47f4b93b3f0ef86938b1865b57.png

主函数创建任务,以及开启任务调度器:

5d5db2a134bc601a6efac6c162647ca6.png

编译下载即可。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_57346316/article/details/129677153

Stm32F407 FreeRTOS+TCP 移植-爱代码爱编程

FreeRTOS 版本: FreeRTOSv10.2.1 HAL 版本:  Keil.STM32F4xx_DFP_HAL.2.13.0 版本无所谓,只是记录下,FreeRTOS 10.0之后会多实现一个网络序列化回调函数。 FreeRTOSv10.2.1 TCP 文件目录 官方使用手册:https://www.freertos.org/Free

FREERTOS移植STM32F407-爱代码爱编程

FREERTOS移植STM32F407 获取FREERTOS源码 从github上下载:FREERTOS源码 创建基础工程 1.利用Keil 5 创建一个STM32基础工程,建议直接使用任何一个STM32库模板。 在基础工程中创建一个文件夹FREERTOS,用来存放FreeRTOS源码,该源码存放在下载的source文件夹下,然后删除不需

STM32F407 FreeRTOS移植-爱代码爱编程

STM32F407 FreeRTOS移植 一、获取FreeRTOS源码 打开FreeRTOS官网:www.freertos.org,在官网下载即可,这里不做步骤说明,或者通过百度下载即可,下载网址: 链接:https://pan.baidu.com/s/1l3QMTdRNGPFbZfb-d2McRw 提取码:yyds二、FreeRTOS移植 2.1准

STM32F407+FreeRTOS+LwIP移植问题汇总-爱代码爱编程

1、移植环境为STM32F407标准库+FreeRTOS v9.00+LwIP1.4.1。LwIP移植可分为带操作系统和不带操作系统两种移植方式。本次移植采用了带操作系统,但是只移植了LwIP的内核(没有移植其模拟层,即sys_arch相关内容),使用RAW API方法进行LwIP通信,即在FreeRTOS系统下创建一个以太网轮询的方法。 2、在Free

STM32F407 FreeRTOS+LWIP移植-爱代码爱编程

本文基于STM32F4 LWIP开发手册V3.0中第二章LWIP带操作系统移植和STM32F4 FreeRTOS开发手册_V1.1.并参照博客文章STM32F4XX LWIP+freeRTOS移植(一)_u014453443的博客-CSDN博客_freertos lwip 类似于UCOS+LWIP的移植,需要在sys_arch.c中为协议栈提供邮箱、

STM32F103--移植FreeRTOS完整教程-爱代码爱编程

最近按照正点原子教程开始学习FreeRTOS,发现其手册的移植教程中有些地方可能不是那么详细,在此基于正点原子做一期最完整的FreeRTOS移植教程给大家。 小b将本次教程整理的资料放在网盘,以下链接供各位小伙伴下载和学习: 链接:https://pan.baidu.com/s/1z74dzFtQ198XLJwYhOVWlw 提取码:rson 打开F

stm32f407霸天虎freertos学习笔记——移植freertos到开发板上_物联网小白jayce的博客-爱代码爱编程

STM32F407霸天虎FreeRTOS学习笔记——移植FreeRTOS到开发板上 FreeRTOS源码获取移植第一步:创建文件夹Keilmain.c 实验效果 FreeRTOS源码获取 在移植之前,首先

stm32f407移植freertos操作系统-爱代码爱编程

RTOS:Real-time operation system 实时操作系统 比如UCOS,FreeRTOS,RTX,RT-Thread 等这些都是RTOS类操作系统 。 为什么使用操作系统? 通常裸机会使用中断去处理优先级

移植mqtt源码到stm32f407开发板上_stm32 移植mqtt-爱代码爱编程

1. 准备工作 注意:文章还没介绍移植mqttclient和硬件设备网络相关部分的代码,所以这篇文章移植完后,还不能通过网络去连接的。主要介绍是先把mqttclient除网络之外其他部分的所有代码移植到FreeRTOS项目

stm32f411移植freertos教程__cc_arm和gunc-爱代码爱编程

目录 1.第一步准备好基础工程  2.软件仿真相关设置 3.软件仿真环境,printf重定向 4.移植FreeRtos源码 4.1 拷贝文件 5.增加freertos源码到keil工程中 5.1增加.c文件到工程: 5.2增加头文件到工程: 6.修改编译问题 7.修改SYSTEM文件和systick中断处理函数 7.1 修改sys.h

stm32f407+freertos+lan8720+lwip+stm32cubemx+dhcp_mx_lwip_init-爱代码爱编程

记录一下通过STM32CubeMX配置STM32F407使用lan8720A使用lwip实现dhcp功能,使用硬件正点原子战舰开发板,STM32CubeMX版本6.4;FreeRTOS版本10.2.1,接口:cmsis_v2。 1.硬件主要原理图如下:(lan8720正常工作,C11电压1.2v。PHY地址设置:MAC层通过SMI总线对PHY进行读写操作