自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解释 Git 的基本概念和使用方式。

仓库(Repository):Git中的基本单位是仓库,它是存储项目源代码和文件的地方。拉取和推送:使用git pull命令将远程仓库中的修改拉取到本地仓库,使用git push命令将本地仓库中的修改推送到远程仓库。拉取(Pull)和推送(Push):拉取是将远程仓库中的修改同步到本地仓库,而推送是将本地仓库中的修改推送到远程仓库。提交修改:使用git commit命令将暂存区的文件提交到仓库中,生成一个新的提交。克隆仓库:使用git clone命令从远程仓库复制一个完整的项目到本地仓库。

2024-08-31 13:52:20 965

原创 iniparser 使用方法介绍

INI(Initialization File)文件是一种简单直观的数据存储格式,常用于配置应用程序的初始化设置。这种文件通常包含若干个节(section)和键值对(key-value pairs)。INI文件的每一部分都是自描述性的,易于阅读和编辑,使得非程序员也能轻易理解并修改配置参数。INI文件因其简单易用性而在许多编程语言中广泛应用,尤其是在Windows操作系统中,很多应用程序都采用INI文件作为配置文件。

2024-08-15 10:56:37 539

原创 如何 让git commit 自动生成 submodules 改动的提交说明?

的改动说明,然后复制添加到提交说明。进入提交说明编辑器进行编辑修改。

2024-08-13 11:31:14 351

原创 UNIX 文件操作,快速的把数据写入SD卡上

因此,良好的编程习惯是在使用完文件后及时关闭它们,以释放资源并确保数据的完整性和系统的稳定性。可以使用编程语言提供的文件操作接口来确保文件在适当的时候被关闭,或者使用类似于 RAII(资源获取即初始化)的技术来在对象生命周期结束时自动释放资源。如果在程序中打开了文件但没有在使用完毕后关闭它,会导致一些潜在的问题,具体取决于操作系统和文件系统的行为,以及程序的执行情况。把生成的图片马上写进sd卡上。

2024-08-09 09:26:26 468

原创 uboot 编译 envtools 获取 fw_printenv 工具

不过默认路径要改一下。中的偏移,要转换为在当前分区的偏移。大小可以查看配置文件中的。分区内的偏移,不是整个。查看环境变量所在的分区。要烧录到板子对应的地址上。使用的文件系统类型为。目录下 后,还需要在。, 会出现如下各种报错。,否则重启就失效了。使用的文件系统类型为。

2024-08-09 09:24:26 581

原创 configure.ac 和 Makefile.am

通过 Autoconf 和 Automake 工具链密切协作,前者负责配置检测和生成配置脚本,后者负责定义构建规则和生成构建文件。这种协作确保了项目在不同系统上的可移植性和一致性。是 Autoconf 的输入文件,用于定义项目的配置脚本。是使用 Autoconf 和 Automake 构建系统时的两个重要文件,它们之间有密切的关系,用于生成可移植的构建脚本和 Makefile。是 Automake 的输入文件,用于定义构建规则和源文件列表。脚本,这个脚本会根据目标系统的特性生成适当的配置文件。

2024-08-08 13:51:09 409

原创 ffmpeg

ffprobeffmpeg和ffplay。

2024-08-08 09:16:10 903 3

原创 编译arm版truetype

然后执行下边命令,使用交叉编译器编译。

2024-08-08 09:12:38 370

原创 NAND 和 NOR 的区别

简单点说,主要的区别就是:1、 NAND 比NOR 便宜;NAND 的容量比NOR 大(指相同成本);NAND 的擦写次数是NOR 的十倍;NAND 的擦除和写入速度比NOR 快,读取速度比NOR 稍慢;2、 NAND 和NOR 的读都可以以字节为单位,但NAND 的写以page 为单位,而NOR 可以随机写每一个字节。NAND 和NOR 的擦除都以block 为单位,但一般NAND 的block 比NOR 的block 小。

2024-08-07 09:18:54 1643

