FreeRTOS 源码中有三个文件夹,7 个 HTML 格式的网页和 2 个 txt 文档,HTML 网页和 txt 文档看名字就知道是什么东西了,重点在于上面那两个文件夹:FreeRTOS 和 FreeRTOS-Plus,这两个文件夹里面的东西就是 FreeRTOS 的源码。
博主最近在搞 Sensor hub,跑的是 FreeRTOS,所以来学一学 FreeRTOS。
FreeRTOS与uCOS II均为嵌入式实时操作系统,各有优劣,本文为你仔细分析。
在早期那个大规模集成电路还不是很普及的时代,处理器、内存等元件非常昂贵,那时的多用户多任务是实现在单处理器上的。
首先新建或找一个基于Keil的STM32基础工程,这里我已经创建好了一个STM32F407VET6的工程模板,工程结构如下图的第1步的矩形框内所示。
FreeRTOS源码分为两种,一种是FreeRTOS包,另一种是FreeRTOS LTS Release包。
ESP32-Drone四旋翼无人机是乐鑫的一个开源项目,我根据官方的硬件参考设计,重新使用KiCAD绘制了原理图和PCB板,并制作了控制板样板,在配置了ESP-idf-4.4编程环境编译官方的软件包时遇到了二个比较严重的问题,具体过程记录如下:
首先上一段cubemx导出的freertos的配置文件,这个配置文件是cubemx导出生成的。芯片是stm32f103zet6,(freertos代码风格是在是比较差,尤其是名称,看ucos爽多了)
回顾下之前的章节:我们在一个简单的定时器 OS 基础上实现了 cortex-M 系列架构的兼容,并基于单片机的基本资源实现了很多实例。
本教程连载中,篇章会比较多,为方便同学们阅读,点击这里可以查看文章的 目录列表,目录列表页面地址:https://blog.csdn.net/thisway_diy/article/details/121399484
最近腾讯有个嵌入式的比赛,我有点心动,但是我又有点怕做不出来东西。所以我在这里立下宏愿(有点日宣),手写一个freertos出来,然后我就报名。
嵌入式系统在现代科技中发挥着越来越重要的作用,从智能家居到工业自动化,嵌入式设备已经无处不在。在开发嵌入式系统时,选择合适的操作系统是至关重要的一步。本文将深入探讨几种常见的嵌入式操作系统,并通过代码示例来比较它们的特性,以帮助开发者选择适合其项目的操作系统。
自从恩智浦合并飞思卡尔后,新推出的SDK将不在支持MQX实时操作系统,主要支持freeRTOS,freeRTOS是开源的免费操作系统,使用的人非常多,据网站上消息,平均每260秒就有一次freeRTO
FreeRTOS,全称Free Real Time Operating System,即免费的实时操作系统。相比于计算机中用到的Windows,MacOS,Linux等操作系统,实时操作系统(RTOS)是一种轻量级的操作系统,适用于嵌入式硬件中,用于解决单片机类裸机轮询方式在处理多个任务时的实时性不高的问题。
紧急避坑!!!如果没有用freertos,那中断优先级设置没啥关系。但如果用了freertos,那SDIO的优先级必须要注意跟freertos区分开来,不能高过他!不然就是mout正常,read等其他操作都返回错误3 not ready。
控制GPIO25输出高低电平 1.原理图 2.参考官方例程 3.程序 #include <stdio.h> #include <string.h> #include <stdlib.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #include "driver/gpio.h" #define gpio_pin 25 void app_main(void) {
在上次的公众号推送文章里,我们简单介绍了下单独的freeRTOS在kinetis K60上的例程分析和移植提示,今天我们看看如果是KSDK和freeRTOS会擦出什么火花呢,没错,自NXP并购freescale后,在新推出的KSDK中将不在支持MQX,而是大力推freeRTOS,这个我们在之前提到过,今天我们就以KSDK2.0为例介绍下,KSDK集成进freeRTOS后,NXP已经给大家做好了很多工作,例程,你只需简单修改就可以轻松应用于自己的硬件系统,例如我们打开一个基于kinetis K64的u
FreeRTOS 中有一些函数只供系统内核使用,用户应用程序一般不允许使用,这些 API 函数就是系统内核控制函数。
RTOS 系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习 RTOS 系统的工程师或者学生主要就是为了使用 RTOS 的多任务处理功能,初步上手 RTOS 系统首先必须掌握的也是任务的创建、删除、挂起和恢复等操作,由此可见任务管理的重要性。本文学习一下 FreeRTOS的任务基础知识,分为如下几部分:
随着物联网的越来越火,嵌入式工程师需要更多的网络知识,其中TCP/IP协议栈是我们经常要用到的,在公众号里曾给大家介绍过开源的Uip和LwIP协议栈,并在freeRTOS下移植过,其中这两款协议栈的比
2021年8月5日,来自微软Azure Defender for IoT 团队的研究员Omri Ben-Bassat 和 Tamir Ariel,在 BlackHat USA 2021 上分享了以内存分配程序漏洞BadAlloc为主题的演讲。本文将和大家一起来看看议题中涉及的内容。
博主手里有一个正点原子 STM32F103ZET6,行情最贵的时候买的,得好好利用。
STM32CubeMX是被广泛使用的。它集成了芯片选型、引脚分配和功能配置,中间件配置,时钟配置,初始代码和项目的功能。
空闲任务是 FreeRTOS 必不可少的一个任务,其他 RTOS 类系统也有空闲任务,比如 uC/OS。看名字就知道,空闲任务是处理器空闲的时候去运行的一个任务,当系统中没有其他就绪任务的时候空闲任务就会开始运行,空闲任务最重要的作用就是让处理器在无事可做的时候找点事做,防止处理器无聊,因此,空闲任务的优先级肯定是最低的。当然了,实际上肯定不会这么浪费宝贵的处理器资源,FreeRTOS 空闲任务中也会执行一些其他的处理。
在很早之前我们就曾在公众号里给大家介绍过freeRTOS,并且还介绍过在NXP kenitis KV46上的移植,相信很多猿友应该还有印象,freeRTOS因其占用资源少,开源等特点,应用越来越广泛,尤其是在嵌入式开发领域,随着物联网的大热,更是火的一塌糊涂,据官方报道,平均每260秒就有一次freeRTOS的下载。 虽然freeRTOS是开源免费的,但是在做产品时候,还是要注意,从freeRTOS到OpenRTOS在到SafeRTOS的区别,选择合适自己的。不同的license提供的支持也不一样。一张图就
本篇文档主要用来介绍FreeRTOS在英飞凌TriCore TC33x系列上的移植和使用
要想看懂 FreeRTOS 源码并学习其原理,有一个东西绝对跑不了,那就是 FreeRTOS 的列表和列表项。列表和列表项是 FreeRTOS 的一个数据结构,FreeRTOS 大量使用到了列表和列表项, 它是 FreeRTOS 的基石。要想深入学习并理解 FreeRTOS,那么列表和列表项就必须首先掌握, 否则后面根本就没法进行。
任何调用中断安全FreeRTOS API函数的中断服务例程都可以使用的最高中断优先级。不要从任何优先级高于此的中断调用中断安全FREERTOS API函数!(优先级越高,数值越低。)
本篇笔记主要介绍,在freeRTOS环境下,以STM32为例介绍如何快速获取CPU利用率,配合CubeMonitor测试
本次案例用到的是创龙科技的TLZ7x-EasyEVM-S开发板,它是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC评估板,处理器集成PS端双核ARM Cortex-A9 + PL端Artix-7架构28nm可编程逻辑资源,评估板由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
由于工作内容的变动,我已经很久没有正经的玩过单片机了,近期又要用它做个小玩意了,还是选 stm32 吧,外设库开发不要太方便,哈哈哈
初学S32K144芯片,此文章仅在于记录使用的过程的一些小问题,以便有用到的一起学习。
说明 esp32是跑的freertos, 如果没有学过操作系统的朋友把此节当做esp32的内部api使用就可以. 创建任务,每隔一段时间打印 Hello world #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" //任务函数 static void function(void *pvParameters) { while(1) { vTaskDelay(1
FreeRTOS 中系统内核控制函数只供系统内核使用,用户应用程序一般不允许使用,本篇博文讲解这些函数仅供大家了解和参考。
说明 模块有3个串口,每个串口管脚可以设置到任意的gpio上 模组出厂默认使用GPIO1,GPIO3作为串口0引脚(日志打印); GPIO17,GPIO16作为串口1引脚(AT指令) 开发板上也把串口1连接了485上. 说明2 每个串口都有一个128字节的FIFO缓存区,知道这个就可以. 设置串口1,带接收缓存,不带发送缓存区的方式(最简洁的方式) 设置GPIO17,GPIO16作为串口1引脚. 没有设置发送缓存,调用 uart_write_bytes 发送数据的时候是阻塞的. #in
内存管理是一个系统基本组成部分,FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量、队列等会自动从堆中申请内存。用户应用层代码也可以 FreeRTOS 提供的内存管理函数来申请和释放内存,本文学习一下 FreeRTOS 自带的内存管理。
R128 S2 是全志提供的一款 M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) 三核异构 SoC,同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。
之前推出了H7-TOOL的RTOS Trace功能,已经支持RTX5,ThreadX,uCOS-III,uCOS-II和FreeRTOS,特色是不需要目标板额外做任何代码,实时检测RTOS任务执行情况,支持在线和脱机玩法,效果是下面这样的:
在嵌入式系统中比较流行的开源实时操作系统 FreeRTOS 被广泛应用于各个平台(STM32、ESP32、Arduino等等),文章将介绍实时操作系统和为什么在嵌入式系统中使用实时操作系统。
任务挂起简单点理解就是现在不需要执行这个任务,让它先暂停,就是挂起。恢复就是从刚才挂起的状态下继续运行。
前段时间吐槽过某个自称物联网芯片的单片机(W806虽然很强,但,这也叫物联网芯片?),没几天他们又推出一个物联网芯片,据说带wifi和蓝牙。
FreeRTOS 的中断配置是一个很重要的内容,需要根据所使用的 MCU 来具体配置。这需要 了解 MCU 架构中有关中断的知识,本文结合 Cortex-M 的 NVIC 来讲解 STM32 平台下的 FreeRTOS 中断配置,分为如下几部分:
实时操作系统(Real-time Operating System, RTOS)是针对有实时性要求的应用而设计的操作系统。所谓“实时性”,就是能否在确定时间内完成指定操作与响应。实时系统的应用通常包括汽车引擎控制、轨道交通、工业机器人、飞行器控制系统、医疗、制造等。实时操作系统一般提供抢占式调度机制,重要的高优先级任务可以剥夺低优先级任务对CPU的使用权;同时,任务在等待使用资源时,RTOS可以将其CPU的使用权释放给其他就绪的任务,从而使得系统的总体响应速度更快。随着物联网的普及以及新的消费电子的发展,RTOS将会进入规模化部署阶段。
我发现学习 RTOS 是学习 Linux 内核的好方法。大有弯道超车的可能。 1. 任务堆栈 1.1 任务栈大小确定 1.2 栈溢出检测机制 2. 任务状态 3. 任务优先级 3.1任务优先级说明 3.2 任务优先级分配方案 3.3 任务优先级与终端优先级的区别 4. 任务调度 4.1 调度器 5. 临界区、锁与系统时间 5.1 临界区与开关中断 5.2 锁 5.3 FreeRTOS 系统时钟节拍和时间管理 一、 单任务系统(裸机) 主要是采用超级循环系统(前后台系统),应用程序是一个无限的循环,循环中调用
在之前的公众号文章《freeRTOS源码目录结构分析》中我们简单介绍了源码目录结构,文件夹包含的内容,今天我们来分析下以NXP的kinetis K60塔式系统为硬件平台的例程。 首先打开例程,我们的源
这部分很重要,如果选择的单片机RAM比较吃紧,那就要精打细算了。 这个问题牵连了不少容易混淆的概念,我在学习的时候也翻了很多帖子,按照自己的理解梳理了一下,有错误请评论区或私信指出。 参考博客:
很多应用场合对于功耗的要求很严格,比如长期无人照看的数据采集仪器,可穿戴设备等。其实很多 MCU 都有相应的低功耗模式,以此来降低设备运行时的功耗,进行裸机开发的时候就可以使用这些低功耗模式。但是现在我们要使用操作系统,因此操作系统对于低功耗的支持也显得尤为重要,这样硬件与软件相结合,可以进一步降低系统的功耗。这样开发也会方便很多,毕竟系统已经原生支持低功耗了,我们只需要按照系统的要求来做编写相应的应用层代码即可。FreeRTOS 提供了一个叫做 Tickless 的低功耗模式。
从 v8.2.0 版本开始,FreeRTOS 新增了任务通知(Task Notifictions)这个功能,可以使用任务通知来代替信号量、消息队列、事件标志组等这些东西。使用任务通知的话效率会更高,我们来学习一下 FreeRTOS 的任务通知功能。
领取专属 10元无门槛券
手把手带您无忧上云