自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(401)
  • 资源 (5)
  • 收藏
  • 关注

原创 Google Test 学习笔记(简称GTest)

Google Test(通常简称GTest)是Google开发的一个用于C++的单元测试框架,它可以帮助你轻松地编写和运行测试用例,确保代码的质量和稳定性。最大好处:实现自动化单元测试Gtest提供了若干个case方法进行测试不同的用例。主要常见的有TEST/TEST_F及TEST_P宏的使用。在每个TestCase中可以通过断言提供的方法进行控制检查程序的预期走向是否是期望的结果,从而以此来判定程序的正确性。在同一份TestCase中不能同时出现TEST和TEST_F两者进行混用;

2024-07-25 20:05:21 532

原创 C/C++ json库

问题:JSON是否需要包含换行符,如何处理?JSON转义、\r \n \r\njson中含有换行符’\r’,’\n’的处理https://www.cnblogs.com/chuanfengzhang/p/12189176.htmljson的中换行符的处理https://blog.csdn.net/kof820/article/details/40779165JSON需要转义的字符https://blog.csdn.net/u012916291/article/details/70742044

2024-07-19 14:27:26 1467 1

原创 cereal C++11 序列化库介绍

cereal是一个只包含头文件的C++11序列化库cereal支持任何类型的数据并可以将其序列化为不同形式,例如:二进制、XML或者JSON。cereal的设计理念是快速、轻量级和容易扩展;cereal没有依赖第三库而且可以轻易的将其和其他代码相。项目使用cereal的原因:(需求)给WEB用:JSON给后端用:C++对象(不够贴切)(成员变量自动序列化成JSON)

2024-07-19 09:39:07 918

原创 C/C++ xml库

XML(eXtensible Markup Language,可扩展标记语言)是一种标记语言,主要用于存储和传输数据。它定义了数据的结构和语义,但不定义数据的呈现方式。XML 是一种自描述的语言,易于理解和使用。可扩展性:用户可以定义自己的标签,使其适应不同的需求。自描述性:标签本身描述了数据的内容和结构。简洁性:与HTML相比,XML标签更简洁,减少了冗余。可读性:标签清晰,易于人类阅读和理解。跨平台:可以在任何操作系统上使用,与平台无关。数据交换:广泛用于不同系统之间的数据交换。

2024-07-18 15:15:17 1087

原创 C/C++ yaml 库

YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,通常用于配置文件和数据交换。它由Clark Evans在2001年创建,旨在成为一种简单、直观且易于理解的格式。简洁性YAML的设计目标是尽可能简洁,易于阅读和编写。它使用缩进来表示层次结构,而不是像XML那样的标签。易读性YAML文件的可读性非常高,适合人类阅读和编辑,而不仅仅是机器解析。灵活性YAML支持多种数据类型,包括标量(如字符串、整数、浮点数)、序列(列表)、映射(键值对集合)等。扩展性。

2024-07-18 10:12:23 1047

原创 C/C++ 开源库选型依据

通过综合考虑这些因素,可以选择最适合你项目需求的XML和JSON开源库。

2024-07-18 09:28:25 284

转载 Linux iptables 命令(防火墙)

Linux iptables命令详解Linux下 iptables 超详细教程和使用示例iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制。iptables 是集成在 Linux 内核中的包过滤防火墙系统。

2024-03-28 15:18:37 1041

转载 Linux ip命令

ip 命令是 Linux 系统中用于配置网络接口、管理路由表和地址等功能的强大工具。它取代了老的 ifconfig 和 route 命令,提供了更多的功能和灵活性。Linux下的ip命令Linux ip命令菜鸟教程:Linux ip 命令。

2024-03-26 15:42:26 123

原创 电脑/设备网络共享给其他设备上网

网络共享

2024-01-12 16:17:30 1082 1

转载 以太网头介绍(IP头、TCP头、UDP头)

文章目录QT 常用快捷键QT 常用快捷键Ctrl + Shitf +F 快捷键方式搜索,具体搜索选项可以根据自己需要选择

2023-12-04 09:02:48 4396 2

转载 TCP三次握手和四次挥手

