关注、星标公众号,直达精彩内容ID:技术让梦想更伟大整理:李肖遥回顾任务的创建删除在FreeRTOS基础系列《FreeRTOS系列第10篇---FreeRTOS任务创建和删除》中介绍了任务创建API函数xTaskCreate(),我们这里先回顾一下这个函数的声明:BaseType...
关注、星标公众号,直达精彩内容ID:技术让梦想更伟大整理:李肖遥使用FreeRTOS,一个最基本的程序架构如下所示:int main(void){ 必要的初始化工作; 创建任务1; 创建任务2; ... vTaskStartScheduler();...
很多STM32单片机初学者都是从裸机开始的,裸机确实也能开发出好的产品。但是,作为一个嵌入式软件工程师,况且用的并不是51那种低端单片机,如果只会用裸机开发产品,那肯定是不够的。要从裸机的思维转变到RTOS(RealTimeOperatingSystem)的思维,其实需要一个过程...
关注、星标公众号,直达精彩内容ID:技术让梦想更伟大作者:李肖遥FreeRTOS提供了两个系统延时函数:相对延时函数vTaskDelay()和绝对延时函数vTaskDelayUntil()。相对延时是指每次延时都是从任务执行函数vTaskDelay()开始,延时指定的时间结束;绝...
关注、星标公众号,直达精彩内容ID:技术让梦想更伟大整理:李肖遥操作系统的运行是由系统节拍时钟驱动的。在FreeRTOS中,我们知道系统延时和阻塞时间都是以系统节拍时钟周期为单位。在配置文件FreeRTOSConfig.h,改变宏configTICK_RATE_HZ的值,可以改变...
最近有读者问了这么一个问题:为啥RTOS的系统滴答(Tick)默认配置都是1000,我配置为100、10000,或者2000可以不?相信很多初学者都有这个疑问,包括我初学RTOS也曾困惑滴答配置不同值到底有啥不同和影响。今天就来简单说下关于RTOS系统滴答的内容!什么是系统滴答?...
我们在编写RTOS应用程序的过程中,经常会遇到这些困难,包括正确确定系统中有多少任务、如何设置优先级、协调任务行为、避免常见陷阱,有时只是为了让应用程序正常工作,而忽略一些问题。如今,近三分之二的嵌入式系统使用RTOS,而且随着系统的时序要求变得越来越复杂,这个数字只会随着时间的...
1、程序框架简介根据多年的编程经验来看,单片机的程序框架大体分为三种分别是顺序执行架构、分时轮询架构和RTOS。顺序执行架构:该框架或许是我们大部分初学者最常用的一种代码编写格式了,比如说首先执行我们的按键检测,然后执行显示数码管,然后去做其他事情!这样一个任务一个任务执行,任务...
概述嵌入式物联网开发平台是一个系统,是微控制器 物 联 网 开发平台的系统组合。
从2007年在中国发布第一颗STM32至今,STM32在全球、尤其是中国取得了重大成功。STM32的出现,为接下来十多年的人类科技生活的变迁和升级提供了一个灵活、易用和开放的平台。STM32得以受到如此多拥簇的原因,重要的一点在于...
嵌入式系统中,有很多方式实现任务调度。功能有限的小系统中,无限循环足够实现系统功能。
队列(queue)是一种只能在一端插入元素、在另一端删除元素的数据结构,遵循先入先出(FIFO)的规则。
在很多操作系统中,都存在这样一类API(函数接口):HOOK函数,也叫钩子函数。
RTOS:Real Time Operating System,即实时操作系统。 RTOS是嵌入式的必修课之一,随着国产化的发展,免费的RTOS发展越来越快,嵌入式工程师可选择的面也越来越宽。
本文来聊一下关于单片机与嵌入式、操作系统与RTOS之间的那些事儿。通过这篇文章,让你操作系统的实时性有一个系统、全面的理解!
RTOS(实时操作系统)是嵌入式的必修课之一,随着国产化的发展,免费的RTOS发展越来越快,嵌入式工程师可选择的面也越来越宽。
在RTOS多任务编程的时候,同一个硬件(比如UART、I2C等)被多个任务访问的情况比较多,如果不合理处理,就会导致“混乱”的局面。
先说明一下MPU,MPU有很多含义,我们常见的有: MPU:Memory Protection Unit,内存保护单元(本文描述的内容); MPU:Microprocessor Unit,微处理器;
之前在小熊派上移植过一个裸机版本的STemWin,耍了不少例程。
在嵌入式开发中,面对的都是单个CPU的情况,而在这个开发过程中,我们会涉及到裸机开发或者是跑操作系统的开发,在裸机开发的过程中,整个系统是以模块的角度来看的,也就是系统在运行完了这个模块之后,再去运行另外一个模块。但在有操作系统的情况下,我们是把系统处理的一件一件事情以任务的角度来进行划分的,这任务与任务之间是并发执行的。每个任务的运行看起来是独立的,从宏观的角度看是多个任务同时在占据着CPU的执行,就像是多CPU一样,在真正的多CPU系统中,每个CPU都有一套自己的寄存器,而为了实现这样一种多 CPU 运行的机制,那么操作系统就为每个任务用一块专用的存储空间构建了一个“虚拟 CPU”,用来保存 CPU 内存各个寄存器的信息,这块专用的存储器空间就是“任务堆栈”,有多少个任务就会有多少个任务堆栈。