自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LUA的学习

Lua编程基础

2025-12-22 15:44:41 165

原创 如何让虚拟机运行速度翻倍

摘要:针对虚拟机负载高但CPU利用率低的问题,发现编译程序时仅使用小核心导致性能不佳。通过调整任务管理器设置,取消VMware相关进程的E核关联性,强制使用大核心,可显著提升编译速度。建议检查处理器相关性设置以确保充分利用多核性能。

2025-11-21 17:01:45 48

原创 Linux 环境下实现简单的标准TFTP服务器

本文介绍了一个基于嵌入式Linux的TFTP服务器实现,主要用于文件传输。该服务器程序遵循RFC1350标准,支持读取文件功能,使用UDP协议在69端口监听请求。程序采用C语言编写,包含信号处理、错误包发送、文件传输等功能。服务器首先接收客户端请求,验证文件名后,通过新创建的UDP套接字分块传输文件数据,并等待ACK确认。程序设置了超时重传机制,最大重试次数为3次。该实验适用于为嵌入式系统固件更新等场景。

2025-10-24 15:26:58 136

原创 浮点数:IEEE 754

IEEE754标准规定了32位浮点数的存储格式:1位符号位、8位指数位(偏移127)和23位尾数位。以30.0为例,转换过程包括:转为二进制11110.0,规格化为1.1110×2^4,计算指数为131(10000011),组合得到41F00000(十六进制)。该标准还定义了特殊数值(如0.1、1e40等)的二进制表示方式,通过科学计数法实现高效存储和计算。

2025-09-24 10:55:52 383

原创 如何解决GIT合并冲突问题

Git提交失败的解决方案

2025-08-04 16:41:30 162

原创 如何在Ubuntu系统下创建桌面快捷方式

摘要:本文介绍两种创建桌面快捷方式的方法。方法一通过命令行直接创建链接,命令格式为"sudo ln -s 目标文件 桌面路径/快捷方式名",适用于所有文件类型但无法更改图标。方法二通过创建.desktop文件实现,需编辑包含Name、Exec、Icon等字段的配置文件,并赋予可执行权限,这种方式可自定义图标和属性。两种方法分别适用于简单链接和需要自定义的程序快捷方式创建需求。

2025-07-24 17:25:30 1211

原创 ECC校验

该程序实现了一个基于汉明码的ECC(错误检测与纠正)校验系统。主要功能包括:1) 计算所需校验位数;2) 生成带有校验位的ECC码;3) 检测并纠正ECC码中的单比特错误。程序支持交互式输入二进制数据,可模拟错误并自动纠正,最后输出校验结果和原始数据。通过异或运算实现偶校验,能够检测并纠正传输过程中的单比特错误,确保数据完整性。适用于需要可靠数据传输的场合。

2025-07-21 14:56:02 602

原创 sqlite3操作程序示例(单文件)

本文介绍了使用C语言操作SQLite数据库的基本方法。通过sqlite3_exec和sqlite3_get_table两个核心函数实现增删改查功能。文章包含一个完整的示例程序,主要功能包括:1)数据库连接和表创建;2)实现数据插入、删除、更新和查询操作;3)提供两种查询方式(使用回调函数和不使用回调函数);4)通过命令行菜单实现交互式操作。程序通过预处理指令定义数据库名和缓冲区大小,使用fgets处理用户输入,并实现了基本的错误处理机制。该示例展示了SQLite数据库的基本操作流程,适合初学者学习SQLit

2025-07-21 09:35:12 125

原创 安装Deepin+Win11双系统

摘要:本文介绍了使用Ventoy工具制作启动盘安装Linux(Deepin)系统的步骤。首先下载系统镜像并准备8G以上U盘,用Ventoy制作启动盘。在BIOS中禁用Win11安全启动后,进入U盘系统将Linux安装到预先建立的EXT4分区。安装完成后可双系统启动(按F12选择),并能访问Windows的NTFS分区。整个流程包含分区准备、启动盘制作、系统安装及启动设置等关键步骤。

2025-07-12 16:59:33 822

原创 FPGA(现场可编程门阵列)笔记

