嵌入式组件-----状态机
1、简述状态机在C语言编程中,可以使用状态机来实现复杂的控制流程和状态管理。状态机通常由以下几个组成部分构成:状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停"等。每个状态代表了系统或程序的一种行为或模式。事件(Event):触发状态转换的信号或条件,可以是外部输入、定时器到期、传感器触发等。事件发生时,状态机将根据当前状态和事件来确定下一个状态。转换(Transi
1、简述状态机在C语言编程中,可以使用状态机来实现复杂的控制流程和状态管理。状态机通常由以下几个组成部分构成:状态(State):系统或程序可能处于的不同状态,例如"待机"、"运行"、"暂停"等。每个状态代表了系统或程序的一种行为或模式。事件(Event):触发状态转换的信号或条件,可以是外部输入、定时器到期、传感器触发等。事件发生时,状态机将根据当前状态和事件来确定下一个状态。转换(Transi
调度器上下求索,方可得道之精髓引言我还在学校的时候,实验室有一个学长在B站发布了这么一个视频,B站链接在这里,并且将代码开源在github,取名为suos,对于当时的我来说,实时操作系统是一个很新鲜的东西,特别是当看到代码里面的两个函数中的while(1),这完全是超出认知的东西。如今四年已经过去了,不敢说对RTOS的远离了解的很清楚,但是也是管中窥豹,略知一二,今天就记录一下对RTOS的调度器的
前言前景提要:曾经做过一个迷你Linux小电脑,自己画了个四层板,有gpio、屏幕、USB等外设,并且在Ubuntu系统下编译固件,驱动屏幕等外设,最终也算是写了一个小型QT程序,读取图片并且联网通过访问API的方式识别图片中的内容。但是从始至终,一直游荡于论坛,没有潜下心来学习学习linux驱动开发与应用开发,今天开始通过这个笔记记录自己学习的过程,实际上也就是学习《【正点原子】I.MX6U嵌入
全志H3直播推流1、系统镜像烧录系统镜像尽量使用linux或者ubuntu原版镜像,不要使用不安全的三方镜像,我在这里使用friendlycore的卡刷包,代号focal,实际上就是ubuntu20.04,先使用工具烧录到内存卡里,然后插在机器上,使用eflash命令行或者图形化界面操作工具烧录到开发板内部mmc中,烧录完成后进入下一步。2、系统换源由于国内的某些政策原因,原版ubuntu镜像在国
RTOS-任务CPU占用统计在项目开发过程中,有时会需要查看各个任务的资源占用,需要用到rtos的CPU使用统计,其原理也很简单,就是开一个频率特别高的定时器,rtos在运行过程累计各个任务的实际占用时长,继而统计显示FreeRTOSConfig配置//计算CPU使用率 #define configGENERATE_RUN_TIME_STATS 1 //启用运行时间统计功能 #define c
很多嵌入式设备都对功耗有严格的控制,特别是消费电子对功耗的控制更为严格,Tickless是freertos中的一个可选模块,主要实现低功耗功能STM32类芯片的低功耗模式STM32之类的arm芯片通常有三种低功耗模式:睡眠模式(sleep):仅CPU 时钟关闭,其他所有外设时钟比如数字的TMR以及模拟的ADC时钟无影响。注意所有外设时钟都没有被关闭,因此外设还能工作,如果Sleep模式需要进一步降
个人理解中的蓝牙:蓝牙的应用场景很广泛,也发展了很多年了,蓝牙包含经典蓝牙和低功耗蓝牙,两个可以说是不是同一个东西,低功耗蓝牙是从蓝牙4.0后发展而来的,简称为BLE。在平常使用中,像听音乐(A2DP)打电话(HFP)这种对功耗要求较高的服务都在经典蓝牙中,像GATT这种服务,一般应用在低功耗设备中。GAPGeneric Access Profile(通用访问规范),用于提供蓝牙设备的通用访问功能
fifo在很多场景下都能用到,例如在串口中断中来不及接受数据,可以将数据先缓存起来,在线程中再进行处理fifo也可以称为环形队列,填入数据时在头部填入,取数据从尾部取出FIFO.c#include "fifo.h" #include "stdio.h" void fifo_init(fifo_t *obj, uint8_t *data_buffer, uin