自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP和UDP的区别

四次挥手:主动方发送FIN,被动方发送ACK,被动方发送FIN,主动方发送ACK,(原因:全双工通信:TCP全双工,因此在两个方向上都需要单独关闭。TCP:三次握手:客户端发送FIN 服务端发送ACK 客户端发送FIN(原因:防止旧连接请求突然传到服务器,导致服务器错误地打开一个不需要的新连接,从而浪费服务器资源)(面向连接的过程:在数据传输开始之前,必须在两个端点之间建立一个连接,无连接意味着在数据传输之前不需要建立连接,每个数据包独立发送,不保障到达顺序或可靠性)确保数据的有序性,确认应答机制。

2024-09-08 22:54:29 230

原创 构造函数相关

当使用 `delete` 删除指向派生类对象的基类指针时,首先会调用派生类的析构函数,然后调用基类的析构函数。这样可以确保派生类中的资源先被释放,然后是基类中的资源。当基类的析构函数被声明为虚函数时,这确保了通过基类指针删除派生类对象时,能够正确地调用派生类的析构函数,然后才是基类的析构函数。发生在继承中,子类可以重新定义基类的虚函数,派生类的函数覆盖了基类的虚函数(重写的函数必须具有与基类虚函数。子类的函数与基类的虚函数名称一致,但是参数列表不匹配,故子类的函数不会重写基类的虚函数,而是隐藏了它。

2024-09-07 19:40:46 298

原创 多态(虚函数、纯虚函数、虚函数表)

随后,当执行到派生类的构造函数时,如果派生类有自己的虚函数表(通常是因为派生类重写了基类的虚函数或添加了新的虚函数),则对象的 vptr 会被更新为指向派生类的虚函数表。不同对象vptr共享同一片内存,一个vptr变成null会影响其他的 和深拷贝,重新分配新内存,不会影响),但是指向的地址是一样的(都是指向类的虚函数表,也就是会共享相同的虚函数表指针内容)建议进行深拷贝。,存储在对象中的指针vptr,指向该对象所属类的虚函数表,就是指向虚函数表的指针。虚函数表是虚函数地址的数组,指向代码区中的地方。

2024-09-01 23:00:30 689

原创 IIC小结

线程化通常用于提高系统的并发处理能力、确保实时性、保护共享资源、执行异步操作、提高系统吞吐量、分离任务以及响应外部事件。根据具体的需求和系统设计,可以选择合适的线程管理方式来实现这些目标。补充:input子系统——管理比如按键输入、键盘、鼠标、触摸屏等的子系统。

2024-08-27 09:38:15 1013

原创 相关项目小结

如果程序在处理第一条命令时没有及时读取第二条命令的数据,那么在非阻塞模式下,可能会导致蜂鸣器的控制延迟,或者程序在读取时只接收到第二条命令的一部分,导致控制失败或误操作。问题:对串口的通信读取采用的是read()阻塞式读取,等待数据到达时,CPU会挂起【当前线程】,因此对于页面刷新,ap3216定时读取都会产生影响,导致整个页面卡顿,无法响应用户操作。),触发相应的槽函数。设备驱动,挂载,生成对应的设备文件/dev/xxx,通过对/dev/xxx的操作,比如open,close等实现对设备的操作。

2024-08-25 07:46:39 316

原创 6.s081 lab4小结

在上面,调用定时函数 handler 实际上是通过修改 trapframe->epc 进而在返回到用户空间时调用定时函数. 但这也同时产生了一个问题, 即原本的 epc已被覆盖, 无法回到中断前的用户代码执行的位置, 同时在执行 handler() 函数后, 相关的寄存器的值也会受到影响。因为在函数执行过程中,寄存器的值可能会被修改,所以在函数开始执行前,需要保存这些寄存器的原始值,以便在函数返回后能够恢复。s0 ,也就是fp, 是帧指针:用于保存上一个函数(也就是调用当前函数的函数)的堆栈帧的位置。

2024-04-30 11:39:41 618 1

原创 6.s081 lab3小结(页表相关)

