首页 > 其他分享 >十九、STM32移植FreeRTOS操作系统

十九、STM32移植FreeRTOS操作系统

时间:2023-10-05 16:46:34浏览次数:32  
标签:文件夹 FreeRTOS freertos STM32 Handler 十九 源码

1.环境安装

下载FreeRTOS源码

2.移植

2.1 在STM32项目下创建freertos文件夹,然后在文件夹下创建inc、src、port文件夹

2.2 将FreeRTOS源码目录下的FreeRTOS/Source/include文件夹下的.h头文件全部复制到STM32项目的freertos/inc文件夹下

2.3 将FreeRTOS源码目录下的FreeRTOS/Source文件夹下的.c源文件全部复制到STM32项目的freertos/src文件夹下

2.4 将FreeRTOS源码目录下的FreeRTOS/Source/portable文件夹下的Keil、MemMang和RVDS/ARM_CM3文件夹复制到STM32项目的freertos/port文件夹下,其中Keil中只有一个txt文件,MemMang文件夹下是不同的内存管理文件,一般选择heap_4.c文件,RVDS/ARM_CM3文件夹下存放的是单片机m3内核,不同单片机根据不同内核进行选择

2.5 打开STM32项目,创建分组,将freertos的.c源文件添加进项目中,.h头文件路径添加到魔术棒中

2.6 复制freertos源码的Demo文件夹下找到对应的单片机和编译器文件夹,将下边的FreeRTOSConfig.h文件复制到项目的头文件文件夹中

2.7 打开FreeRTOSConfig.h文件,添加宏定义

1 #define xPortPendSVHandler PendSV_Handler
2 #define vPortSVCHandler SVC_Handler
3 #define xPortSysTickHandler SysTick_Handler

2.8 打开stm32f103x_it.c文件,注释掉已经实现的中断函数PendSV_Handler、SVC_Handler和SysTick_Handler

3.创建任务查看移植结果

3.1 主函数中创建任务,动态创建函数xTaskCreate(),开启任务调度器函数vTaskStartScheduler()

3.2 任务函数中进行相应操作

 

标签:文件夹,FreeRTOS,freertos,STM32,Handler,十九,源码
From: https://www.cnblogs.com/qingfeng515/p/17743497.html

相关文章

  • STM32之WIFI通信(ESP8266 ESP-01S)
    STM32之WIFI通信(ESP8266ESP-01S)前言本文:使用的是STM32F103C8T6+ESP-01S模块通过采用串口的通信方式来实现WIFI功能ESP8266的介绍ESP8266指的是乐鑫推出的ESP8266EX芯片,用ESP8266EX芯片和FLASH芯片等封装在PCB上、金属屏蔽罩下便得到ESP8266模块。ESP8266EX由乐鑫......
  • FreeRTOS入门教程(同步与互斥)
    (文章目录)前言前几篇文章一直在围绕FreeRTOS中的任务创建,删除,优先级,调度算法进行讲解,那么从本篇文章开始将围绕同步与互斥来展开讲解。一、同步与互斥概念当多个任务或线程共享资源并发执行时,同步和互斥是两个关键的概念。1.同步(Synchronization)是指协调多个任务或线程的执......
  • FreeRTOS 原理 --- heap 堆内存的使用
    FreeRTOS一共提供了5种申请内存的方案heap1只申请不释放,内存利用率最高。申请出来的内存块,没有内存块头记录这个内存的大小,所以也无法释放,也正是没有内存块头,内存利用率高使用场景:不需要频繁申请内存heap2能申请能释放,不能合并内存块。每个内存块都有一个内存块头,有一个链表......
  • FPGA与STM32的区别与联系?如何互联?
    FPGA(现场可编程门阵列)和STM32(意法半导体公司的一个系列的单片机产品)都是数字电路设计中的重要工具,但它们在应用场景、可编程性和开发方式等方面存在显著的区别。首先,FPGA和STM32在应用场景中的区别在于,FPGA适用于处理并发的信号,比如多个方波信号同时输入、输出,这是STM32等单片机难......
  • stm32f103-2023-10-03
    这是当时在“某知道”上自己的一篇原创回答,由于某些原因目前个人在该平台上的所有回答或隐藏或清空了,现经删整之后收纳回本人博客。======================================================================================问题链接:https://zhidao.baidu.com/question/1604602......
  • FreeRTOS 原理 --- 软件定时器
     简介 有一个定时器任务,任务内读队列。启动定时器,会向队列发送消息,定时器任务读到消息后把定时器回调函数等信息作为一个链表项插入链表。当链表有链表项,算出还剩多长时间执行定时器回调函数,这个时间作为定时器任务阻塞时间。所以定时器任务重新运行要么是时间到准备运行定时器......
  • FreeRTOS 原理 --- 任务通知
    简介任务通知核心包含是一个32位的无符号整数和一个8位的通知状态,这两个在任务控制块中,通知任务就是一个任务或者中断改写另外一个任务中的32位的无符号整数,改写这个整数的方式可以有所不同可以让这个整数加1,模拟信号量设置该整数的指定的某些位,模拟事件组直接选择覆盖或者不......
  • FreeRTOS 原理 --- 事件组
    简介信号量,队列。它们都具有一下特性:它们允许在阻塞态下等待单个事件的发送。它们在事件发送时可以取消阻塞的单个任务。事件组是FreeRTOS提供另一种事件传递的方法,它与队列和信号量的不同点:时间组允许任务在阻塞态下等待一个或多个事件。事件发生时,事件组将取消阻塞等待......
  • 【STM32基础 CubeMX】ADC的基础使用
    @TOC前言在嵌入式系统开发中,STM32系列微控制器是广泛应用的一种硬件平台,而STMicroelectronics提供的CubeMX工具则是一款强大的开发工具,能够显著简化STM32微控制器的配置和初始化过程。其中,ADC(模数转换器)是STM32微控制器中一个重要的外设,用于将模拟信号转换为数字信号。本文将介绍AD......
  • 嵌入式开发环境Vscode开发STM32单片机程序
       STM32单片机非常强大,大多数教程都是使用keil编译器,keil是收费的而gcc是开源免费的。这里介绍一些使用gcc+ vscode 开发单片机程序的经验。(这里不解释gcc是什么)。第一:环境准备gccARM开发者官网 https://developer.arm.com/我有个习惯:尽量使用免安装版软件,直接解......