*编程语言- [Verilog]:硬件描述语言,语法风格类似于C语言,用于数字电路的设计。- [SystemVerilog]:扩展自Verilog,增加了面向对象编程等特性,语法更接近于C++,适用于复杂系统设计。- [VHDL]:另一种硬件描述语言,其语法结构与Pascal相似。*与软件的区别- 软件使用语言写流程,主要关注算法和流程控制,FPGA用语言写逻辑电路。*FPGA厂商- [Altera(Intel)]:提供Quartus开发环境。- [Xilinx (AMD)]:提供Vivado开发环境

2025-04-18 18:54:58 737

原创 蓝牙GATT协议总结(ESP32)

( "gatts_profile_a_event_handler" 和 "gatts_profile_b_event_handler")。连接和断开连接事件 "ESP_GATTS_CONNECT_EVT" 和 "ESP_GATTS_DISCONNECT_EVT"读写事件 "ESP_GATTS_READ_EVT" 和 "ESP_GATTS_WRITE_EVT"执行写入事件 "ESP_GATTS_EXEC_WRITE_EVT"注册事件 "ESP_GATTS_REG_EVT"初始化并启用蓝牙协议栈。

2025-03-05 11:27:07 668

原创 使用esp32接入大模型(http请求)

本示例适用于所有乐鑫的esp32模组及开发板。使用串口通信和http协议。实现简单的和大模型对话要求。

2025-02-28 17:57:54 752

原创 esp32 OTA学习笔记

ota是指先下载固件到ota1然后下次从ota1启动,回滚就是回到ota0 启动。不超过1600kb的程序可以ota(可手动划分)csv分区表中ota-0和ota-1存放程序。分区表中有 ota0和ota1两个数据分区。

2024-12-10 15:04:49 361

原创 在arduino分文件编译时可能遇到的问题以及解决方法

4.在主程序的 setup()函数中初始化每个库,可以使用库的初始化函数,例如library1_init()。3.在主程序中引用每个库文件,可以使用#include语句,例如#include "library1.h"。2.在每个程序的代码文件中,将不需要对外暴露的变量和函数都声明为static,以避免命名冲突。5.在主程序的loop()函数中调用每个库的循环函数,例如library1_loop()。首先是在你的主程序以及子程序都要用到某个全局变量时不应该写在头文件中。其他文件可以时.c,.cpp等等。

2024-12-05 17:02:09 430

原创 GIT的使用方法以及汉化方法

​对于gui网上已有网友针对其开发出了对应的汉化包,我们只需要下载安装即可https://github.com/stayor/git-gui-zh解压之后里面的文件中找到 zh_cn.msg放到C:\Program Files\Git\mingw64\share\git-gui\lib\msgs即可汉化完成​

2024-12-04 18:21:48 1014

原创 ESP32蓝牙通信与蓝牙配网

buffer:指向存储读取数据的缓冲区的指针。返回值:int:读取到的字节数据。返回值:int:可用的字节数。参数:deviceName:蓝牙设备的名称,字符串类型。参数: buffer:指向存储读取数据的缓冲区的指针。参数:buffer:指向要写入数据的缓冲区的指针。功能:从蓝牙串口读取指定长度的字节数据到缓冲区。size:要写入的字节数。返回值:size_t:实际读取的字节数。返回值:size_t:实际读取的字节数。返回值:size_t:实际写入的字节数。返回值:size_t:实际写入的字节数。

2024-12-03 18:10:28 999

原创 esp32连接WiFi以及gpio的使用

arduino 编程比较直观,主程序分为setup以及loop部分。setup即是启动时初始化串口以及初始化外设使用的函数,loop相当于while(1)启动后一直运行的部分。目前esp32有多种编程软件例如arduino,mixly以及thonny。编程语言和c++比较相似,可以使用包含头文件。使用开发板管理器下载开发板配置文件。mixly编程比较简单,不用写代码。通过板载led以及串口反馈连接状态。即可保持WiFi的连接。通过函数连接WiFi。

2024-12-02 17:46:31 991

原创 BootLoader移植

在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境,Boot loader不属于操作系统,一般采用汇编+C完成,加载系统并启动,启动后不参与系统运行。在嵌入式系统中,整个系统的启动加载任务通常由Bootloader来完成。

