自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql安装和连接vs2017

MySQL安装和配置教程(超详细版本) - 知乎 (zhihu.com)

2024-02-20 11:36:53 328

原创 mysql菜鸟教程

MySQL 插入数据 | 菜鸟教程 (runoob.com)

2024-02-20 11:30:48 343

原创 常用通讯协议

面试必问:串口通信(全网最全)_modbus面试题-CSDN博客

2024-02-18 14:07:36 316

原创 服务器中多路复用

服务器的多路复用(Multiplexing)主要指的是在高性能服务器上,通过一种技术使得单个进程能够同时处理多个网络连接或请求。在服务器编程中,传统的做法是为每个连接或请求分配一个单独的进程或线程。然而,由于每台服务器的资源(如内存、CPU等)有限,这种方法在处理大量并发连接时可能会遇到性能瓶颈。具体来说,服务器会监听多个套接字(socket)上的连接请求,当有新的连接请求到来时,服务器会将其加入到一个事件队列中。这些技术都能够有效地提高服务器的并发处理能力,使其能够同时处理大量的网络连接和请求。

2024-02-18 10:06:01 377

原创 U-Boot 启动流程详解

但是这个不是最终使用的链接脚本,最终的链接脚本是在这个链接脚本的基础上生成的。的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以。时候会用到,这些变量要最终编译完成才能确定的!,这也是为什么我们裸机例程的链接起始地址选择 0X87800000。的映射文件,可以从此文件看到某个文件或者函数链接到了哪个地址,中有一些跟地址有关的“变量”需要我们注意一下,后面分析。以外,其他的变量值每次编译的时候可能会变化,如果修改了。编译出来的代码放到中断向量表后面。

2024-02-02 09:06:38 814

原创 u-boot源码详解(2)

第 422 行定义了变量 version_h,这变量保存版本号文件,此文件是自动生成的。定的终极目标列表,比如执行“make mx6ull_alientek_emmc_defconfig”,那么 MAKECMDGOALS。第439行判断KBUILD_EXTMOD是否为空,如果KBUILD_EXTMOD 为空的话条件成立,下的部分不为空条件就成立,很明显此处条件成立,变量 config-targets=1。第 423 行定义了变量 timestamp_h,此变量保存时间戳文件,此文件也是。

2024-02-01 11:31:34 395

原创 U-Boot重点源码详解

