自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 07.多线程的概述

进程--是我们程序的执行实例,进程在执行的时候,真正执行的就是进程中的线程,进程只是提供了线程执行的资源(PCB)。---进程包含线程进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。例如:进程---老板---》分配工作,分配资源的。

2024-03-17 19:25:20 942

原创 06.共享内存

内存映射(Memory Mapping)是一种在计算机科学中使用的技术,它允许将文件或其他设备的内容映射到进程的地址空间中,使得进程可以像访问内存一样访问这些内容。内存映射可以提供一种方便的方式来处理大文件或设备的数据,同时也可以加速数据的读取和写入操作。

2024-03-17 18:02:51 806

原创 05.消息队列

消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。消息队列---缓存区,用于保存有效数据。

2024-03-15 20:42:10 864

原创 04.管道

进程之间都是独立的,但是他们在内核态都是相同的,用户态(也就是下图中用户空间--进程控制块)类似于fork函数,创建一个子进程,子进程是对父进程的复制,不同的进程--不同用户---给每一个用户起一个唯一的名字。也可以理解为,fd[0]和fd[1]就是管道的两个端。使新的文件描述符也标识旧的文件描述符所标识的文件。管道中一直写数据,不去读,在溢出的时候,将会阻塞。不同的Ubuntu系统,管道的大小可能是不一样。建议:发送数据和接受数据使用不同的进程实现。管道是一个内核中文件,大小是多少?

2024-03-15 20:32:58 320

原创 03.信号

功能:注册信号处理函数(不可用于 SIGKILL、SIGSTOP 信号),即确定收到信号后处理函数的入口地址。此函数不会阻塞。参数:signum:信号的编号,这里可以填数字编号,也可以填信号的宏定义,可以通过命令 kill - l("l"为字母)进行相应查看。handler : 取值有 3 种情况:SIG_IGN:忽略该信号SIG_DFL:执行系统默认动作信号处理函数名:自定义信号处理函数,如:func//新建进程while(1)sleep(1);return 0;

2024-03-08 21:33:57 839 1

原创 02.进程的基础

简而言之,进程组是组织相关进程的一种方式,而会话是管理用户登录及其所启动进程组的更高级抽象。总之,孤儿进程可能导致资源浪费和进程状态追踪问题,但由于系统的处理机制,孤儿进程通常不会引发严重的问题。在Unix-like操作系统中,孤儿进程会被特殊的init进程(进程ID为1)接管,init进程会定期检查并回收这些孤儿进程。进程组和会话的概念在多进程编程和作业控制等领域有着广泛的应用,可以通过管理进程组和会话来实现对进程的控制和协调。进程组和会话都是用于管理和组织进程的概念,但它们在层级和作用上有所区别。

2024-03-08 20:08:33 876

原创 08.设备树

Device Tree 是一种描述硬件的数据结构, 由一系列被命名的节点(node) 和属性(property) 组成, 而节点本身可包含子节点。所谓属性, 其实就是成对出现的 name 和 value。在 Device Tree 中, 可描述的信息包括: CPU 的数量和类别, 内存基地址和大小, 总线和桥, 外设连接,中断控制器和中断使用情况, GPIO 控制器和 GPIO 使用情况, Clock 控制器和 Clock 使用情况。

2024-03-07 21:53:35 1731

原创 01.系统调用

当文件存在时使用:当文件不存在时使用:参数:pathname:文件的路径及文件名。flags: open 函数的行为标志。mode:文件权限(可读、可写、可执行)的设置。返回值:成功返回打开的文件描述符。失败返回-1,可以利用 perror 去查看原因。在我们之前学习C语言的时候会使用到文件操作中的fopen函数fopen函数和open函数之间的联系???

2024-03-06 13:44:53 909

原创 06.杂项设备

杂项设备是属于字符设备的,由于linux 驱动倾向于分层设计, 所以每个具体的设备都可以找到它归属的类型, 从而可以套到它相应的架构里面去, 我们只需要实现它最底层的那部分。但是也有部分字符设备, 确实不知道它属于哪种类型, 我们一般推荐大家采用miscdevice 的框架结构。misc 的意思是混合的杂项的,所以 misc设备驱动也叫做杂项设备驱动, 当我们板子上的某个设备没有办法分类时, 就可以用 misc 设备驱动。它的注册跟使用比较的简单,所以比较适用于功能简单的设备。

2024-03-05 19:46:23 930

原创 07.DMA传输