TCP的三次握手是为了建立可靠的连接。它的主要目的是确保双方都能够发送和接收数据,同时解决网络中可能存在的问题。首先,第一次握手是客户端向服务器发送连接请求报文段。这样做的原因是,客户端需要确保服务器可以正常工作,并且可以接受来自客户端的连接请求。然后,第二次握手是服务器向客户端发送确认消息,表示接收到了客户端的连接请求。最后,第三次握手是客户端向服务器发送确认消息,表示客户端已经收到了服务器的确认消息。这样做的目的是确保服务器能够正常接收到客户端的确认消息,以建立可靠的连接。

2023-11-28 14:55:26 274

原创 嵌入式设备时间同步(gpsd pps chrony 校时)

设备时间同步

2023-10-13 13:35:53 3451 1

转载 c++ virtual 关键字 override 关键字

C++ virtual 和 override 关键字

2023-08-14 17:06:50 857

原创 curl 介绍和使用

Curl是一个命令行工具和库,用于进行数据传输。它支持多种协议,如HTTP、HTTPS、FTP、SMTP等,并可以通过URL进行数据传输。Curl提供了一个简单的语法来发送HTTP请求和接收服务器响应。它可以执行各种操作,如发送GET请求、POST请求、上传文件、下载文件等。使用Curl,您可以方便地在命令行中进行HTTP请求的测试和调试。它提供了丰富的选项和参数,可以设置请求头、发送表单数据、处理Cookie、进行认证等。除了作为命令行工具,Curl还提供了一个C语言的库,可以在您的程序中使用。

2023-08-02 17:29:37 2992

原创 Ubuntu18.04 docker kafka 本地测试环境搭建

Kafka是一种分布式流处理平台,也是一个高吞吐量的分布式发布订阅消息系统。它由LinkedIn开发,并于2011年成为Apache软件基金会的顶级项目。Kafka的设计目标是能够处理大规模的消息流,并提供持久性、高吞吐量和低延迟的特性。它的核心概念是发布-订阅模型,其中消息被组织成一个或多个主题(Topics),生产者(Producers)将消息发布到主题中,而消费者(Consumers)从主题中订阅并处理消息。

2023-07-12 11:43:28 868

原创 IDA 介绍和使用

IDA的新手入门指南IDA的反编译插件hexrays decompiler逆向分析工具IDA与开源工具Ghidra、Cutter对比测评IDA(Interactive DisAssembler)是一款功能强大的反汇编工具,用于分析和逆向工程二进制文件。它被广泛用于软件漏洞分析、恶意代码分析、逆向工程等领域。以下是IDA的一些主要特点和功能:反汇编:IDA可以将二进制文件转换为易于阅读和理解的汇编代码。它支持多种处理器架构,包括x86、ARM、MIPS等。

2023-07-03 17:02:23 4940

原创 Linux可执行文件格式介绍和设备GDB调试

1.Linux 可执行文件/ELF文件格式介绍。2.Linux 内存地址分布。

2023-05-05 16:29:57 215 1

原创 嵌入式系统相关 ChartGPT问答

OpenEmbedded:OpenEmbedded是一个开源的嵌入式Linux发行版制作工具,它与Yocto Project类似,使用BitBake构建系统,可以定制内核、文件系统、应用程序等等,同时具有更高的灵活性和可定制性。BusyBox:BusyBox是一个轻量级的工具集,它包含了许多用于嵌入式系统的常用工具和应用程序,如ls、cp、mv、rm、mkdir、cat、echo等等。总之,设备树是一种用于描述硬件设备及其属性的数据结构,而设备节点则是设备树中的一个节点,描述了一个具体的硬件设备及其属性。

2023-05-05 16:05:20 977

转载 IMX6Q的SD卡启动使用教程

经过上述5个步骤,即可实现uboot引导linux,加载文件系统的工作。整个流程是一个linux嵌入式工程师必备技能,其中会遇到很多问题,需要自己一一解决并总结。幸运的是大部分问题网上都能找到解决方案,重要的是坚持!后续会补充文中没有详细展开的内容,包括根文件系统制作、NFS\TFPT启动等。还准备手把手教如何在IMX6Q上移植ubuntu20根文件系统并安装桌面,制作属于自己的嵌入式开发板环境。

