很多朋友问我这个问题,也抱怨GNU工具链不如集成开发环境好用。如IAR Workbench、Keil、RVDS等。并不理解,为什么RTEMS死磕GNU的工具链。这里其实有很多原因,有一些是我猜测的,有一些是既定的事实。下面就聊聊这些原因:1. 首先,RTEMS 从上个世纪80年代末开始开发。那时候,还没有这么牛叉的集成开发环境;GNU的工具链应该是当时不二的选择。2. RTEMS作为一个开源免费的
一、内存管理简介FreeRTOS创建任务、队列、信号量等的时候有两种方法,一种是动态的申请所需的RAM。一种是由用户自行定义所需的RAM,这种方法也叫静态方法,使用静态方法的函数一般以"Static"结尾,比如任务创建函数xTaskCreateStatic(),使用此函数创建任务的时候需要由用户 定义任务堆栈。使用动态内存管理的时候FreeRTOS内核在创建任务、队列、信号量的时候会动态的申请RA
(文章目录)
前言
本篇文章带大家简单的配置一下FreeRTOS
一、FreeRTOS介绍
在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。下面我就带大家使用cuebMX配置一下RTOS。
二、cubeMX配置
1.单片机型号选择
2.sys配置
原创
2023-10-17 10:08:23
281阅读
作者:Jack_G 时间:2023.05.26 版本:V1.0 上次修改时间: 环境:STM32Cube MX V6.8.1STM32CubeH7 Firmware Package V1.11.0 / 04-Nov-2022Fatfs: R0.12CKeil: V5.29 文章目录前言一、基本配置1.1 配置时钟源为外部晶振1.2 配置烧录程序的引脚1.3 配置时钟树,配置主频280M二、配置SD
实时调度Real Time Scheduling下面的图展示了实时操作系统是如何调度上页定义的任务。RTOS自己创建了一个任务-空闲任务-在没有其他任务处于就绪态的时候,空闲任务才会执行。空闲任务总是处于就绪态。参考上面的图:开始我们两个任务都没有处于就绪态-vControlTask在等待一个定时事件开开始一个控制周期,vKeyHandler任务在等待一个按键按下事件。处理器时间交给了RTOS空闲
因公司项目使用STM32F407的网络功能,虽然已经使用UCOSII作为TCP客户端成功链接网络,但是UCOS毕竟可能会涉及版权问题,不得不改用FreeRTOS+LWIP作项目开发。(一) 资料链接: 1.FreeRTOS源码下载网址:https://sourceforge.net/projects/freertos/files/FreeRTOS/2.FreeRTOS中文实用教程,这是英
GPIOB,GPIO_PIN_5);
原创
2023-05-29 01:48:40
144阅读
概述: 之前写了关于FreeRTOS的部分内容,为了方便阅读,现在给汇总到一起了。全部学习完后,恭喜你对FreeRTOS有了更深的认知。 第一章 FreeRTOS移植到STM32 第二章 FreeRTOS创建任务 第三章 FreeRTOS任务管理第四章 FreeRTOS消息队列第五章 
lePin(GPIOB,GPIO_PIN_5);
原创
2023-05-28 01:28:10
91阅读
FreeRTOS 队列使用 对FreeRTOS来说,队列是一种很基本数据结构,其中计数信号量,二值信号量等都是利用队列来做的;在FreeRTOS中,队列用于任务与任务之间,任务与中断服务子程序之间的数据传输,其作用类似于裸机编程时使用的全局变量,与全局变量不同的是,队列有阻塞超时时间;任务之间使用队列要遵循FIFO的特性当一个任务读取空队列时,这个任务将进入阻塞态(不消耗cpu,cpu会去运行其他
前言:因为在网上没有找到TI-RTOS的学习视频,虽然很多地方与free-RTOS相通,但是本人仍不想为了学习TI-RTOS先去学习freeRTOS,所幸关于TI-RTOS,ti公司给了许多相关的文档资料,虽然本人英文不太好,但没有办法,只能抱着试一试的心态,努力啃一啃,故在此做学习笔记。TI-RTOS驱动程序有一个用于静态配置和所有驱动程序实现的一组api的公共框架。我们应该首先理解通用框架,在
一、FreeRTOS启动流程源码浅析 背景:FreeRTOS使用CMSIS_RTOS_V2封装,工程使用HAL库并STM32CubeMX生成 首先从main函数开始分析,main函数中初始化的顺序为 HAL库初始化——系统时钟初始化——外设初始化——RTOS内核初始化——RTOS线程、互斥量、信号量等初始
FreeRTOS使用心得(一)1、创建任务 整套FreeRTOS系统其实很简单,只需要创建不同的任务,然后启动就可以了。 所以在使用FreeRTOS前,首先得先了解任务的创建方式,具体函数如下: xTaskCreate(xTask_Start,“Start_Task”,1024,NULL,3,&xHandle_Start); 参数说明:xTask_Start : 任务入口函数的指针,通过该
堆和栈堆 堆即为一块空闲的内存,从这块内存中来取出一部分用完之后再把它释放回去//此时heap_buf就相当于一块空闲的内存
//我们只需要在它上面实现内存的分配和释放,那么它就是一个堆
char heap_buf[1024];
int pos = 0; //指针(指向空闲内存的位置)
//分配空间
void * my_malloc(int size)
{
int old_pos = po
准备一个例程,作为移植的基础工程,越简单越好,所以选择LED灯例程改个名字,中文改英文的工程目录下新建文件夹 FreeRTOS,用来存放FreeRTOS源码前往FreeRTOS官网下载源码 https://www.freertos.org/index.html 下载好后解压文件将下面路径中的文件复制到工程目录下向 FreeRTOS\include 中添加 Fre
//注意:本人使用的是stm32F407ZGT6芯片,我有112个GPIO(A—G,0—15)这里主要是讲思路和方法:1、如何不使用cubemx来快速组织代码从而配置端口2、如何用cubemx快速配置端口(在最后面,可以直接翻到最后去看) 如果不使用cu
Catalog使用CubeMX配置STM32开发工程环境一、CubeMX软件的安装二、MDK-ARM Keil环境的安装三、Keil环境的配置四、CubeMX环境的配置五、使用CubeMX构建STM32工程六、程序细节与烧录Reference 使用CubeMX配置STM32开发工程环境一、CubeMX软件的安装首先前往官网,点击获取软件; 选择软件的版本,这里选择的是window环境下的6.60
(文章目录)
前言
本篇文章将带大家使用STM32cubemx对FreeRTOS进行工程模板的配置。
一、工程的创建
1.开始工程的创建:
2.芯片型号选择:
3.修改时钟为TIM8:
在FreeRTOS中SYSTICK需要为FreeRTOS提供心跳,故这里选择TIM8替换SYNTICK。
4.配置RCC:
5.配置FreeRTOS:
6.开启串口方便调试和观察:
7.工程路径及编译
原创
2023-10-24 08:11:12
199阅读
(文章目录)
前言
本篇文章将带大家使用STM32cubemx对FreeRTOS进行工程模板的配置。
一、工程的创建
1.开始工程的创建:
2.芯片型号选择:
3.修改时钟为TIM8:
在FreeRTOS中SYSTICK需要为FreeRTOS提供心跳,故这里选择TIM8替换SYNTICK。
4.配置RCC:
5.配置FreeRTOS:
6.开启串口方便调试和观察:
7.工程路径及编译
原创
2023-10-22 07:27:35
768阅读
目录第9章 STM32F429重要知识点数据类型,变量和堆栈9.1 初学者重要提示9.2 数据类型9.2.1 ANSI C和ISO C历史9.2.2 ARM架构(含Cortex-M系列)数据类型&