其中:在多级页表系统中(以三级页表为例),有效的页表项(即PTE_V位被设置的页表项 pte & PTE_V)可以出现在任何级别的页表中。:这些页表项存在于第一级和第二级页表中,它们的作用是指向下一级的页表。这些页表项通常不包含访问权限位(),因为它们不直接映射到物理内存页,而是指向另一个页表。:这些页表项通常存在于最后一级的页表中,它们直接指向物理内存的页。这些页表项包含访问权限位(),这些权限位指定了对应的物理页可以被如何访问(读、写、执行等)。因此,当检查一个页表项是否包含访问权限位(即。

2024-04-23 11:44:49 1595

原创 6.s081 lab2小结

本lab2 主要是为了熟悉操作系统的调用流程,整个两个实验做下来,大体对这个流程有了一知半解。通常通过库函数(常用的系统调用函数)或者直接使用软件中断指令(比如int syscall指令等),这会调用usys.c中相应的函数(封装了系统调用的细节,比如系统调用编号和必要)usys.c中的函数根据不同的操作系统和硬件平台,通过设置寄存器来传递系统调用编号和参数。这些函数还会执行一个特定的指令(比如syscall指令,在x86-64架构上)来触发操作系统的中断处理。

2024-04-18 10:14:58 1629 1

原创 6.s081 lab1小结

①这里注意两个函数:fstat 和 stat, 它们都是用来返回“相关文件状态信息”的,但是,fstat区别于另外其他系统调用的地方在于,fstat系统调用接受的是 一个“文件描述符”fd,而另外两个则直接接受“文件全路径”。① “|”为管道的意思,在命令行中使用管道时,实际上是在创建一个从前一个命令到下一个命令的数据流,也就是说,会首先执行管道前的命令,并。大体思路就是: 管道两端是父进程和子进程,创建读取即可,这里需要谨慎注意管道的读写端的关,每个进程都拥有对管道的读和写权力,注意关闭!

2024-04-15 16:56:51 1100 1

原创 字符设备驱动框架

给出字符设备驱动的整体框架:

2024-03-23 09:39:47 102 1

原创 【Qt】Arm 下运行qt出现:/lib/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by ./01_test)

解决方案: 在Ubuntu编译项目时,不要用qmake!然后make再cp过去即可。

2024-03-12 09:22:32 461 1

原创 常见的shell命令

ps(process state): 默认只显示与当前用户的命令行会话相关联的进程,相当于一次性地快照当前进程状态,并不会实时更新。进程查看器,动态的、交互式地界面,可以实时查看系统资源的使用情况并监控进程的活动。系统监视命令,用于查看系统中运行的进程和资源的使用情况。个人记录,不定时更新。列出系统中的进程信息。

2024-02-23 08:56:52 389

原创 进程和线程

同一个程序的多次执行会对应多个进程(用PID来区分)。同时,当一个进程被创建后,操作系统会记录进程的运行情况、分配的资源等等,这些信息会被放在进程控制块Process Control Block PCB中,因此PCB是进程存在的唯一标志。进程创建,创建PCB。进程结束,回收PCB。2. 线程:轻量级进程,是CPU基本的执行单位,程序执行流的最小单位,增加并发度。调度的基 本单位。1. 进程:动态的,程序的一次执行过程。是资源分配的基本单位。

2024-02-22 19:26:53 387 1

原创 对设备树作用的一些个人理解

核心就是将这个开发板的板级信息和SOC级信息分开描述,在这里,单独描述开发板板级信息(比如:开发板上有哪些IIC设备等)的文件是.dts文件,而单独描述SOC级信息的文件是.dtsi文件。一个芯片可能会被很多的开发板平台所搭载,在设备树出现之前,开发板的板级硬件信息和开发板上的SOC级信息都被写入同一个.c文件里。而这些.c文件都会被编译进Linux的内核,这样就会造成linux信息的冗余。".dtsi" 文件:包含了 SOC级的信息,描述了 SOC 的特性和功能,以及 SOC 内部各个设备的配置和连接。

2024-02-13 11:15:28 536 1

原创 Linux内核编译 multiple definition of `yylloc‘ 问题解决

将/script/dts 下除了dtc-lexer.lex.c_shipped 以外的其他文件中的yylloc都用extern修饰,即可编译成功。刚开始用vi编译器,根据网络上的教程,改对应文件下的yylloc,发现改不完呀,经常一会儿又冒出来一个,那索性直接在vscode下改。

2024-01-26 15:11:24 518 1

原创 Ubuntu 无法上网

ifconfig 只能看到lo 看不到ens33网卡;直接使用以上两条命令配置ens33网络接口,即可正常上网。

2024-01-21 11:32:44 349

原创 VMware 磁盘扩容的便捷方法(不丢失原始数据)

vmware下ubuntu磁盘空间扩展(不丢失数据)

2024-01-19 12:15:00 1105 1

空空如也

空空如也

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

TA关注的人

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