2023-04-25 14:37:27 764

原创 Linux 查看进程和线程CPU和内存占用情况

(1)ps -p {pid} -T 可以得到该进程里面运行的各线程的id(表现出来是spid)、对应的线程名称(不超过16字符)、运行时间等;你可以把这个目录下的信息理解为Linux内核在执行你写的程序时所打印的Log。下,因此你可以通过查看这个目录下的信息来或者进程的运行时行为,这对于那些好奇内核是如何运行程序的同学是非常重要的。下记录了每个进程运行时的所有关键信息,那这些信息是谁来生成的呢,答案是Linux内核。Linux内核在执行你写的程序时,将所有关键信息写到了。

2023-04-25 14:34:11 6605

转载 各大半导体原厂芯片代码仓库(GitHub)

从事嵌入式开发,经常与底层芯片打交道,在使用一个新的芯片时,一般原厂都会提供相关驱动(driver)、中间件(HAL)以及演示例程(demo),也方便我们快速使用该芯片,提高产品开发效率。收集了常用到的几个半导体原厂芯片代码仓库(GitHub),相关芯片代码可以从从中找到,但不是所有芯片都会提供。【6】微芯半导体(Microchip )【10】海思半导体(Hisilicon)【11】英飞凌半导体(Infineon)【9】赛普拉斯半导体(Cypress)【2】恩智浦半导体(NXP)【1】意法半导体(ST)

2023-04-25 10:10:13 519

原创 Linux 报 bus error

文章目录C 总线错误 (bus error) - 段错误 (segmentation fault)总线错误(Bus error)

2023-04-24 16:04:33 1178

转载 shell 内部命令和外部命令

Shell 教程Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。Shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、迅雷、Firefox 等其它软件没有什么区别。然而 Shell 也有着它的特殊性,就是开机立马启动,并呈现在用户面前;用户通过 Shell 来使用 Linux,不启动 Shell 的话,用户就没办法使用 Linux。

2023-04-20 17:24:29 826

原创 Linux mv根下目录/lib目录的恢复

首先这里并不是删除了/lib,而是人为修改成了/libbk。在交叉编译完busybox后,想测试下新版本的busybox命令。由于当前系统已完备,于是通过SCP将新的busybox打包拷贝到设备中。解压后验证可用,但实际上busybox是动态编译,依赖动态库。于是通过重命名了。于是就出现ls、cp等命令无法使用问题。Linux 动态库查找路径。

2023-04-19 16:23:00 998

转载 Linux mknod命令

Linux mknod命令:创建块设备和字符设备文件。

2023-04-19 15:48:00 900

转载 Linux 设置开机自启动

设置Linux自启动

2023-04-17 16:30:42 11467

转载 arm backtrace 使用

backtrace使用

2023-04-17 11:38:42 554

转载 Linux下的NFS服务(包含windows10下的nfs搭建)

https://blog.csdn.net/Keep_Trying_Go/article/details/127951003

2023-04-17 11:19:36 108

转载 Linux 查看程序内存占用情况 top和free等命令

想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。当然如果更加深入一点,你可能会问进程所占用的那些物理内存都用在了哪些地方?

2023-04-14 08:58:56 4383

转载 Linux 内存地址分布

malloc的分配内存有两个系统调用,一个brk,一个mmap,brk是将.data的最高地址指针_edata往高地址走,mmap则是在进程的虚拟地址空间(在堆和栈之间的内存映射区域)找一块空间。) 所以我们常说的多少位系统,他的内存多大,都是说的虚拟内存空间。C.非初始化数据段。接下来所说的是嵌入式系统的内存地址空间的布局,简单的说就是我们写好的代码,在编译过程种中,把代码里不同的变量、函数相应的保存在每个段中(.text、.data、.bss),至于堆空间、栈空间是代码在芯片上运行时才存在的。

2023-04-13 17:29:27 1086

转载 Linux size 命令

size命令

2023-04-13 17:04:25 544

转载 Linux history 命令

