自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 H.264、H.265、MJPEG有什么区别

总的来说,H264、H265和MJPEG各有其特点和应用场景。H264适用于大多数高清视频应用,而H265则更适合于超高清视频的传输和存储。MJPEG通常用于需要高质量视频的应用,但其压缩效率较低。H264、H265和MJPEG都是视频压缩技术,它们的主要区别在于压缩效率和视频质量。

2024-01-02 18:03:34 1275

原创 I2C、UART、ADC、PWM、SPI常用接口概念

1、I2C(Inter-Integrated Circuit):基本概念:I2C是一种同步、双向、半双工的两线式串行接口总线。它最早由Philips半导体公司于20世纪80年代研发面市,主要用于微处理器/微控制器系统与电视机外围芯片之间的连接。 数据格式:I2C总线由两条总线组成,串行时钟线SCL和串行数据线SDA。SCL线负责产生同步时钟脉冲,SDA线负责在设备间传输串行数据。 数据发送和接收方式:在I2C总线上,任何设备都可以作为主设备或从设备。主设备负责控制通信,通过对数据传输进行初始化/终

2023-10-25 09:42:53 1359

原创 CMake工程构建详解

CMake: 使用简单方便,可以跨平台,构建项目编译环境。比直接写Makefile简单(在构建大型工程编译时,需要写大量的文件依赖关系),可以通过简单的CMake配置生成负责的本地Makefile文件,一个命令便将我们项目想编译的可执行文件、静态库、动态库都编译出来了。而且配置文件可以直接拿到其它平台上使用,无需修改,非常方便。1、:通过 project() 指定项目名称;2、:工程的根目录;3、:执行 cmake 命令的目录;4、:当前 CMakeList.txt 文件所在的目录;

2023-08-21 17:25:22 1391

原创 解决 ./mkfs.jffs2: not found 问题

在Ubuntu命令窗口输入以下命令,下载所需要的环境和库。

2023-08-02 19:56:44 633

原创 解决 Linux /dev/mapper/ubuntu--vg-ubuntu--lv 磁盘空间不足的问题

Free PE / Size 3839 / <15.00 GiB,这是还可以扩充的大小。虚拟机根目录空间只有3.9G,使用了93%。

2023-07-24 09:38:27 2193

原创 GDB工具的简单使用

设置断点:开发人员可以在代码中设置断点,指示程序在特定位置停止执行。这样,您可以逐行检查代码,观察变量的值和程序的状态。对于更复杂的调试需求,您可以查阅GDB的文档或参考相关的教程来学习更多高级调试技巧和命令。变量和内存检查:您可以检查程序中的变量的当前值,并且还可以检查和修改程序使用的内存区域,以帮助调试。回溯和堆栈跟踪:当程序发生崩溃或异常终止时,GDB可以提供有关程序崩溃发生位置和相关调用堆栈的信息。5、调试和观察程序状态:一旦程序停止在断点处,您可以使用各种GDB命令来观察和调试程序。

2023-07-03 09:17:39 215

原创 虚拟机不能上网,ifconfig显示只有lo

3、查询结果显示系统中存在ens33和ens37网卡;解决方法就是要启动ens33网卡,并配置其IP地址等信息。4、执行上述操作(ens37一样步骤),再查看ifconfig,显示网卡已启动成功。1、开启虚拟机后无法上网,ifconfig查询发现只有本地环回网口。2、使用 ifconfig -a 命令查三腊鉴看是否存在网卡。5、 使用 ping 命令验证,显示网络已能联通。

2023-06-28 09:00:58 853

原创 路由器、交换机和wifi的区别

MAC地址的格式通常采用6组由冒号或破折号分隔的十六进制数,例如:01:23:45:67:89:AB。需要注意的是,MAC地址只在局域网范围内有效,不同的局域网之间无法直接使用MAC地址进行通信,而是需要通过路由器等设备进行转发和跨网络通信。当数据在局域网上进行传输时,发送方会将数据包的目标MAC地址设置为接收方的MAC地址,目标设备根据自己的MAC地址来识别并接收数据包。综上所述,路由器、交换机和Wi-Fi是网络中常见的设备,它们在功能、范围、数据转发方式、连接方式和使用场景等方面存在差异。

2023-06-28 08:28:26 1220

原创 数据结构类型有哪些

这些数据结构类型之间的区别在于存储方式、操作特性和适用场景。根据具体的需求和数据特征,选择合适的数据结构可以提高算法效率和程序性能。

2023-06-27 14:55:25 243

原创 数字结构中链表、二分查找、二叉树、排序的区别