2.ADC--在有多个通道需要传输的时候,比如 检测电阻 检测光照,检测电压,使用多通道,但是多个通道的数据会汇总到一个DR寄存器中,DMA就可以解决多通道传输的问题,DMA中可以开辟缓存区,用于保存数据。直接内存访问(DMA,Direct Memory Access)是一些计算机总线架构提供的功能,它能使数据从附加设备(如磁盘驱动器)直接发送到计算机主板上的内存,不需要CPU干预。在所有电子设备,主要有处理器的,我们大家关注的最重要的一方面就是设备运行的流畅度,也就是数据的处理能力。

2024-03-05 09:31:06 891

原创 02.bootload启动

U-Boot(Universal Boot Loader),是一个遵循 GPL 协议的开源软件, 也是一个广泛使用的 Bootloader。

2024-03-02 10:13:09 811

原创 09.stm32CubeMx使用

1.LED灯 按键 蜂鸣器(无缘) 2.串口通信 串口通信 +中断 3.定时器配置 定时器+PWM波+中断 4.ADC配置 5.DMA配置 6.看门狗配置。//翻转 HAL_Delay(1000);以上内容基本就是我们需要创建工程中所需的全部内容了。使用CubeMx对我们之前写的代码进行重新配置。

2024-02-27 13:43:56 323

原创 05、ADC模数转换

通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。ADC使用若干个ADC_CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位更改。AD转换的精度和转换时间有关系的,如果频率过高,会导致转换时间太短,精度降低了。连续转换:在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。AD转换中的校准不是必须的,校准会增加数据的准确度。

2024-02-24 20:39:04 1000

原创 04、定时器

//tim--500 void delay_us(u32 tim) { //假如此刻进入延时函数systick_count==1000,但是在终端服务函数中 //systick_count会一直进行工作--累加,因此我们需要保存systick_count //当前数值 u32 val=systick_count+tim;通用定时器既可以实现简单的延时,但是一般我们用通用定时器都会使用到通用定时器的输出比较和输入捕获功能,我们今天主要讨论的是输出比较功能。功能简单,只是实现了延时,定时的功能。

2024-02-24 19:58:08 803

原创 11.SPI通信方式

我们来关注 SCK 的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。根据以上分析,一个完整的传送周期是 16 位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个 8 位时钟周期才把数据读回来。

2024-02-24 14:44:03 1144

原创 02.串口通信

例如,在一个局域网上使用具有半双工传输的技术,一个工作站可以在线上发送数据,然后立即在线上接收数据,这些数据来自数据刚刚传输的方向。串口(串行通信接口)是一种通信方式,用于传输数据的,串行数据传输,指的是数据按位传输--传输慢,距离相对较远(15米左右)并口(并行通信接口)也是一种通信方式,比如屏幕8080接口 6800接口,这些都是并口,一次传输多位--传输快,距离近。全双工通信又称为双向同时通信,即通信的双方可以同时发送和接收信息的信息交互方式。硬件接口规定了底层的电气特性,线缆,传输距离,通信速率。

2024-02-23 20:05:51 846

原创 MCU看门狗

造成各种寄存器和内部的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,导致整个系统陷入停滞状态,发生不可预料的后果。看门狗就会从1000从上而下计数,0--1000中间没有喂狗,那么计数器数到0,那么就会复位,如果0--1000范围内喂狗,那么就代表程序正常执行,不会复位。输出端:连接复位电路,一旦计数器从最大值计数到0,还没有喂狗,就直接复位。

2024-02-19 19:23:44 1022

原创 嵌入式中断概念

中断是一种硬件处理机制--只要配好中断的触发事件,那么接下来不用软件轮询去查看,一切交给cpu去处理。中断事件(触发事件/中断源):触发中断的一个标志(事件--ST规定的)入栈:当事件触发之后,需要将原来的代码以及临时变量进行保存,保存在栈区;中断服务函数:中断发生之后,我们需要去处理的事情都在此函数中进行,尽量避免大量的延时函数,不能有while(1)死循环出栈:将中断触发的时候,保存的主函数代码及临时变量取出来,继续执行。

2024-02-01 20:50:16 822

原创 2021-05-06

IDEA包名的更改1、search in comments and strings 中译:在注释和字符串中搜索2、search for text occurrences 中译:搜索出现的文本如果针对个别文件,两个都不选,全局的话可以选第二个...

2021-05-06 15:51:37 70

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除