history命令的执行结果是系统默认的两列结果,如需显示更多信息,需配置HISTTIMEFORMAT环境变量。编写Linux shell自动判卷脚本过程中,使用到history命令时,如何显示命令执行时间问题的解决。2.若要使每次都生效,则需要设置系统环境变量,首先打开/etc/profile文件。命令或重启后,即可永久生效,每次使用history命令即可显示命令执行时间。执行结果如下,会看到已经出现了命令执行的时间。在文件末尾加上该条命令。

2023-04-12 18:29:32 364

原创 libevent、libev等网络库介绍

libevent等网络库介绍

2023-04-10 18:45:09 1136

原创 C++异常处理(try catch)

C++异常处理(try catch)C++异常捕获C++ 异常处理机制会涉及 try、catch、throw 三个关键字(注意没有 finally 关键字)程序的错误大致可以分为三种,分别是语法错误、逻辑错误和运行时错误:C++ 异常(Exception)机制就是为解决运行时错误而引入的。C++ 规定,异常类型可以是 int、char、float、bool 等基本类型,也可以是指针、数组、字符串、结构体、类等聚合类型。

2023-04-07 16:03:09 1295

转载 C++回调函数

如果你把函数的指针(地址)作为参数传递给另一个函数,回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。p指向Max函数之后,然后用p调用Max函数,返回两个数中的最大值。特别注意的是,因为函数名本身就可以表示该函数地址(指针),因此在获取函数指针时,可以直接用函数名,也可以取函数的地址。前面函数指针的方式作为回调函数的一种方式,可以同时用于C和C++,下面介绍另外的一些方式,因为C++引入了对象的概念,可以使用类的成员和静态函数作为回调函数。

2023-04-07 13:49:29 4131

转载 区分/dev/tty、/dev/console、/dev/pts、/dev/ttyn

分别是/ dev/ttyN(其中 tty0就是/ dev / console,tty1 ,tty2就是不同的虚拟终端(virtual console)).通常使用热键alt+Fn来在这些虚拟终端之间进行切换。本人在进行rootfs创建的时候,遇到了设备/dev/pts,因为rootfs最后需要能通过telnet来登录。所有写向这个设备的输出都将被丢弃,而如果你读/dev/null,则会立即得到一个文件尾标志而返回。指的是当前所处的终端 ,输出到此的内容只会显示在当前工作的终端显示器上。

2023-04-01 14:58:36 804

转载 TLS 握手过程介绍

TLS 了解

2023-03-30 10:33:57 172

原创 C++ 并发支持库 (线程 原子操作 条件变量 信号量)

这些组建为细粒度的原子操作提供,允许无锁并发编程。涉及同一对象的每个原子操作,相对于任何其他原子操作是不可分的。原子对象不具有数据竞争。

2023-03-19 15:18:03 152

原创 C++ 问题记录

记录一些项目开发过程中遇到的问题,来加深印象和理解,一方面避免重复犯错,另一方面再次遇到可以快速定位问题。构造函数内打印代码没执行。

2023-03-19 12:10:09 62 1

转载 C++ 打印十六进制数据

大家可能在做流媒体开发,或者网络相关开发的时候经常需要对数据进行逐个字节的分析,这个时候如果能在日志里面通过二进制,或者十六进制的方式打印出字节的详细内容,这样就能很方便的分析数据了。需求:std::string可以存放非字符串数据,在调试过程中需要将原始数据按16进制的格式打印出来。这里有个很小的代码片段,可以完成这个功能。

2023-03-19 11:31:19 2361

设备和电脑的串口共享软件.rar

串口共享软件

2021-07-28

FormatFactory_setup.rar

格式工厂,修改音频格式

2021-07-27

GNUMakeManual_CN-master.zip

GNUMakeManual_CN-master.zip 是学习makefile的基本手册

2021-07-26

十六进制编辑工具.rar

十六进制编辑器

2021-03-20

Windows 64位编译好的Openssl静态库、相关安装包和demo示例

资源包括:编译好的openssl静态库,openssl-1.0.2m.tar.g压缩包,ActivePerl-5.26.0.2600-MSWin32-x64-403866.exe安装包(Win64),nasm-2.14-installer-x64.exe安装包,附加一个win64下的demo示例

2018-11-13

空空如也

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

TA关注的人

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