原创 什么是uboot、boot、kernel、rootfs

Bootloader 是系统启动加载器的通称,负责在系统上电或复位时进行硬件初始化并加载操作系统。U-Boot 就是一个具体的 Bootloader 实现。U-Boot(Universal Boot Loader)是一个广泛使用的开源引导程序,主要用于嵌入式系统。它的主要功能是在系统上电或复位时初始化硬件并加载操作系统内核。Kernel(内核)是操作系统的核心组件,负责管理硬件资源、系统调用、进程调度、内存管理、文件系统、网络堆栈等。

2024-08-07 09:17:31 2153

原创 网络调试命令

*注:**当一个设备出现两个网卡的时候,即会有两个网关,数据通信时,就会相互干扰,比如发送网关1的数据可能会被发送到网关2。虚拟网络接口:并非真实存在,并不真实的从外界接受和发送数据包,而是在系统内部接受和发送数据包,因此虚拟网络接口不需要驱动程序。列出网络建立连接情况,可以查看设备建立多少路连接,方便诊断设备的网络性能。它是一个虚拟的网络接口,通常用于对本机的网络测试。:**显示所有的网络接口信息,不管是否激活。:**这个命令显示所有激活的网络接口的信息。**作用:**网络诊断工具。

2024-08-06 20:27:17 2735

原创 route 命令介绍及使用方法

route。

2024-08-06 20:25:35 953

原创 网络中特殊的 IP 地址

服务器发生故障,或响应时间太长而超出了一个系统规定的时间,计算机操作系统会为你分配这样一个地址。然而它的意思很明确,使用人类语言来说意思就是“这里的所有计算机都注意了”这个地址不能被路由器所转发。对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的。路由发现协议),使用组播功能功能,那么你的主机路由表中应该有这样一条路由。这样的地址多用于一些特定的程序以及多媒体程序。对本机来说,这个地址指本网段内(同一广播域)的所有主机。地址是一个此类的地址,网络不能正常运行了。

2024-08-06 20:22:41 782 1

原创 嵌入式网络调试命令 ifconfig 介绍及使用方法

虚拟网络接口:并非真实存在,并不真实的从外界接受和发送数据包,而是在系统内部接受和发送数据包,因此虚拟网络接口不需要驱动程序。中用于显示或配置网络接口(网卡、网络设备)信息的命令。它是一个虚拟的网络接口,通常用于对本机的网络测试。:**显示所有的网络接口信息,不管是否激活。:**这个命令显示所有激活的网络接口的信息。

2024-08-05 20:16:13 586

原创 补丁(patch)文件原理

补丁文件通过记录文件之间的差异,使得代码更改的传递、审阅和应用变得简单和高效。diff和patch工具是生成和应用补丁的常用工具,它们在软件开发和版本控制中扮演着重要角色。理解补丁文件的格式和使用方法,有助于更好地管理和分享代码改动。

2024-08-05 20:13:08 2467

原创 如何在Ubuntu中查看编辑lvgl的demo和examples?

在lvgl的github主页面有50多个仓库,找到lv_port_pc_eclipse这个仓库,点进去。仓库网址:https://github.com/lvgl/lv_port_pc_eclipse。安装完环境后,进入到仓库中,创建一个build文件夹,并且进入到当前文件夹中。如何在 Ubuntu系统中运行查看lvgl。拉取仓库代码和子仓库代码。

2024-03-17 10:05:31 612

原创 什么是事件冒泡?Littlevgl中的事件冒泡是怎么样的?

事件冒泡(Event Bubbling)是指当一个元素上的事件被触发时,该事件会从最底层的元素开始逐级向上传播,直到最顶层的元素(通常是文档对象)被触发。​ 例如我们点击一个按钮时,就会产生一个click事件,但这个按钮本身可能不能处理这个事件,事件必须从这个按钮传播出去,从而到达能够处理这个事件的代码中,或者按钮的父级绑定有事件函数,当该点击事件发生在按钮上,按钮本身并无处理事件函数,则传播到父级去处理。使用事件冒泡,首先要开启当前对象的事件冒泡,即。