2024-11-18 14:57:45 180

原创 使用NFS启动的方法

就上篇的tftp本地启动而言,NFS启动可以简化文件系统的更新和管理,还可以方便驱动的开发。以下是NFS启动的方法。步骤3:通过xshell登录控制台,设置uboot相关参数。步骤1: 确保 tftp服务和nfs服务已经配置好。重新上电即可启动nfs的系统。步骤2:创建根目录文件。

2024-11-18 11:48:04 412

原创 如何进行系统移值

1.安装xshell,用于连接单片机串口,也可以远程连接linux主机。2.安装交叉编译器3.安装tftp4.安装nfs5.在虚拟机新建一个虚拟网卡,没有多余网口就买-个usb网卡6.开发板网络设置7.插入SD卡,进入单片机的uboot设置网络8.下载系统文件9.设置启动项就可以启动系统辣

2024-11-17 11:02:49 490

原创 C++笔试面试题

构造函数是一种特殊的成员函数,用于在创建对象时初始化对象的数据成员。它的名字与类名相同,没有返回值。一般有无参构造函数,有参构造函数,拷贝构造函数,移动构造函数等等析构函数是另一种特殊的成员函数,用于在对象销毁时进行清理工作,如释放对象占用的资源(动态分配的内存、打开的文件、网络连接等)。析构函数的名字是在类名前加上符号,并且也没有返回类型析构函数在手动分配内存,手动打开过文件或网络,有使用互斥锁等环境下需要手动定义。

2024-11-16 11:00:39 781

原创 某某科技笔试题

用于函数形参时可以确保函数不会修改其值,用于类中的函数时该函数不能修改类中的变量。修饰外部变量或函数时可以限定当前变量的作用域为当前文件,在函数内部定义时会延长变量的生命周期。是进程内的一个执行单元,同一进程内的线程共享资源。是操作系统进行资源分配的基本单位,每个进程都有独立的内存空间和资源。8、一个有 10 个指针的数组 ,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。7、一个指向函数的指针,该函数有一个整型数参数并返回一个整数;5、一个有 10 个指针的数组,该指针是指向一个整型数的;

2024-11-13 15:46:55 1239

原创 IO,进程线程面试题

1.标准IO和文件IO的区别2.静态库和动态库的区别3.怎么创建进程4.什么是守护进程5.什么是僵尸进程?什么是孤儿进程?6.时间片了解么?7.进程和线程区别?8.线程的同步怎么实现9.线程的互斥怎么实现10.进程间通信方式有哪些?哪种效率最高11.通信方式的优缺点对比12.有名管道和无名管道的区别?13.共享内存的实现方式14.消息队列的实现方式15.fork和vfork区别16.线程的死锁,怎么避免?

2024-10-10 10:24:53 1149

原创 网络编程面试题

1. TCP和UDP的区别2. TCP的三次握手过程3. TCP的四次挥手过程?为什么是四次挥手?4. 在最后一次挥手时客户端为什么要等待2MSL?5. TCP是如何保证可靠传输的6. 如何实现并发服务器7. Select、poll、epoll的区别?Select有什么优点?8. Tcp的粘包问题9. UDP的丢包问题10. TCP编程框架11. 用过抓包工具么?抓过什么数据包?12. 广播和组播的区别

2024-10-05 23:12:19 814

原创 c基础面试题

C语言基础题

2024-10-05 22:24:15 4561 1

原创 Makefile的写法以及gdb调试的使用方法

【代码】Makefile的写法以及gdb调试的使用方法。

2024-09-24 19:58:44 337 1

原创 一些bash脚本练习

【代码】一些bash脚本练习。

2024-09-23 21:07:40 287

原创 shell脚本的写法

写一个shell脚本,将以下内容放到脚本中:

2024-09-20 22:49:02 432

原创 C++复习笔记

