
freeRTOS
文章平均质量分 91
freeRTOS系列教程欢迎订阅!
挨踢民工biubiu
种一棵树最好的时间是十年前,其次是现在。今天不走,明天要跑!
展开
-
FreeRTOS入门与工程实践(文档+入门视频教程+进阶视频教程,非常详细!)
嵌入式软件工程师的学习路线一般是:单片机->RTOS->Linux。当你掌握单片机开发后,如果要进一步提升编程水平,建议学习RTOS(Real Time Operating System,实时操作系统)。有很多优秀的RTOS,比如FreeRTOS、RT-Thread、UCOS等等。FreeRTOS使用范围最广泛,RT-Thread生态丰富,UCOS是收费的并且很少使用了。对于初学者,建议先学习FreeRTOS。只要学会了任意一款RTOS,肯定就会使用其他RTOS了。原创 2023-09-12 22:53:50 · 2022 阅读 · 0 评论 -
freeRTOS从入门到进阶提升系列教程:入门文档+视频教程+进阶视频教程(全部免费的freeRTOS系列教程、freeRTOS学习路线)
本教程是freeRTOS的系统教程,学完之后可达到中高级freeRTOS工程水平。教程分为三部分:学前知识普及->初级文档教程->进阶(高级)视频教程......原创 2021-12-21 18:55:01 · 3387 阅读 · 5 评论 -
第1章_freeRTOS入门与工程实践之课程介绍
嵌入式软件工程师的学习路线一般是:单片机->RTOS->Linux。当你掌握单片机开发后,如果要进一步提升编程水平,建议学习RTOS(Real Time Operating System,实时操作系统)。有很多优秀的RTOS,比如FreeRTOS、RT-Thread、UCOS等等。FreeRTOS使用范围最广泛,RT-Thread生态丰富,UCOS是收费的并且很少使用了。对于初学者,建议先学习FreeRTOS。只要学会了任意一款RTOS,肯定就会使用其他RTOS了。原创 2023-09-12 23:22:18 · 547 阅读 · 0 评论 -
第2章_freeRTOS入门与工程实践之单片机程序设计模式
裸机程序的设计模式可以分为:轮询、前后台、定时器驱动、基于状态机。前面三种方法都无法解决一个问题:假设有A、B两个都很耗时的函数,无法降低它们相互之间的影响。第4种方法可以解决这个问题,但是实践起来有难度。原创 2023-09-12 23:24:31 · 860 阅读 · 0 评论 -
第3章_freeRTOS入门与工程实践之搭建开发环境安装
开发板配套资料里有Keil MDK软件包:也可以(但是不建议)在Keil官网(https://www.keil.com/download/product/)直接下载“MDK-Arm”,如图所示:原创 2023-09-12 23:26:35 · 921 阅读 · 0 评论 -
第4章_freeRTOS入门与工程实践之开发板使用
本课程使用ST-Link给开发板供电、烧录、调试。DshanMCU-103上有4个插针,它们分别是GND、SWCLK、SWDIO、3.3V。ST-Link上有10个插针,它们的功能在外壳上有标注。接线方法如下图所示:原创 2023-09-12 23:28:39 · 461 阅读 · 0 评论 -
第5章_freeRTOS入门与工程实践之模块使用说明与STM32CubeMX配置
对于每一个模块,我们都编写了驱动程序。这些驱动程序依赖于STM32CubeMX提供的初始化代码。比如driver_oled.c里面要使用I2C1通道,I2C1的初始化代码是STM32CubeMX生成的:MX_I2C1_Init被用来初始I2C1本身,HAL_I2C_MspInit被用来初始化I2C引脚。driver_oled.c只使用I2C1的函数收发数据,它不涉及I2C1的初始化。换句话说,你要在自己的工程里使用driver_oled.c,还需要初始化相应的I2C通道、引脚。原创 2023-09-12 23:31:53 · 506 阅读 · 0 评论 -
第6章_freeRTOS入门与工程实践之创建FreeRTOS工程
双击运行STM32CubeMX,在首页面选择“Access to MCU Selector”,如下图所示:然后来到MCU选型界面,在序列号那里输入想要开发的芯片,例如STM32F103C8T6:原创 2023-09-12 23:38:54 · 478 阅读 · 0 评论 -
第7章_freeRTOS入门与工程实践之模块使用说明与STM32CubeMX配置
使用STM32CubeMX创建的FreeRTOS工程中,FreeRTOS相关的源码如下:原创 2023-09-12 23:40:31 · 537 阅读 · 0 评论 -
第8章_freeRTOS入门与工程实践之内存管理
后续的章节涉及这些内核对象:task、queue、semaphores和event group等。为了让FreeRTOS更容易使用,这些内核对象一般都是动态分配:用到时分配,不使用时释放。使用内存的动态管理功能,简化了程序设计:不再需要小心翼翼地提前规划各类对象,简化API函数的涉及,甚至可以减少内存的使用。内存的动态管理是C程序的知识范畴,并不属于FreeRTOS的知识范畴,但是它跟FreeRTOS关系是如此紧密,所以我们先讲解它。在C语言的库函数中,有mallc、free等函数,但是在FreeR原创 2023-09-12 23:43:44 · 466 阅读 · 0 评论 -
第9章_freeRTOS入门与工程实践之任务管理
在本章中,会涉及如下内容:- FreeRTOS如何给每个任务分配CPU时间- 如何选择某个任务来运行- 任务优先级如何起作用- 任务有哪些状态- 如何实现任务- 如何使用任务参数- 怎么修改任务优先级- 怎么删除任务- 怎么实现周期性的任务- 如何使用空闲任务原创 2023-09-12 23:45:18 · 421 阅读 · 0 评论 -
第10章_freeRTOS入门与工程实践之同步互斥与通信
本章是概述性的内容。可以把多任务系统当做一个团队,里面的每一个任务就相当于团队里的一个人。团队成员之间要协调工作进度(同步)、争用会议室(互斥)、沟通(通信)。多任务系统中所涉及的概念,都可以在现实生活中找到例子。各类RTOS都会涉及这些概念:任务通知(task notification)、队列(queue)、事件组(event group)、信号量(semaphoe)、互斥量(mutex)等。我们先站在更高角度来讲解这些概念。原创 2023-09-12 23:46:27 · 403 阅读 · 0 评论 -
第11章_freeRTOS入门与工程实践之队列(queue)
队列(queue)可以用于"任务到任务"、"任务到中断"、"中断到任务"直接传输信息。本章涉及如下内容:- 怎么创建、清除、删除队列- 队列中消息如何保存- 怎么向队列发送数据、怎么从队列读取数据、怎么覆盖队列的数据- 在队列上阻塞是什么意思- 怎么在多个队列上阻塞- 读写队列时如何影响任务的优先级原创 2023-09-12 23:47:53 · 356 阅读 · 0 评论 -
第12章_freeRTOS入门与工程实践之信号量的特性
信号量这个名字很恰当:- 信号:起通知作用- 量:还可以用来表示资源的数量 - 当"量"没有限制时,它就是"计数型信号量"(Counting Semaphores) - 当"量"只有0、1两个取值时,它就是"二进制信号量"(Binary Semaphores)- 支持的动作:"give"给出资源,计数值加1;"take"获得资源,计数值减1计数型信号量的典型场景是:- 计数:事件产生时"give"信号量,让计数值加1;处理事件时要先"take"信号量,就是获得信号量,让计数值减1。原创 2023-09-12 23:48:51 · 327 阅读 · 0 评论 -
freeRTOS&LVGL|在使用freertos时如何为lvgl配置心跳和任务管理器
在使用freertos时如何为lvgl配置心跳和任务管理器配置lvgl心跳(Tick)配置lvgl任务管理器(Task Handler)配置lvgl心跳(Tick)参考lvgl中文文档中的说明:http://lvgl.100ask.net/documentation/02_porting/05_tick.html实现freertos中的 Tick滴答钩子函数:void vApplicationTickHook() :该函数在Tick中断函数中调用,所以该函数的运行时间越短越好,不能加任何dela原创 2021-03-19 15:07:03 · 11152 阅读 · 5 评论