2024-03-14 09:27:11 533

原创 Ubuntu安装Docker

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。Docker在Ubuntu上依赖一些软件包。但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。ubuntu下自带了docker的库,不需要添加新的源。添加当前用户到docker用户组。添加Docker官方GPG密钥。切换用户或注销重启使配置生效。添加Docker软件源。添加docker用户组。安装docker依赖。

2024-03-12 09:37:02 447

原创 C语言多线程学习

*线程(Thread)是程序执行的最小单元,是操作系统进行调度和执行的基本单位。**一个线程可以看作是一个轻量级的进程,它独立地执行特定的任务或代码段,并拥有自己的程序计数器、寄存器集合和栈空间。线程是操作系统提供的一种并发执行的机制,它允许在同一个程序中同时执行多个线程,每个线程都有自己的执行流和上下文信息。相对于多进程编程,多线程编程更加轻量级,线程之间的切换开销更小。一个程序通常至少有一个主线程(Main Thread),它是程序的执行入口。主线程会按照顺序执行程序中的指令,可以创建和管理其他线程。

2024-03-12 09:11:08 581

原创 安装cuda、cudnn、pytorch-gpu

k //要传输的块(数据包)数-i //要读取或写入的缓冲区的长度。TCP 的默认值为 128 KB,UDP 的默认值为 8 KB-r //分别进行双向测试-P //大写字母P,要运行的并行客户端流的数量​-d 同时进行双向传输测试-n 指定传输的字节数,eg:iperf -c 222.35.11.23 -n 100000-r 单独进行双向传输测试-t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5-F 指定需要传输的文件-T 指定ttl值bash。

2024-03-04 19:31:22 821

原创 使用gcc编译源文件时,-L、-l和-I的介绍和使用方法

参数后面可以跟着一个目录路径,该路径是库文件的存放位置。当编译器在链接过程中需要解析某个函数或符号的引用时,它会按照指定的顺序在这些路径下查找对应的库文件。参数可以让编译器在编译过程中更加严格地检查代码,提醒开发者潜在的问题。该参数后面跟着一个目录路径,编译器在编译源文件时会在指定的目录中查找头文件。它启用了一组警告,帮助开发者在编译代码时捕捉潜在的问题和不规范的代码。是用于编译和链接时指定库文件路径和库文件名称的选项。用于指定编译器在链接过程中搜索库文件的路径。选项指定库文件的搜索路径,使用。

2024-02-27 22:12:39 2639

原创 【网络编程】实现服务器端和客户端的通讯的简单程序

因此,如果需要非阻塞地发起连接,可以使用非阻塞的套接字操作或者使用多线程/多进程技术。如果连接成功,客户端将会与服务器建立起连接,可以进行数据交换。初始化为一个特定的值,以便后续在代码中使用该地址结构绑定到服务器套接字上,从而指定服务器监听的地址和端口。给出了服务器地址结构的大小,即要连接的地址结构的字节数。函数,用于接受客户端的连接请求,并创建一个新的套接字。是客户端套接字,即客户端用于与服务器通信的套接字。是指向服务器地址结构的指针,即服务器的地址信息。函数创建一个新的套接字,并将其赋值给变量。

2024-02-27 16:06:44 291

原创 网络编程中的常用的头文件

位于 POSIX 标准库中,用于网络编程。它包含了一些函数原型和定义,用于处理 IP 地址的转换和操作。 头文件提供了以下函数:IP 地址转换函数:、、、、、、、。1、原型为转换互联网主机地址从数字和点符号在CP转换成网络字节顺序的二进制数据。2、原型为返回Internet地址的本地主机地址部分。3、原型为将网络号NET与本地地址host结合,使Internet主机地址按网络字节顺序排列。4、原型为返回Internet地址IN的网络号部分。5、原型为从CP开始的以数字和点表示的地址中按网络字节顺序

2024-02-26 23:01:03 955

原创 什么是消息队列