1> 不到万不得已的情况下,不要使用友元,因为友元的出现使得封装称为虚谈,友元破坏了类的封装性2> 友元不具有传递性:A是B的朋友,B不一定是A的朋友3> 友元不具有传递性:A是B的朋友,B是C的朋友,A不一定是C的朋友4> 友元不具有继承性:父类的朋友,不一定是子类的朋友5> 必须使用友元的情况:插入和提取运算符重载时,只能使用友元函数来解决。

2024-09-13 21:02:15 1140

原创 使用QT编写有图形界面的TCP局域网聊天室(app)

1.使用QTcpServer类实例化一个对象,就得到了一个服务器端2.调用该类对象的成员函数 listen 将服务器启动监听,该函数会进行绑定ip和端口号 ip地址可以指定也可以由系统自动绑定,端口号也可以自己指定和由系统自动指定3.当有客户端发来连接请求后,该服务器就会自动发射一个newConnection的信号 我们可以将该信号绑定到自定义的槽函数中完成相关逻辑4.可以使用类中的成员函数 nextPenddingConnection 可以获取最新连接的客户端套接字5.可以使用该客

2024-09-11 19:18:38 1196

原创 使用C++编写一个语音播报时钟(Qt)

要求:当系统时间达到输入的时间时,语音播报对话框中的内容。countdownEdit作为书写目标时间的line_edit。systimelab显示系统时间的lab。start_btn作为开始和停止的按钮。qt界面如上图所示。stop_btn作为取消的按钮。textEdit显示播报内容。

2024-09-10 21:01:24 2332 1

原创 智能指针,QT,C++语言的关键字总结

bool、true、false:对于bool类型数据的相关处理,值为true和false。1> C++中一共有63个关键字,如上图所示,其中标红的为c语言中的关键字,有32个。int、short、float、double、long:整数和实数的数据类型。char、wchar_t:char是单字符数据,wchar_t多字符数据。6> 访问权限:public、protected、private。7> 异常处理:throw、try、catch。do、while、for:循环相关的关键字。

2024-09-05 21:00:55 808

原创 用模板封装栈,并且栈内可存放任意数据类型。和C++的一些杂项

用模板封装栈,并且栈内可存放任意数据类型。

2024-09-04 21:22:23 387

原创 C++使用MyStack和MyQueue封装栈和队列

封装栈的构造,复制,判空判满,入栈出栈等函数封装队列的构造,赋值,判空判满,入队出队函数

2024-09-03 22:35:08 425

原创 将string类中能够实现的操作都封装在MyString类中

包括:构造函数析构函数重载 = ,[],+=,+,==,!=,,=,;at;data;c_str;empty;length;capasityacity;clear;push_back;pop_back;append;

2024-09-02 21:28:28 416

原创 学构造函数的这辈子有了

拷贝构造函数深浅拷贝问题移动构造函数取地址运算符重载函数一个空类中默认提供的特殊成员函数

2024-08-31 00:23:56 498

原创 使用C++,仿照string类,实现myString

只需要将struct改成关键字class,就定义了一个类C++中类和结构体的区别:默认的权限不同,结构体中默认权限为public,类中默认权限为private默认的继承方式不同,结构体的默认继承方式为public,类的默认继承方式为privatepublic:该权限下的成员,可以在类内、子类中和类外被访问protected:该权限下的成员,可以在类内、子类中直接被访问,类外不允许被访问private:该权限下的成员,只能在类内被访问,在子类、类外不允许被访问。

2024-08-29 21:01:45 895

原创 使用C++手动封装一个顺序表,包含成员数组一个,成员变量N个

实现顺序表的判空,判满,添加数据,求实际长度,任意位置的插入/删除,访问数组中的任意一个元素,以及让顺序表自动扩容。

2024-08-28 20:21:51 398

原创 C++系列学习笔记

【代码】C++系列学习笔记。

2024-08-27 20:26:00 261 2

原创 使用C++编写程序,提示并输入一个字符串,统计其中的英文字符,数字,空格以及其他字符的数量。

由于c++兼容c语言的程序,所以子函数使用了c语言的内容。程序统计了字符串中的各种字符的个数,达到要求。

2024-08-27 19:11:23 732

OTA-helloword

ota用的bin文件

2024-12-10

OTA-helloword

ota用的bin文件

2024-12-10

空空如也

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

TA关注的人

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