文件夹就是和具体的板子有关的,打开此文件夹,里面全是不同的板子,毫无疑问正点原子的开发板肯定也在里面(其中imxdownload是烧录文件 u-boot*这些文件是编译产生的。这个文件夹里面的文件都是跟 ARMV7。,只是freescale 后来被。芯片的板子都放到此文件夹中,可以看出有很多架构,比如。文件夹,在里面找到和。的时候需要重点关注的。文件夹里面有个名为“

2024-01-31 11:54:03 416

原创 linux下tar压缩解压文件的命令使用推荐

一般来说,bzip2的压缩率较高,但压缩和解压缩速度较慢;而gzip的压缩和解压缩速度较快,但压缩率较低。因此,对于大文件或需要快速压缩的情况,可以选择使用gzip;对于需要高压缩率的情况,可以选择使用bzip2。

2024-01-25 13:46:29 346

原创 写入linux文件用QByteArray而不用QString直接写入

直接写入文件通常是为了更好地处理二进制数据、优化性能、提高灵活性或简化内存管理。这并不意味着在所有情况下都应该使用。选择哪种方法取决于具体的需求和上下文。

2024-01-24 15:45:02 351

原创 QFILE读文件的时候 为什么不直接read而是先转到QTextStream当中在读取

类提供了基本的文件操作功能,如打开、读取、写入和关闭文件。但是,当你提到“先转到。但如果你需要解析或处理文本文件中的结构化数据,那么使用。当中在读取”,实际上是在描述一个常见的模式,用于从文本文件中读取数据。如果你只是简单地读取二进制数据或纯文本数据,那么直接使用。

2024-01-24 15:30:16 315

原创 简单的pri用法

2024-01-23 14:06:55 334

原创 Cortex-A7 MPcore处理器,cortexA7架构,处理器运行模型,寄存器组

Cortex-A7 MPCore 的 L1 可选择 8KB、16KB、32KB、64KB,L2 Cache 可以不配,也可以选择 128KB、256KB、512KB、1024KB。I.MX6UL配置了32KB 的 L1 指令 Cache和32KB 的L1 数据 Cache,以及128KB 的 L2 Cache。Cortex-A7MPCore 使用 ARMv7-A 架构,主要特性如下:①、SIMDv2 扩展整形和浮点向量操作。

2024-01-23 10:05:01 485

原创 关于VMware Ubuntu明明有大量硬盘空间却提示硬盘空间不足的问题

就按博主来。

2024-01-22 11:07:53 355

原创 在Linux系统中,/dev和/sys/dev目录分别存放的是不同类型的设备文件。以及关于Linux目录说明

这些设备文件是由应用层通过mknod函数创建的,如果底层驱动对mknod的设备号有对应的驱动,那么应用程序在open "/dev/**"时,就会调用到底层的驱动。这个目录存放的是系统的所有设备,按照设备挂载的总线类型,组织成层次结构,保存了系统所有的设备。总的来说,/dev目录存放的是应用程序与内核交互的设备文件,而/sys/dev目录存放的是系统的所有设备,这些设备由文件系统进行管理。在Linux系统中,/dev和/sys/dev目录分别存放的是不同类型的设备文件。

2024-01-22 10:20:14 599

原创 linux下交叉编译器以及qmake的安装(用poky更简单!)

先在交叉编译器官网下载arm相关的交叉编译器 然后下载qt源码 再进行编译(有些脚本跟随交叉编译器稍微改改就行)。只要按照博主的来就可以实现。

2024-01-22 08:53:01 570

原创 编译过程四个步骤

预处理:gcc -E hello.c -o hello.i。预处理器处理C语言源代码,扫描程序中所有的#开头的预编译指令,并将它们替换成相应的文本。处理后的代码通常以.i为扩展名。 编译:gcc -S hello.i -o hello.s。编译器将预处理器处理后的代码转换成汇编代码。它会对代码进行语法和语义分析,检查程序的语法错误和类型错误,并生成汇编代码。处理后的代码通常以.s为扩展名。 汇编:gcc -c hello.s -o hello.o。汇编器将汇编代码转换成机器码。它会将汇编代码转换为可执行

2024-01-19 16:51:02 361

原创 嵌入式用虚拟键盘,动态加载(里面有lib)

AsterCasc Home

2024-01-19 12:00:20 386

原创 处理程序中的段错误

【代码】处理程序中的段错误。

2024-01-18 16:02:05 295

原创 快速定位调试,可以打印到日志当中去

#define vaeDebug() qDebug()

2024-01-18 10:30:19 339

原创 Qt高级用法以及日志输出,持续更新

QPaintEngine 类用在 QPainter 和 QPaintDevice 之间,通常情况下对开发人员而言它是透明的,我们无需重新定义 QPaintEngine ,除非需。动态类型转换使用dynamic_cast运算符进行,是程序在运行的过程中进行类型转换,转换不成功会返回空指针或者抛出异常。translate(width() / 2, height() / 2)代表将原点平移到窗口中心位置。// 删除赋值运算符。中,exec函数中的消息循环返回,exec函数也退出,最后返回到调用对话框的代码处。

2024-01-18 10:24:20 890

原创 在编写Qt5程序时候 判断在Qt桌面上又能在arm上面的宏

elif defined(Q_OS_LINUX) && defined(Q_PROCESSOR_ARM) // Linux ARM 平台。#elif defined(Q_OS_MAC) && defined(Q_PROCESSOR_ARM) // Mac ARM 平台。#ifdef Q_OS_WIN // Windows 平台。#else // 其他平台。

2024-01-18 09:22:21 370

原创 Qt----Embebbed

直接获取就好了 底层自动调用QPA。这是qt4 QWS的做法。

2024-01-12 17:44:20 330

原创 qt 利用cmake编译

【代码】qt 利用cmake编译。

2024-01-12 17:40:52 470

原创 c++容器为什么要保证析构函数不能抛出异常

因此,为了确保C++程序的稳定性和可靠性,C++标准规定析构函数不能抛出异常。在编写自己的C++代码时,应该遵循这一规定。如果一个函数在执行过程中可能会抛出异常,那么应该使用try/catch块来捕获并处理这个异常,而不是让异常传播到析构函数中。C++标准库中的容器,如vector、list、map等,在析构函数的设计上有一个重要的约束:析构函数不能抛出异常。

2024-01-12 14:31:36 312

原创 c++ boost---容器与数据结构arrary dynamic_bitset unordered

目录一级目录二级目录三级目录一级目录二级目录三级目录

2024-01-12 13:49:48 329

原创 c++ boost---测试库

lightweight_test 不需要编译,也不需要特定的入口函数,测试断言可以用在程序里的任何地方,就像使用 assert 一样,如果断言失败,就会增加内部的错误计数,lightweight_test 提供函数 boost.report_errors ( ) 来输出测试结果,在测试结束时,我们必须调用 report_errors( ),否则会发生 BOOST_ASSERT 断言错误。正常情况下,BOOST_ASSERT和BOOST_ASSERT_MSG以及C/C++提供的assert宏。

2024-01-12 12:45:40 734

原创 QThread与事件循环

1.QObject继承QThread,重写QThread::run没有事件循环,此时QObject处于创建时线程。 默认QThread::run会调用QThread::exec(),由于重写,所以此时没有调用。2.QObject movetothread(&QThread),具有事件循环,QObject处于QThread线程。3.QThread::run这种没有事件循环方式的QThread用法中,4.8之后,即便里面的QObject对象调用deletelater,qt也能保证在qthread结束后正

2024-01-12 10:28:25 375

原创 C++ Boost--库之小工具

optional也重载了 operator * 和 operator - > 以实现与指针相同的操作 , get ( ) 和 get _ ptr ( ) 能够以函数的形式获得元素的引用和指针 . 需要注意的是它们内部仅使用 **BOOST_ASSERT(断言,egt:BOOST_ASSERT(y!,它很像是个仅能存放一个元素的容器,实现了未初始化的概念:如果元素未初始化,那么容器就是空的,否则,容器内的值就是有效的、已经初始化的值。,就如同一个标准容器对元素的要求,并不需要T具有缺省构造函数,但。

2024-01-10 18:16:07 881

原创 C++boost 库---内存池

【代码】C++boost 库---内存池。

2024-01-09 10:30:13 487

原创 右值引用、移动语义、完美转发

拷贝语意相信大部分人都比较熟悉了,也比较好理解。在这个例子中,每次都会拷贝 s_ 和 v_ 两个成员,最后 cf1、cf2、cf3 三个对象的内容都是一样的。每次执行移动语意,是分别调用 s_ 和 v_ 的移动语意函数——移动语意:移动构造函数 Foo(Foo&&) 、移动赋值操作符 Foo& operator=(Foo&&)。v3 = std::move(v1) 调用的是移动赋值操作符,将 v1 的内容移动给 v3 ——v2 = v1 调用的是拷贝赋值操作符,v2 复制了 v1 的内容 ——

2024-01-08 11:22:04 836

原创 c++boost库---智能指针相关

向 C ++ 引入异常机制后,智能指针由一种技巧升级为一种非常重要的技术,因为如果没有智能指针,程序员必须保证 new 对象能在正确的时机 delete ,必须到处编写异常捕获代码以释放资源,而智能指针则可以在退出作用域时(无论是因正常流程离开还是因异常离开)总调用 delete 来析构在堆上动态分配的对象。它们是轻量级的对象,其速度与原始指针相差无几,都是异常安全的( exceptionsafe ) ,而且对于所指向的类型 T 也仅有一个很小且很合理的要求:类型 T 的析构函数不能抛出异常。

2024-01-08 09:52:25 359

原创 c++boost库---timer相关

初入boost我随便找个学了,后续入门就可以自己研究了。

2024-01-04 17:20:48 371

原创 Visual Studio 2019 配置全局公共库目录(以 VC++ 库目录为例)

Visual Studio 2019 配置全局公共库目录(以 VC++ 库目录为例)_vs2019库文件夹目录-CSDN博客

2024-01-04 17:19:18 421

原创 tcp三次握手四次挥手面试

本来这是一个早已失效的报文段。客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。,TCP通信过程中某一个传输方向上的字节流的每个字节的序号,通过这个来确认发送的数据有序,比如现在序列号为1000,发送了1000,下一个序列号就是2000。

2024-01-03 16:08:33 1242

原创 Qt葵花宝典阅读感受6(与C++ js结合核心)

这本书趋向这种边界的划分,通常对于一个产品的开发这不一定是正确的混合方式,不是对于所有人都适用。最重要的是根据你的团队技能和个人品味而定。在接受推荐的时候保持你的怀疑。下面有一个简短的例子是关于如何在。通常建议的混合方式是在你的应用程序中。因此它使非常适合在声明式QML。社区有一个开放性的问题是在目前。客户端开发的通用语言。语言上添加的命令性语言。

2024-01-03 11:53:51 358

原创 Qt葵花宝典阅读感受5(粒子先放一下)

下面例子演示了使用加载元素项(Loader Element)将两个分离的用户界面部分加载到一个相同的空间。和JavaScript以更加动态的方式,进一步的扩大灵活性。组件可以在运行时加载和实例化,元素能够被销毁。根据不同的状态和逻辑规则,一个实时动态的用户界面已经被创建。它可以连接一个目标元素任意数量的信号。如果加载元素定义了大小,或者通过锚定(anchoring) 定义了宽度和高度,被加载项将会被设置为。)的目标属性,信号可以像正常的方法连接。不管怎样,通过改变目标属性可以在不同的时间监控不同的元素。

2024-01-03 11:22:17 335

原创 Qt葵花宝典阅读感受4

(ParticleGroup)来共享移动时间。默认下,每个例子都属于空("")组。传统的渲染技术实现粒子渲染效果很困难。有一个好消息是你可以。粒子模拟是计算机图形技术的可视化图形效果。,这些参数可以使用传统的动画技术来实现动态效果。使用简单的粒子渲染非常简单。绑定所有元素到一个模拟的粒子系统(派生元素,用来实现粒子的可视化。让我们从一个简单的模拟开始学习。它不同于其它图形渲染,粒子是。(Affector),它可以。一个向系统发射粒子的发射器(在一个系统中,粒子可以使用。

2024-01-02 16:43:49 303

原创 qt元对象以及QTL容器讲解

大部分是true,一个反例是QWidget::minimumWidth()的值从QWidget::minimumSize()中获取,因此它的STORED为false。激发信号的Qt对象无须知道是哪个对象的哪个槽需要接收它发出的信号,而对象的槽也不知道是哪些信号关联了自己。(然而,与创建对象的new操作及删除对象的delete操作相比,信号和槽的运行代价只是他们很少的一部分。QObject说的是对象不能不在同一个线程,而connect的关联对象肯定是在同一个线程,但是对应的信号和槽函数不一定在同一个线程。

2024-01-02 15:55:38 428

原创 Qt葵花宝典阅读感受3

中引进了画布元素(canvas element),允许脚本绘制。画布元素(canvas element)提供了一个依赖于分辨率的位图画布,你可以使用。类似圆形的问题,一些开发者也对于其它的形状的支持进行了讨论。渐变色 的定义比我们想要绘制的矩形更大,所以矩形在它定义的范围内对渐变进行了裁剪。中,如果你需要一个除了矩形外的形状,你需要使用 图片或者使用你自己写的C++在我们画布 中是一个中间垂直的线。画布自身提供了典型的二维笛卡尔坐标系统,左上角是(0,0)坐标。,它们与其它的函数使用是相互独立的。

2023-12-29 18:02:33 1507

原创 Qt葵花宝典阅读感受2

一个焦点区域(focus scope)定义了如果焦点区域接收到焦点,它的最后一个使用focus:true的子元素接收焦点,它将会把焦点传递给最后申请焦点的子元素。视图使用一个垂直方向的滚动条。精心为一个移动的对象挑选一个合适的缓冲类型将会使界面更加自然,例如一个页面的滑出,最初使用缓慢的速度滑出,然后在最后滑出时使用高速滑出,类似翻书一样的效果。额外的间隔区域被用于添加更多的信息,这种机制使用一个状态来控制,当一个链表项展开时,代理项都能输入expanded(展开)状态,在这种状态下一些属性被改变。

2023-12-29 13:50:34 797

线程池epoll多路复用服务器c++

先传一波

2023-06-01

多进程多人聊天室,运用udp协议socket网络编程

具备多人聊天的功能,同时管理员具有群发的功能

2023-03-28

网络词典,unix本地服务器

网络词典,unix本地服务器

2023-03-27

电子词典查询业务,c语言数据库,tcp服务器以及epoll IO多路复用的网络编程项目

电子词典客户端与服务器网路编程 c语言

2023-03-27

空空如也

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

TA关注的人

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