消息队列(Message Queue)是一种用于进程间通信(IPC)的机制,它允许多个进程通过共享消息队列来交换数据。在消息队列中,发送方将消息写入队列,接收方则从队列中读取消息,从而实现了进程间的通信。

2024-02-26 22:59:44 383

原创 sendto和recvfrom使用方法介绍

是一个用于创建 UDP 套接字的系统调用。AF_INETSOCK_DGRAM0SOCK_DGRAMsendto函数 和 recvfrom 函数一般用于UDP协议中,但是如果在 TCP 中 connect 函数调用后也可以用。sendto() 和recvfrom() --------> 利用数据报文方式进行数据传输。在无连接的数据报socket方式下,由于本地socket并没有与远端机器建立连接,所以在发送数据时应指明目的地址,该函数比send()函数多了两个参数,to表示目地机的IP地址和端口号信息,而。

2024-02-25 10:25:06 3302

原创 darknet使用介绍

darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。前言:为什么选择darknet?相比于TensorFlow来说,darknet并没有那么强大,但这也成了darknet的优势:darknet完全由C语言实现,没有任何依赖项,当然可以使用OpenCV,但只是用其来显示图片、为了更好的可视化;

2024-02-25 10:22:32 912

原创 Cmake基础使用方法

​ 动态库。:递归搜索指定目录,将搜索到的满足条件的文件名生成一个列表,并将其存储到变量中。:将指定目录下搜索到的满足条件的所有文件名生成一个列表,并将其存储到变量中。windows中,静态库名字。windows中,动态库名字。Linux中,静态库名字分为三部分,:要链接的其它静态库的名字。:指定要链接的静态库名字。)去尾(.a)之后的名字。

2024-02-24 09:25:59 414

原创 常用Shell命令介绍

