- 博客(94)
- 收藏
- 关注
原创 FreeRTOS(速记版)
中断是微控制器一个很常见的特性,中断由硬件产生,当中断产生以后 CPU 就会中断当前的流程转而去处理中断服务,Cortex-M 内核的 MCU 提供了一个用于中断管理的嵌套向量中断控制器(NVIC)。Cotex-M3 的 NVIC 最多支持 240 个 IRQ(中断请求)、1 个不可屏蔽中断(NMI)、1 个Systick(滴答定时器)定时器中断和 11个系统异常。Cortex-M 处理器有多个用于管理中断和异常的可编程寄存器,这些寄存器大多数都在NVIC和系统控制块(SCB)中,
2024-09-11 12:11:33 711
原创 嵌入式Linux C应用编程指南-高级I/O(速记版)
阻塞其实就是进入了休眠状态,交出了 CPU 控制权。比如 wait()、pause()、sleep()等函数都会进入阻塞。阻塞式 I/O 顾名思义就是对文件的 I/O 操作(读写操作)是阻塞式的,非阻塞式 I/O 同理就是对文件的 I/O 操作是非阻塞的。普通文件的读写操作是不会阻塞的,不管读写多少个字节数据,read()或 write()一定会在有限的时间内返回,所以普通文件一定是以非阻塞的方式进行 I/O 操作,这是普通文件本质上决定的。
2024-09-01 23:04:15 1152
原创 嵌入式八股文-网络(速记版)
三次握手可以防止已失效的SYN连接请求报文段被送到服务端导致错误连接。一个例子就是客户端发送了一次连接请求,延迟传送到服务端,期间又发送了一次请求并成功连接,如果只两次握手服务端会认为客户端又传来了一个新的连接请求,并重新连接,导致服务器资源浪费。还有就是客户端发送连接请求后就挂掉了,服务端这时建立连接也会浪费资源TCP协议是全双工通信,这意味着客户端和服务器都可以向彼此发送和接收数据,因此关闭连接是双方都需要确认的行为。
2024-08-13 17:50:38 172
原创 STM32标准库-待机模式
STM32待机模式是最低功耗模式,关闭电压调节器,1.8V供电区断电,PLL、HSI、HSE振荡器停止,SRAM和寄存器内容不保,仅备份寄存器和待机电路保持供电。待机时,仅复位、TAMPER(特定配置下)及使能的WK_UP引脚有效,其余IO引脚高阻。可通过设置电源控制寄存器PWR_CR的PDDS位,使CPU进入深度睡眠时进待机模式。唤醒后,除PWR_CSR外所有寄存器复位,执行流程与复位后相同。再次长按则进入待机模式,DS0 关闭。低功耗模式下,电源控制寄存器PWR_CR可设置开/关。
2024-11-05 13:09:54 1103
原创 STM32标准库-DMA实验
DMA控制器支持绕过CPU直接传输数据。STM32一般有DMA1、DMA2两个控制器。DMA支持各种外设、闪存、SRAM作为数据源和数据目标,具体可查表。同时仅一个有效。DMA(直接存储器访问)允许数据在地址空间间高效复制,由DMA控制器执行,无需CPU干预。STM32可配备2个DMA控制器(DMA1有7通道,DMA2有5通道,DMA2仅在大容量产品中存在),各通道管理外设对存储器的访问请求,并通过仲裁器协调优先级,提高CPU效率。字节、半字、全字对齐源和目标地址。
2024-11-05 11:44:01 833
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人