综上所述,链表、二分查找、二叉树和排序是数字结构中的不同概念,它们具有不同的存储方式、操作复杂度和使用场景。选择使用哪种数据结构或算法取决于具体的问题需求和数据特征。

2023-06-27 14:54:08 329

原创 位图和矢量图的区别

综上所述,位图适用于表达真实场景和细节丰富的图像,而矢量图适用于需要无损缩放和编辑的图像。选择使用哪种图像格式取决于具体的应用需求和使用场景。位图(Bitmap)和矢量图(Vector)是两种常见的图像表示方法,它们有一些明显的区别。

2023-06-27 14:02:12 1768

原创 onvif协议、RTP、RTCP、SDP、RTSP的简介

需要注意的是,RTSP本身只负责媒体流的控制和管理,并不涉及实际的媒体数据传输。因此,在实际应用中,RTSP通常与RTP协议一起使用,以实现完整的实时流媒体传输系统。RTSP是一个应用层协议,旨在支持音频、视频等多媒体数据的传输和流媒体服务器的控制。它降低了不同品牌设备之间的集成难度,使得用户能够在一个统一的环境中管理和控制多个设备,从而提高了网络视频系统的互操作性和扩展性。需要注意的是,ONVIF协议不仅仅适用于嵌入式系统,还广泛应用于各种网络视频监控系统和设备,包括安防系统、智能家居系统、远程监控等。

2023-06-27 08:48:45 4605

原创 嵌入式系统网络socket套接字经常使用的网络通信协议?

它提供可靠的、面向连接的通信,并确保数据按照正确的顺序和不丢失地传输。TCP/IP协议适用于对数据传输的可靠性和顺序有要求的场景,例如网页浏览、文件传输等。HTTP协议:HTTP(Hypertext Transfer Protocol)是一种基于TCP/IP的应用层协议,用于传输超文本数据,即网页数据。它适用于资源有限的嵌入式设备和传感器之间的通信,并具有低功耗和带宽效率高的特点。TCP/IP和UDP协议是最常见和通用的选择,HTTP协议适用于Web数据交互,而MQTT协议则适合物联网领域的通信需求。

2023-06-27 08:42:06 484

原创 mqtt协议的简单实用实例

在这个例子中,我们使用mosquitto库来实现MQTT协议的功能。然后,我们设置连接回调函数和消息回调函数,以便在连接建立和收到消息时进行相应的处理。接下来,我们尝试连接到MQTT代理,并订阅名为"topic/example"的主题。在连接成功后,我们启动MQTT循环以保持与代理的通信。请注意,上述代码仅作为简单示例,并且假设本地有一个名为"localhost"的MQTT代理运行在默认端口1883上。同时,确保已经在系统中安装了Mosquitto库,并在编译时链接正确的库文件。

2023-06-27 08:39:32 438

原创 Linux的字符设备、块设备、网络设备的区别