(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。(2〉等号两侧不能有空格(3)在 bash中,变量默认类型都是字符串类型,无法直接进行数值运算,需要**(())** 或[]。4)变量的值如果有经格,需要使用双引号或单引号括起来。c$* 代表命令行中所有的参数,$*把所有的参数看成一个整体$@ 代表命令行中所有的参数,$@把每个的参数分别看待shell脚本的$的含义$0: 脚本自身的名称;$1: 传入脚本的第一个参数;$2: 传入脚本的第二个参数;

2024-02-24 09:18:50 469

原创 docker使用方法

创建容器镜像,需要用到 Dockerfile 文件。Dockerfile 只是一个基于文本的文件,没有文件扩展名。Dockerfile 中包含 Docker 用来创建容器映像的指令脚本。-d 表示在后台运行容器,-p 表示创建容器和本机的端口映射,端口映射是必须的,不然无法对容器中的程序进行访问。-it 目录 使用交互方式运行,进入容器查看内容。删除指定的容器,不能删除运行的容器。-p 指定容器端口 80:80。-p ip:主机端口:容器端口。-p 主机端口:容器端口。-q 只显示容器的编号。

2024-02-23 17:08:12 849

原创 网络性能测试工具iperf3介绍及常规使用方法

iperf3是一个网络性能测试工具(iperf3下载地址iperf3 是一个用于测量网络带宽的开源工具,它是 iperf 工具的第三个版本。它主要用于评估网络的性能,包括带宽、延迟和数据包丢失率等。iperf3 使用客户端-服务器模型进行带宽测试。用户可以在一台计算机上运行 iperf3 服务器,并在另一台计算机上运行 iperf3 客户端,通过网络连接进行通信。iperf可以测试TCP和UDP带宽质量。iperf可以测量最大TCP带宽,具有多种参数和UDP特性。

2024-02-23 16:51:43 2973

原创 GIT中对子仓库的使用方法介绍

【代码】GIT中对子仓库的使用方法介绍。

2024-02-22 10:28:32 1187

原创 在C语言中,设置Linux系统时间

命令用于将系统时钟的当前时间写入硬件时钟(Real Time Clock,RTC)。这在某些情况下很有用,例如在系统关机或重启之前,将当前准确的时间保存到硬件时钟中,以便下次启动系统时能够使用准确的时间。是C语言中用于表示日期和时间的结构体,通常用于在程序中操作和处理日期时间信息。结构体中的时间信息是正确的,否则可能会导致不准确的时间转换。这两个函数通常用于转换时间结构体和设置系统时间。这通常用于同步操作系统时间和硬件时钟的时间。函数通常用于转换时间结构体和设置系统时间。处理之前,需要先获取当前的时间戳。

2024-02-22 09:24:09 1119

原创 C语言中,设置Linux中系统时间

这在某些情况下很有用,例如在系统关机或重启之前,将当前准确的时间保存到硬件时钟中,以便下次启动系统时能够使用准确的时间。结构体表示的时间转换为从 Epoch(1970-01-01 00:00:00 UTC)开始计算的秒数。结构体表示的时间转换为从 Epoch(1970-01-01 00:00:00 UTC)开始计算的秒数。结构体中的时间信息是正确的,否则可能会导致不准确的时间转换。函数用于设置系统时间为给定的秒数,即将系统时钟设置为指定的时间。结构体的指针,包含了年、月、日、时、分、秒等时间信息。

2024-02-22 09:00:56 1409

原创 C语言函数指针

在C语言进行编译时,每一个函数都有一个入口地址,该入口地址就是函数指针。函数指针初始化:函数指针变量=函数名//函数名即函数入口地址。返回类型说明符为函数指针所指向的函数的返回类型。参数列表为函数指针所指向函数的形参列表。通过函数指针可以调用它所指向的函数。

2023-08-16 15:28:50 158

原创 git 常见问题总结

在刚开始使用 git 时,会不熟悉 git 的命令,从而会出现各种各各样的问题,所以总结了一下目前使用 git 遇到的问题

2023-07-17 14:11:11 718

原创 windows中vscode配置C/C++环境

创建完成后会自动生成.vscode文件,里面包含了c_cpp_properties.json,launch.json,settings.json文件。2、在launch.json文件中添加"preLaunchTask"项,其值与tasks.json中的label项相同,这样按F5就会直接编译运行。点击箭头所指,在.vscode里边会生成tasks.json文件,生成的tasks.json文件如下。这个文件可以自动生成,按下Ctrl+Shift+P,在输入框中输入Tasks,会出现提示,选择。

2023-04-27 10:00:23 786

原创 Ubuntu22.04 vscode C++配置

miDebuggerPath:调试器的路径。program:调试入口文件的地址。cwd:程序启动调试的目录。

2023-03-02 17:00:21 1057

原创 【Python】求矩阵的模长及单位向量

求矩阵的模长可以使用np.linalg.norm函数,默认是求二范数,也就是Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方。下边是求axis=0时的单位向量:import numpy as npa = np.array([[3, 9, 6, 5, 3], [9, 3, 8, 4, 0], [6, 8, 9, 2, 2]])print(a)a_x, a_y = np.gradient(a)p

2022-05-10 10:59:49 7748

原创 【学习笔记】python之对路径操作

1、os.listdir()读取某个路径文件夹下所有文件os.listdir('文件路径')返回包含目录中文件名称的列表。

2022-04-12 08:51:33 252

原创 【医学图像分割】CT医学图像的预处理(重采样)

CT图像中存在两个基本概念,窗口(window width)和窗位(window center),用于选取感兴趣的CT值范围,因为人体各组织结构不同,对X线吸收程度各异,形成不同的CT值,因此可以利用CT值来鉴别组织的性质。CT值的单位为HounsfieldHounsfield单位(HU)是计算机断层扫描(CT)中普遍使用的无量纲单位,用于标准、便捷的表达CT数值。Hounsfield单位是通过对测量得到的衰减系数进行线性变换得到的。这种转换是基于空气和的密度,其中纯水被定义为0 Hounsfield

2022-04-11 14:50:43 19921 8

空空如也

空空如也

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

TA关注的人

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