FreeRTOS 项目剖析 FreeRTOS 应用程序与非 RTOS 应用程序的启动和执行方式并无二致, 如果调用的话,另当别论。vTaskStartScheduler() 通常从应用程序的 main() 函数调用。RTOS 仅控制 调用 vTaskStartScheduler() 后的执行顺序。我们您确保代码在选择的目标上正确执行 (正确的启动代码、正确的链接器配置等), 然后再开始尝试使用 RTOS 功能。
关于RTOS基础知识-FreeRTOS 如果存在多个能够运行的同等最高优先级任务(既没有延迟也没有阻塞),则调度策略可以选择在这些任务之间“公平”地分配处理时间。如果任务 B 取代任务 A 成为当前执行的任务 (即任务 A 暂停,任务 B 恢复),我们就可以称任务 A “换出”,任务 B “换入”。是操作系统的核心组件。这种基本形式的实时调度并非万能,无法改变时间的快慢,应用程序编写者必须确保设定的时序约束在所选任务优先级安排下是可行的。操作系统内核负责管理这些任务状态和转换, 确保根据调度算法和每个任务的当前状态在给定时间选择适当的任务执行。
CAN总线的位同步详细讲解 (1)CAN总线没有时钟线,总线上的所有设备通过约定波特率的方式确定每一个数据位的时长(2)发送方以约定的位时长每隔固定时间输出一个数据位(3)接收方以约定的位时长每隔固定时间采样总线的电平,输入一个数据位(4)理想状态下,接收方能依次采样到发送方发出的每个数据位,且采样点位于数据位中心附近。
I2C总线的标准收发代码 此处需要注意,发送数据时,无法发送7bit数据,此处发送了7bit地址+1bit读写选择位,即发送7bit+r/w。第八步,发送一个CRC校验码,此CRC校验值为2、4、6步数据产生的校验码。第九步,既可以发送一个应答信号,也可以发送一个无应答信号,均有从机器件产生。第七步,产生一个ACK应答信号,此应答信号为从机器件产生的应答信号。第三步,产生一个ACK应答信号,此应答信号为从机器件产生的应答。第五步,产生一个ACK应答信号,此应答信号为从机器件产生的应答。第六步,发送一个数据,8bit数据。
硬件IIC和软件IIC的比较 软件IIC的实现相对复杂,需要编写复杂的代码,因此在实现IIC通信时,软件IIC通常是在硬件IIC无法满足需求时才采用的方式。,使用CPU的时钟信号来控制数据传输和时序,通信速度较快,可以达到几十MHz的速度。硬件IIC的实现相对简单,无需编写复杂的代码,因此在实现IIC通信时,硬件IIC通常是首选的方式。(2)实现IIC起始信号、停止信号、产生ACK应答、不产生ACK应答、发送数据、接收数据等操作;1、可以实现多路IIC通信,硬件IIC一般只能实现单路通信;2、实现简单,无需编写复杂的代码;
嵌入式C语言面试题笔试题 (1)typedef是用来定义一种数据类型的别名,增强程序的可读性。(2)执行时间不同:typedef是编译过程的一部分,有类型检查的功能。define是宏定义,是预编译的部分,其发生在编译之前。(2)Strlen是求以\0结尾的字符串的实际长度,是一个函数,在运行时才运算出结果,使用strlen求长度时候要进行初始化。Volatile修饰的变量说明该变量的值会随时发生变化的,每次用的时候需要从存储该变量的地址中直接获取。(4)对指针的操作不同:typedef和define定义的指针时有很大的区别。
关于按键消抖方法—软件消抖 设置按键为下降沿触发(由按键的电路决定),因此会在 t1、t2 和 t3 这三个时刻会触发按键中断,每次进入中断处理函数都会重新开器定时器中断,所以会在 t1、t2 和 t3 这三个时刻开器定时器中断。原理:按键采用中断驱动方式,当按键按下以后触发按键中断,在按键中断中开启一个定时器,定时周期为10ms,当定时时间到了以后就会触发定时器中断,最后在定时器中断处理函数中读取按键的值,如果按键值还是按下状态那就表示这是一次有效的按键。(1)延时消抖(延时函数按键消抖)(2)定时器消抖(定时按键消抖)
sizeof和strlen的区别是? 数组-编译时分配的数组空间大小;指针-存储该指针所用的空间大小;类型-该类型所占的空间的大小;对象-对象的实际占用空间大小;函数-函数返回类型所占空间的大小;1、在C语言中,主要的区别在于sizeof是用于计算。,它的参数可以是数组、指针、类型、对象、函数等。3、而sizeof测量的是字符串的分配大小,2、strlen测量的是字符串的实际长度,以‘\0’结束,返回结果不包括‘\0’变量在内存中所占的字节数。
WinBond FLASH W25Qxx存储芯片学习(外挂Flash芯片) static void _norflash_send_addr(u32 addr)//发送地址。static void _norflash_send_write_enable()//写使能。static u32 _norflash_read_id()//读norflash芯片ID。void norflash_enter_4byte_addr()//进入4字节模式。void norflash_exit_4byte_addr()//退出4字节模式。
SPI通信协议 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据,SPI没有定义速度限制,通常能达到甚至超过10M/bps。SPI有主、从两种模式,通常由一个主模块和一个或多个从模块组成(SPI不支持多主机),主模块选择一个从模块进行同步通信,从而完成数据的交换。
UART中的DMA数据处理过程 第一个是DMA通道的传输方向(DMA CHANNEL DIR PERI2MEM意味着DMA将从外设读取数据到内存)(DMA_CHANNEL_DIR_MEM2PERI意味着DMA将内存读取数据到外设)(DMA_CHANNEL_DIR_MEM2MEM意味着DMA将一个内存模块数据读取到另一个内存模块)当工作在循环模式,DMA搬运了设定长度的数据后,CNDTR清0,会产生中断标志,如果再有数据,DMA会循环保存到内存中,覆盖前面的数据。(4)当从DMA控制器得到应答信号时,外设立即释放它的请求。
HDMI ARC功能详解及应用介绍 (2)在TV这种有多个HDMI通道的情况下,有时会在多个HDMI通道进行切换,切换后HDMI通道应当先初始化,即先把Hotplug拉低,通知HDMI source device之前所用的EDID已经改变,需要重新读取,那么source device在Hotplug被拉高的时候会去读取新的EDID,但是拉低这个过程至少需要100ms,否则source device有可能不会去读取新的EDID,从而输出DVI信号。通道1上传输的数据为:G分量的视频数据,控制信号CTL0和CTL1、辅助信号(音频数据)
ACPWorkbench_for_BP10 ADC支持9种采样率:8000Hz、11025Hz、12000Hz、16000Hz、22050Hz、24000Hz、32000Hz、44100Hz 以及 48000Hz。选择5种MCLK源时, 模块内部的MCLK源无效。I2S 采样率支持:8K,11.025K,12K,16K, 22.05K, 24K, 32K, 44.1K, 48K, 88.2K, 96K, 176.4K 和 192K。DAC采样率支持:8K,11.025K,12K,16K,22.05K, 24K, 32K, 44.1K和48K。
DMA的传输方式以及传输模式 DMA的作用就是实现数据的直接传输,而去掉了传统数据传输需要CPU寄存器参与的环节,主要涉及四种情况的数据传输,但本质上是一样的,都是从内存的某一区域传输到内存的另一区域(外设的数据寄存器本质上就是内存的一个存储单元)。结束后, DMA 控制器归还总线控制权,CPU 再重新判断下一个总线周期的总线控制权是 CPU 保留,还是继续响应一次新的 DMA 请求。DMA 请求获得批准后,DMA 控制器掌管总线控制权,连续占用若干个总线周期,进行成组连续的批量传送,直到批量传送结束,才将总线的控制权交还给 CPU。
GPIO的输出模式 例如在使用MCU自带的IIC模块时,就要求配置想要的管脚为开漏输出模式, 多个开漏输出被接在了同一个线上,下图中如果其中的某个引脚的漏极为低电平,则整个总线上都是低电平,这是“因为外接电源的方式,从MCU的角度来说,减轻了MCU的负担。开漏的线与特性:当多个开漏输出链接到一起,当它们全部都输出高电平时,总线上才是高电平,但凡有一个开漏输出引脚上是低电平,总线就会被拉低。,在设计电路时不论是单片机还是外设芯片或是负载,每个个体的逻辑电平可能是不一样的,这种情况时就需要作电平的匹配,就用到了开漏输出模式。
关于杰理的USB Mass Storage Class类 关于USB Mass Storage Class类,定义了static const u8 SCSIInquiryData[] = {}是设备名字,设备名字由三部分组成:CPU_NAME + “UDISK”+ “USB Device” 运用了产品标识star开始的,因为是USB设备所以Production Identification 是USB Device。设备描述符和设备接口描述符、配置描述符的定义。
USB设备的音频类UAC 根据interface的class和subclass值可以区分interface类型,比如video的class值是14,audio的class值是1等,根据这个可以识别复合设备的interface。每个endpoint存在不同的数据格式,比如我在项目中使用的多个usb麦克风,有的MIC每个endpoint对应一种格式,比如双通道/16位/48KHZ。但也有一个endpoint对应多种格式的。UAC(USB Audio Class)是USB设备的音频类,它定义了USB音频设备与主机计算机通信的方式。
EQ每个频段的解析 它通过对不同频率范围的声音进行增益或者是衰减来改变声音的音色,EQ通常分为多个频段,每个频段复制控制特定的频率范围。(1)、补偿扬声器或耳机的声音特性:不同的扬声器或耳机对不同频率的声音有不同的响应, EQ 可以用来补偿这些差异,使声音更加平直。(3)、营造特定音色:EQ 可以用来营造各种不同的音色,例如温暖的、明亮的、厚重的等等。150Hz-250Hz(中低音区)的频率范围影响声音的力度感,尤其是在男声中表现明显。500Hz-2kHz (中频)的频率范围影响声音的力度感,尤其是在乐器中表现明显。