这些设备类型在Linux内核中有相应的驱动程序来管理和控制。每种类型的设备都有不同的特点和操作方式,因此在编程和配置设备时需要了解其差异。在Linux系统中,有三种主要类型的设备:字符设备、块设备和网络设备。它们在数据处理和访问模式上存在一些区别。在网络设备编程中,通常使用套接字(Socket) API来实现网络通信。仍然是有效的,但更常见的是使用文件系统接口(如。在字符设备上进行读取和写入时,可以使用。

2023-06-27 08:39:25 463

原创 Linux内核工作原理与进程管理

它将文件和目录组织为层次结构,并提供了对文件的打开、关闭、读取、写入和删除等操作。系统调用是用户程序与内核之间的接口,用于请求内核执行特权操作,如文件操作、进程管理、网络通信等。当硬件设备发生中断时,内核会根据设备的中断号调用相应的中断处理程序。它提供了与设备进行通信的接口,并处理设备的初始化、配置和控制。内核将设备抽象为字符设备、块设备和网络设备,并通过相应的驱动程序与它们进行交互。总体而言,Linux内核以模块化的方式组织,并通过系统调用、中断处理和设备驱动程序等机制提供系统功能和管理硬件资源。

2023-06-27 08:38:24 315

原创 Linux操作系统命令 mkdosfs 的使用

文件系统性能:FAT12 比 FAT16 和 FAT32 更为低效,因为每个簇只包含 512 个字节,而簇的数量更多,读写速度较慢。FAT32 的簇更大,可降低存储空间,但在寻找下一个空闲簇的过程中,需要访问比较多的项目来查找下一个可用簇,因此,其性能较差。文件名长度:在 FAT12 和 FAT16 中,文件名最长为 8 个字符加扩展名 3 个字符,而在 FAT32 中,文件名支持长达 255 个字符。因此,在使用此命令时,请务必确认指定的设备和选项无误,以免造成不可挽回的数据损失。

2023-06-15 08:38:00 604

原创 c语言中,堆、栈、队列有什么区别

在 C 语言中,堆、栈、队列是三种不同的数据结构,它们的本质和特点各不相同。

2023-06-12 16:04:27 256

原创 如何删除ubuntu中多余的内核镜像

ubuntu用久了以后发现由于内核不断的更新导致grub启动列表的内容越来越多,看着不顺眼,其次,每个内核在硬盘上都要占据100M左右的空间,想着都不爽,我看还是删掉一些把,反正我只能用一个内核,其他的也没有存在价值。那就用如下的命令去删除不要的内核吧。3.用以下命令一个个删除你不要的内核镜像。1.查看当前正在使用的内核版本号。2.列出系统中的所有已安装内核。

2023-06-05 10:34:27 566

原创 ubuntu修改启动项等待时间、启动项顺序、启动内核

ubuntu20.04默认是5.15.0-73内核版本,如果你后面升级了,想回到5.15.0-73版本,那就把下面画。2.把需要的内核版本移动到下图中圈红框的地方下面,也就是 export linux_gfx_mode 下面。背景:原先的电脑只有windows系统,后来加装了ubuntu系统,默认启动Ubuntu系统。grub.cfg是grub启动文件,会按照顺序来决定进入哪个内核,所以排在前面的优先进入。3.常见的双系统,windows都排在第三位,将此处的0改为2,保存即可。4.重启电脑,将生效。

2023-06-05 10:28:39 3946

原创 在嵌入式系统中,ddr是什么

在嵌入式系统中,DDR是指“双倍数据率”(Double Data Rate)SDRAM存储器类型,是一种高速、大容量的内存设备。与传统的SDRAM相比,DDR可以在一个时钟周期内传输两个数据,因此能够提供更高的带宽。由于DDR SDRAM具有上述优势,因此被广泛应用于各类嵌入式系统中,如智能手机、计算机、数字电视、游戏机等,以满足高速、大容量、低功耗等需求。

2023-06-01 11:06:15 363

原创 在嵌入式系统中,NAND、NOR有什么区别

NAND Flash 的读写速度快、价格低廉、擦写次数较多,但不支持随机读取,需要通过页读或连续读来访问数据,因此适合于媒体文件、大型数据存储等应用。:NOR Flash 是一种低容量、快速读写的存储器,读取速度比 NAND 快,并且支持随机读取。NOR Flash因其快速读取和支持随机读取而受到嵌入式系统开发者的青睐,但也由于容量小、价格昂贵、写入速度较慢等缺点而逐渐被替代。在嵌入式系统中,NAND和NOR均为Flash存储器类型,它们的主要区别在于读写特性、容量、成本、使用场景等方面。

2023-06-01 11:02:21 1648

原创 在嵌入式系统中,Flash、RAM、ROM有什么区别

ROM存储器是只读存储器,它的内容在出厂时就已经被编程,不可修改。ROM的主要优点是读写速度快、容量大、可靠性高,但不支持擦写和编程,因此无法更新里面的内容。RAM的主要优点是读写速度快、可读写次数无限制,但容量相对较小,而且价格较为昂贵。总的来说,Flash、RAM和ROM在嵌入式系统中各有特点,在应用中需要根据实际需求选择最合适的存储器类型。在嵌入式系统中,Flash、RAM和ROM都是存储器类型,它们的主要区别在于其读写特性、容量和成本等方面。

2023-06-01 11:00:33 1439

原创 uboot启动流程分析

在加载内核镜像时,U-Boot还需要设置一些内核启动参数,例如内核映像的地址、大小、命令行参数、启动模式等。总的来说,U-Boot通过4个阶段的启动流程,完成了硬件环境的初始化、内核镜像的加载和启动等任务。设备初始化:接下来,U-Boot会对系统中的各种外设进行初始化,例如串口、网卡、SD卡、NAND闪存、SPI闪存等。启动内核:最后,U-Boot会将控制权转交给内核,由内核接管系统的运行。此时,U-Boot的使命已经完成,它将退出并释放RAM资源,以便内核获得更多的可用空间。

2023-06-01 10:56:43 223

原创 编写Makefile将一个目录下的所有 .c 文件编译成可执行文件

【代码】编写Makefile将一个目录下的所有 .c 文件编译成可执行文件。

2023-06-01 10:44:01 968 1

原创 编写Makefile将各个目录下的.c文件编译成各自的可执行文件

下面是一个示例 Makefile,假设每个目录都有一个以。

2023-06-01 10:40:03 1037 1

原创 编写Makefile将各个目录下的.c文件编译成各自的.o文件

下面是一个示例 Makefile,假设每个目录都有一个以。结尾的源文件需要被编译成对应的。

2023-06-01 10:35:09 2362 1

原创 Ubuntu 升级cmake 版本

比较简单的方法是下载 cmake 压缩包,直接建立。如果想要切换回低版本,重新做一下软链接就可以了。

2023-03-18 09:07:38 1431

原创 ubuntu开机停留在(initramfs)页面

偶然发现Ubuntu开机停留在(initramfs)页面,是因为文件系统出现了问题。我尝试了下面的步骤之后,问题就解决了。等待FIEL SYSTEM WAS MODIFIED 出现后开始第二步。第一步:在(initramfs)后面输入。第二步:在(initramfs)后面输入。稍等片刻,就可以正常启动Ubuntu了。

2023-03-18 08:32:01 5345 1

原创 GCC编译的四个过程详解

(7)生成(.i)临时文件(包括去注释、宏替换、头文件展开、条件编译),编译生成的文件不包含任何宏定义,因为宏已经被展开,并且包含的文件已经被插入到.i文件中。(2)处理所有的条件编译(预编译)指令,#ifdef #ifndef #endif等,就是带#的那些。(3)处理#include预编译指令,将#include指向的文件插入到该行处(预编译指令的位置)。(5)添加行号和文件标示,这样的在调试和编译出错的时候才知道是是哪个文件的哪一行,便于调试。(1)将所有的#define删除,并展开所有的宏定义。

2023-03-18 08:20:40 145

原创 LinuxIPC通信-共享内存通信原理

这种最大限度的自由也给共享内存带来了缺点:内核并不提供任何对共享内存访问的同步机制,比如 同时对共享内存的相同地址进行写操作,则后写的数据会覆盖之前的数据。创建共享内存空间后,内核将不同进程虚拟地址的映射到同一个页面:所以在不同进程中,对共享内存所在的内存地址的访问最终都被映射到同一页面。由于所有进程对共享内存的访问就和访问自己的内存空间一样,而不需要进行额外系统调用或内核操作,同时还避免了多余的内存拷贝,所以,这种方式是效率最高、速度最快的进程间通信方式。两种管道的生命周期是随进程,剩下的都是随内核的。

2023-03-05 11:42:25 221

原创 VMware三种网络连接模式

安装好VMware Workstations之后,会在网络设置中看到软件安装的两个虚拟网卡,在软件菜单栏打开“编辑”->”虚拟网络编辑器”中可以看到软件自带的三种网络连接模式VMnet0、VMnet1和VMnet8,也称为桥接模式、仅主机模式和NAT模式。window下只能看到VMnet1、VMnet8VMware下能看到VMnet0、VMnet1和VMnet8。虚拟接关机状态时,可以设置虚拟机的网络连接方式。

2023-02-22 10:38:42 960

原创 Ubuntu 发行版本与内核对应关系

Ubuntu 发布版本的官方名称是 Ubuntu X.YY ,其中 X 表示年份(减去2000),YY 表示发布的月份。Ubuntu 没有像其它软件一样有 1.0 版本,是因为其第一个版本是发布于 2004 年。所以Ubuntu的生日是10月20日。每两年的 4 月份,都会推出一个长期支持版本(LTS),其支持期长达五年,而非 LTS 版本的支持期通常只有半年或9个月。

2023-02-22 10:01:23 1752

原创 Linux安装samba

Linux下samba的安装与window的网络驱动器的映射

2022-12-12 09:45:13 3743

原创 Linux操作系统烧录中四步的内容详解

目录一、首先移植uboot(uboot的一切都是为了启动内核。)1、uboot是什么?2、uboot有什么作用?3、uboot的作用详解4、uboot的工作方式二、其次移植Linux内核1、Linux内核是什么?2、Linux内核里有什么? 三、再编译移植设备树文件1、设备树文件是什么?2、设备树文件有哪些?3、设备树源码文件(.dts)语法介绍4、设备树OF函数 四、最后移植根文件系统(rootfs)1、根文件系统是什么?2、根文件系统为什么这么重要?3、linux文件系统的常用目录

2022-12-06 16:14:28 1494

空空如也

空空如也

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

TA关注的人

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