很多朋友问我这个问题,也抱怨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空闲
转载 8天前
22阅读
因公司项目使用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消息队列第五章&nbsp
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
转载 5月前
54阅读
(文章目录) 前言 本篇文章将带大家使用STM32cubemxFreeRTOS进行工程模板配置。 一、工程创建 1.开始工程创建: 2.芯片型号选择: 3.修改时钟为TIM8: 在FreeRTOS中SYSTICK需要为FreeRTOS提供心跳,故这里选择TIM8替换SYNTICK。 4.配置RCC: 5.配置FreeRTOS: 6.开启串口方便调试和观察: 7.工程路径及编译
原创 2023-10-24 08:11:12
199阅读
(文章目录) 前言 本篇文章将带大家使用STM32cubemxFreeRTOS进行工程模板配置。 一、工程创建 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系列)数据类型&
转载 3天前
6阅读
  • 1
  • 2
  • 3
  • 4
  • 5