- 博客(47)
- 收藏
- 关注
原创 进程间通信七:内存映射文件(Memory-mapped Files)
内存映射文件(Memory-mapped Files) 是一种将磁盘上的文件(或其他设备)映射到进程的虚拟内存空间中的技术。通过内存映射,进程可以像访问内存一样直接读取和写入文件的数据,而不需要使用传统的I/O操作(如read、write等)。这使得进程可以高效地进行文件操作,特别是在需要频繁读写大文件或进行进程间通信的场景中。
2025-01-03 14:26:28
1130
原创 进程间通信六:套接字(Socket)
套接字(Socket)是一个抽象的接口,它允许程序通过网络进行通信。套接字提供了一种跨不同计算机或同一计算机上不同进程之间传输数据的机制。通过套接字,应用程序可以发送或接收数据,处理不同协议(如TCP、UDP)的网络通信。
2025-01-03 13:44:26
700
原创 进程间通信五:信号量(Semaphore
信号量(Semaphore) 是一种 进程同步和互斥 的机制,用于控制多个进程对共享资源的访问。信号量通过维护一个计数器来表示当前可用的资源数量,从而控制进程的执行顺序。信号量广泛应用于操作系统中的多进程和多线程同步问题,尤其是在涉及共享资源(如内存、文件、打印机等)的访问时。
2025-01-03 11:36:13
1469
原创 进程间通信四: 共享内存(Shared Memory)
共享内存 是一种高效的进程间通信(IPC)机制,它允许多个进程直接访问同一块物理内存区域。与其他 IPC 机制(如管道、消息队列)相比,共享内存的优势在于 高效性,因为进程之间不需要通过内核中转数据,而是直接操作内存,从而实现更快速的数据交换。
2025-01-03 11:09:45
1124
原创 进程间通信三:信号Signal
信号(Signal) 是一种 进程间通信(IPC)机制,用于通知进程某些特定的事件或情况发生。信号是一种软件中断机制,操作系统可以通过发送信号来中断或控制进程的执行。
2025-01-03 10:57:20
627
原创 进程间通信二:消息队列
消息队列(Message Queue)是一种进程间通信(IPC)机制,用于在不同进程之间传递消息。它允许进程异步地发送和接收数据,支持消息的排序和优先级控制。
2025-01-03 09:44:15
963
原创 进程间通信一(管道通信)
管道(Pipe)是一种经典的进程间通信(IPC)机制,用于在父子进程之间或者兄弟进程之间传递数据。管道提供了一个单向或者双向的数据流通道,允许一个进程写入数据,另一个进程从管道中读取数据。
2025-01-02 17:01:49
870
原创 AES和RSA
对称加密AES: 是当前已知最安全的对称加密算法之一。加密速度快,适合大数据量加密。密钥管理难:密钥泄露会导致数据完全暴露。固定分组大小限制:数据必须是分组大小的整数倍,需填充。非对称加密:RSA 使用一对密钥:公钥(公开)和私钥(保密)。RSA 加密速度较慢,适合加密少量数据(如密钥)。
2024-12-24 11:15:45
1426
原创 以MAX9296A和MAX96717F为例,简介美信的加解串器配置
SERDES是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种主流的时分多路复用(TDM)、点对点(P2P)的串行通信技术。即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,提升信号的传输速度,从而大大降低通信成本。
2024-12-18 10:21:42
3547
原创 数字增益和模拟增益,有什么区别,在调整曝光的时候为什么优先调整模拟增益
如果模拟增益达到上限,才使用数字增益进行后期放大,虽然信噪比会降低,但可以作为补充手段。
2024-11-25 15:56:06
1235
原创 AWK是一种强大的文本处理工具
`awk`是一种强大的文本处理工具,常用于在 Unix/Linux 环境下对文本文件进行数据提取、转换和报告生成等操作。
2024-09-13 14:48:11
366
原创 MIPI(Mobile Industry Processor Interface)
MIPI是指Mobile Industry Processor Interface,移动产业处理器接口,MIPI包含了多种接口,比如DSI显示屏接口、CSI摄像头接口、I3C、RFFE射频前端控制接口和SPMI系统电源管理接口。
2024-09-03 14:30:26
2788
原创 v4l2(video4linux2) yuyv(yuv422)、MJPEG、H.264
V4L2(Video4Linux2)是Linux内核中的视频设备接口框架,专门用于捕获和输出视频数据。V4L2广泛应用于各种视频设备的驱动程序开发,如网络摄像头、电视调谐器、视频采集卡、以及其他视频输入/输出设备。
2024-08-21 15:18:01
602
原创 mmap mode 和USER_PTR mode
mmap模式:由内核负责分配缓冲区并映射到用户空间USER_PTR` 模式:由用户程序负责分配和管理缓冲区
2024-08-21 14:34:31
385
原创 CMA(Contiguous Memory Allocator,连续内存分配器)
在 Linux 内核中,CMA(Contiguous Memory Allocator,连续内存分配器)是一种用于分配物理上连续的内存块的机制。CMA 的主要目标是为需要大块连续内存的设备(例如 DMA 设备)提供内存支持。这在嵌入式系统和设备驱动开发中尤为重要,因为许多硬件设备需要访问物理上连续的内存区域以进行高效的数据传输。
2024-08-02 09:15:56
753
原创 mmap内存映射
内存映射文件访问通过 `mmap` 函数直接将文件内容映射到进程的地址空间,使文件内容可以像访问内存一样被访问,省去了多次系统调用和数据复制的开销。
2024-08-01 11:55:29
1107
原创 VDS(Vehicle Data Stream)协议-CAN-LIN-MOST-FlexRay-Ethernet-OBD-II
VDS(Vehicle Data Stream)协议/CAN/LIN/MOST/FlexRay/Ethernet/OBD-II
2024-07-30 17:19:43
1267
原创 设备树简介
节点 soc 定义的 ranges 属性,值为 <0x0 0xe0000000 0x00100000>,此属性值指定了一个 1024KB(0x00100000) 的地址范围,子地址空间的物理起始地址为 0x0,父地址空间的物理起始地址为 0xe0000000。name 属性值为字符串, name 属性用于记录节点名字, name 属性已经被弃用,不推荐使用name 属性,一些老的设备树文件可能会使用此属性。子地址空间的长度,由父节点的 #size-cells 确定此地址长度所占用的字长。
2024-07-19 16:24:29
1060
1
原创 BSP工程师
一个嵌入式系统光有电路板是不够的,还要有对应的软件支持,软件开发的前提是首先使板子正常稳定的工作,然后再在其上编写对应的应用软件以实现其特有的功能。通俗的讲,嵌入式系统就是一种具有专一功能的计算机系统。上个阶段中,板子的CPU和基本的器件已经能正常工作,这个阶段中将使能所有的外设,并为后面要开发的应用程序提供对应的软件控制接口。BSP工程师需要结合硬件原理图修改从芯片厂商拿到的参考代码,调试板子,使板子上的操作系统能够正常稳定工作,从而提供一个稳定的开发调试环境,这个过程叫做点亮板子,行话叫做。
2024-05-27 09:28:15
330
原创 Linux线程
LWP是轻量级进程,在Linux下进程是资源分配的基本单位,线程是cpu调度的基本单位,而线程使用进程pcb描述实现,操作系统在创建线程时给每个线程都创建一个pcb结构体,并且同一个进程中的所有pcb共用同一个虚拟地址空间,因此相较于传统进程更加的轻量化有了更多执行流之后。
2024-05-27 09:09:10
657
转载 嵌入式系统中常用文件系统包括cramfs、jffs2、NFS、initrd、ext4、squashfs、ubifs等。它们的特点如下:
由此可以看出虽然这样能有效地提高系统的可靠性,但是在一定程度上降低了系统的速度。尤其对于较大的闪存芯片,加载过程会更慢。**
2024-05-06 09:28:36
802
1
原创 freopen()实现标准输入流标准输出流重定向
stdin - "标准输入" stdout - "标准输出" stderr - "标准错误"r -"只读访问" w - "只写访问" a - "追加写入"实现重定向,把与定义的标准流文件定向到由path指定的文件中。标准流文件具体是指 stdin/stdout和stderr。* mode 文件打开的模式。*stream 一个文件,通常使用标准流文件。stdout标准输出流,默认是屏幕。stderr标准错误流,默认是屏幕。stdin标准输入流,默认是键盘。stdio.h或者cstdio。
2024-04-29 14:56:33
475
原创 智能节能风扇项目回顾
STM32F103C8T6是一款基于ARM Cortex-M3内核(ARM公司在ARM11以后改用Cortex命名,并分成A、R和M三类,M系列有M0、M0+、M3、M4、M7)的32位的微控制器,采用LQFP48封装,由意法半导体公司(ST)推出,属于STM32系列(ST公司还有SPC5X系列微控制器)。直流无刷电机调速的原理就是在驱动电机转动的基础上,将驱动电流由PWM信号来控制,改变PWM信号的脉冲宽度,即通过调节MOSFET通断的时间来调节提供给电机三相的电流大小,从而对电机进行调速控制。
2023-04-03 14:36:13
460
1
原创 智慧农业系统项目回顾
数字农业管理系统是提供给农业大棚管理员的,通过传感器获取到的大棚环境状态可视化展示,从而对大棚作物的生长状态进行监控和管理的平台。此系统主要分为两大部分,第一部分是获取大棚中与作物生长环境有关的一系列数据,以及对相应数据进行管理和可视化的监控平台,第二部分是给不同管理员之间提供的相互留言的留言板,以及高级管理者对所有管理员之间留言的查看与删除。使用到的知识BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端选用浏览器(Browse)运行软件。
2023-04-03 10:18:18
788
原创 HASH函数
Hash中文翻译为散列,是一类函数的统称,特点是定义域无限,值域有限。把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数,按这个思想建立的表为散列表。对不同的关键字可能得到同一散列地址,即k1≠k2,而f(k1)=f(k2),这种现象称为碰撞,这时候,就产生了hash冲突。
2023-03-25 15:48:17
145
原创 什么是token
1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。三、使用过程中出现的问题以及解决方案?
2023-03-21 20:20:58
89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人