自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 ISP用到的一些名词简介

这里主要记录一下在学习ISP时遇到的一些名词。

2024-12-18 15:48:10 1123

原创 以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

原创 CAN-FD是怎么提高通信速率的?

CAN-FD就在这种需求下产生了,CAN-FD保持了物理层不变,对数据链路层协议进行了升级

2024-09-03 15:54:37 1321

原创 CAN总线数据帧的帧结构

数据帧的帧结构是由7个不同的位场构成,它们分别是帧起始、仲裁场、控制场、数据场、CRC场、ACK场和帧结束。

2024-09-03 15:42:11 1842 1

原创 LVDS与SerDes到底是什么关系?

LVDS是早期最常用的高速硬线接口,SerDes是高速串行通信的架构协议。

2024-09-03 15:05:01 2272

原创 MIPI(Mobile Industry Processor Interface)

MIPI是指Mobile Industry Processor Interface,移动产业处理器接口,MIPI包含了多种接口,比如DSI显示屏接口、CSI摄像头接口、I3C、RFFE射频前端控制接口和SPMI系统电源管理接口。

2024-09-03 14:30:26 2788

原创 POPEN()和FGETS()函数

`popen`和`fgets`都是在 C 语言编程中常用的函数,它们在不同方面发挥着重要作用。

2024-08-26 11:40:34 409

原创 popen和fgets函数

`popen`和`fgets`都是在 C 语言编程中常用的函数,它们在不同方面发挥着重要作用。

2024-08-26 11:39:21 438

原创 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

原创 /dev/sda /dev/sda1 /dev/sdb 详细讲解

/dev/sda /dev/sda1 /dev/sdb 详细讲解

2024-07-29 14:58:53 2364

原创 对于RAM和ROM的认识

对于RAM和ROM的认识

2024-07-26 14:30:01 942

原创 stm32入门GPIO初始化

stm32入门GPIO初始化

2024-07-26 11:53:23 293

原创 设备树简介

节点 soc 定义的 ranges 属性,值为 <0x0 0xe0000000 0x00100000>,此属性值指定了一个 1024KB(0x00100000) 的地址范围,子地址空间的物理起始地址为 0x0,父地址空间的物理起始地址为 0xe0000000。name 属性值为字符串, name 属性用于记录节点名字, name 属性已经被弃用,不推荐使用name 属性,一些老的设备树文件可能会使用此属性。子地址空间的长度,由父节点的 #size-cells 确定此地址长度所占用的字长。

2024-07-19 16:24:29 1060 1

原创 spi通信

spi通信

2024-07-19 13:36:00 900

原创 BSP工程师

一个嵌入式系统光有电路板是不够的,还要有对应的软件支持,软件开发的前提是首先使板子正常稳定的工作,然后再在其上编写对应的应用软件以实现其特有的功能。通俗的讲,嵌入式系统就是一种具有专一功能的计算机系统。上个阶段中,板子的CPU和基本的器件已经能正常工作,这个阶段中将使能所有的外设,并为后面要开发的应用程序提供对应的软件控制接口。BSP工程师需要结合硬件原理图修改从芯片厂商拿到的参考代码,调试板子,使板子上的操作系统能够正常稳定工作,从而提供一个稳定的开发调试环境,这个过程叫做点亮板子,行话叫做。

2024-05-27 09:28:15 330

原创 获取并判断代码段执行时间getTickCountMs()

【代码】获取并判断代码段执行时间。

2024-05-27 09:12:16 140

原创 Linux线程

LWP是轻量级进程,在Linux下进程是资源分配的基本单位,线程是cpu调度的基本单位,而线程使用进程pcb描述实现,操作系统在创建线程时给每个线程都创建一个pcb结构体,并且同一个进程中的所有pcb共用同一个虚拟地址空间,因此相较于传统进程更加的轻量化有了更多执行流之后。

2024-05-27 09:09:10 657

原创 open()\fork()和flock()

open()函数、flock()函数、fork()函数

2024-05-16 09:02:24 577

转载 嵌入式系统中常用文件系统包括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

原创 linux进程间通信----消息队列

消息队列是linux的一种通信机制,这种通信机制传递的数据具有某种结构,而不是简单的字节流。

2024-04-08 10:19:59 742 1

原创 智能节能风扇项目回顾

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

原创 水云天气APP项目回顾

大学期间一个简单的Android开发,以此来对整个Android开发过程知识点回顾

2023-04-02 11:31:55 221

原创 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关注的人

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