- 博客(104)
- 收藏
- 关注
原创 LINUX嵌入式面经(九)--面试必问篇
②进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。②结构体中,各成员各自占有一块内存,同时共存,在上述结构体中,由于DATE为8字节对齐,所以int car占8字节,其次DATE cow占16字节,最后double dog占8字节,一起占32字节,即sizeof(struct data)=32;SPI总线是全双工通信方式,支持一个主机多个从机,通信是主机可以发生改变,是真正的多主机总线,4跟数据线,CS,MISO,MOSI,SCL,通过片选线来控制与哪个从机进行通信,通过时钟线控制数据收发。
2025-09-26 18:15:00
131
原创 LINUX嵌入式面经(八)--杂项知识点篇
注:inline作用:当在程序中调用一个内联函数时,是将该函数的代码直接插入到调用点,然后执行该段代码,所以在调用过程中不存在程序的跳转与返回问题,而对于普通函数的调用,程序是从主调函数点转去执行被调函数,待被调函数执行完毕后,再返回到主调函数的调用点的下一语句继续执行。先看未定义标识符p,p的左边是*,*p表示一个指针,跳出括号,由于[ ]的结合性大于*,所以*p指向一个大小为10的数组,即(*p)[10]。如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。内存自动申请自动释放。
2025-09-25 14:15:00
30
原创 LINUX嵌入式面经(七)--链表篇
这些是链表的基本操作示例,可以根据需要进行修改和扩展。记得在使用完毕后释放链表所占用的内存,避免内存泄漏。// 指向下一个节点的指针。// 未找到要删除的节点。// 内存分配失败处理。// 节点创建失败处理。
2025-09-25 12:00:00
29
原创 LINUX嵌入式面经(六)--常见算法篇
桶排序 | O(n + k) | O(n + k) | 稳定 || 归并排序 | O(n log n) | O(n) | 稳定 || 基数排序 | O(d(n + k)) | O(n + k) | 稳定 || 希尔排序 | O(n log n) | O(1) | 不稳定 || 快速排序 | O(n log n) | O(log n) | 不稳定 |
2025-09-24 20:00:00
32
原创 LINUX嵌入式面经(五)--杂项概念篇
当 C++ 代码与 C 代码进行混合编译时,可以使用 extern "C" 来告诉编译器将某段代码按照 C 语言的规则进行处理,避免了 C++ 的名称修饰和函数重载导致的链接错误。inline是 C 语言的关键字,用于声明内联函数。编译阶段:const 常量在编译时进行类型检查,具有更强的类型安全性,而 #define 宏定义是简单的文本替换,在预处理阶段进行,没有类型检查。- 内存对齐是为了提高访问效率和处理器的要求,结构体中的成员在内存中按照特定规则对齐,通常以成员大小或者指定的对齐值为基准进行对齐。
2025-09-24 14:00:00
24
原创 LINUX嵌入式面经(四)--ARM单片机篇
Ethernet:Ethernet使用至少四根线,包括一对差分信号线(TX+和TX-,或RX+和RX-),一根时钟线(CLK),以及一根地线(GND)。SPI:SPI通常使用四根线,包括一个主机输出从机输入的数据线(MOSI),一个主机输入从机输出的数据线(MISO),一个时钟线(SCK)用于同步数据传输时序,以及一个片选线(SS/CS)用于选择特定的从机。USB:USB通常使用四根线,包括两根用于双向数据传输的差分信号线(D+和D-),一根用于提供电源(VCC),以及一根地线(GND)。
2025-09-23 22:00:00
25
原创 LINUX嵌入式面经(三)--Linux操作系统概念篇
中断是由外部事件触发的信号,用于中断当前正在执行的程序流程,以处理紧急或优先级较高的任务。堆的大小通常由操作系统管理,并通过特定的分配和释放方法(如malloc和free)来进行内存的分配和释放。操作系统会管理和切换用户态和内核态之间的转换,以确保系统的稳定性、安全性和资源的合理利用。- 内核(Kernel)是操作系统的核心部分,负责管理和控制计算机的硬件资源,提供各种系统服务和功能。堆的大小通常由操作系统管理,并通过特定的分配和释放方法(如malloc和free)来进行内存的分配和释放。
2025-09-23 14:00:00
465
原创 LINUX嵌入式面经(二)--网络篇
MTU的常见值为1500是因为在以太网(Ethernet)中,定义了一种常用的帧格式,称为以太网帧(Ethernet Frame),其中数据字段的最大长度为1500字节。包头+包体:发送方在每个数据包的开头加上包头信息,包头中包含了数据包的长度等信息,接收方首先读取包头来获取数据包的长度,然后根据长度读取对应长度的数据。问题常见于基于流式传输的协议(如TCP),由于数据的发送和接收没有固定的边界,导致多个数据包被一次性发送或接收,造成粘包现象。TCP 是面向连接的协议,提供可靠的数据传输和错误检测机制。
2025-09-22 09:54:42
142
原创 LINUX 嵌入式面经(一)
由于线程共享同一进程的内存空间,因此可以直接访问共享的变量或数据结构,实现高效的通信。在选择线程通信的方式时,需要根据具体的应用场景和需求综合考虑数据量、性能要求、线程间关系以及对隔离性和同步机制的需求,以满足应用程序的要求。进程和线程的状态转换图中,阻塞状态发生在等待某个事件完成或资源可用时,就绪状态是指进程或线程已获取所有必需的资源,并等待被调度执行。资源剥夺策略:当某个进程(线程)无法获取所需资源时,可以主动抢占或回收其他进程(线程)占有的资源,以满足当前进程(线程)的需求。
2025-09-22 09:53:47
337
原创 c++八股必备60题(六)
上述示例中,使用std::cin读取用户输入的整数,并通过std::cout将其输出。动态内存管理:使用std::unique_ptr或std::shared_ptr智能指针代替显式地调用new和delete来管理堆上分配的内存。互斥锁:使用std::lock_guard或std::unique_lock结合std::mutex来实现自动加锁和解锁操作。包括std::ifstream用于读取文件内容,std::ofstream用于写入文件内容,以及std::fstream可同时读写文件。
2025-09-21 20:45:00
26
原创 c++八股必备60题(五)
通过调用适当的函数,可以根据不同的参数类型和数量来执行相应的操作。识别对象的实际类型:通过RTTI,可以在运行时判断一个基类指针或引用所指向的对象的具体派生类类型。它允许在不同类型之间进行无关的转换,并且具有较高的风险和不可移植性,因此应谨慎使用。中的内联函数是一种特殊类型的函数,它可以通过将函数体插入到调用点来提高程序的执行效率。需要注意的是,强制转型操作符应该谨慎使用,确保在合适的情况下进行合理而安全的类型转换。通过函数重载,可以根据传入的参数类型和数量的不同来调用相应的函数。
2025-09-21 11:15:00
27
原创 c++八股必备60题(四)
通过将基类的析构函数声明为虚函数,可以实现动态绑定,在删除(或释放)指向派生类对象的基类指针时,会首先调用派生类的析构函数,然后再调用基类的析构函数。当基类指针指向派生类对象时,如果基类的析构函数不被声明为虚函数,那么在删除(或释放)这个指针时,只会调用基类的析构函数而不会调用派生类的析构函数。它负责释放对象已有的资源,然后为目标对象分配新的资源并将属性进行复制。在编写代码时,需要根据具体情况选择合适的异常安全保证级别,并进行相应的设计和实现,以确保程序在抛出异常时能够正确处理资源和数据结构。
2025-09-21 08:30:00
20
原创 c++八股必备60题(三)
它在析构时会自动释放所管理的资源。(在C++11中已被废弃):auto_ptr 是一种独占所有权的智能指针,类似于 unique_ptr,但它具有不完善的拷贝和赋值语义,并且存在一些潜在的问题。智能指针是C++中的一个类模板,用于管理动态分配的资源(如堆上的对象),自动进行资源的释放,避免内存泄漏等问题。具体而言,在使用动态绑定时,如果基类定义了一个虚函数,并且派生类对该虚函数进行了重写(覆盖),那么在通过基类指针或引用调用该函数时,将根据实际对象的类型来决定执行哪个版本的函数。
2025-09-20 08:30:00
23
原创 c++八股必备60题(二)
通过在类定义中使用类型参数,可以使得类中的成员、方法、构造函数等具有通用性,并且可以根据实际需求进行实例化。在C++中,预处理器(Preprocessor)是一个用于代码预处理的工具,它在编译之前对源代码进行一系列的文本替换和指令处理。(标准模板库)迭代器是一种用于遍历容器中元素的抽象概念,可以让我们以统一的方式访问容器中的元素,而不依赖于容器的具体实现。这样,我们就可以利用迭代器遍历容器中的元素,无论是 vector、list 还是其他容器类型都可以使用类似的方式进行遍历和操作。
2025-09-19 08:30:00
35
原创 嵌入式linux面试必问35题
作为数据接收端时,当设备(无论主从机)接收到I2C 传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发送“应答(ACK)”信号,发送方会继续发送下一个数据;若接收端希望结束数据传输,则向对方发送“非应答(NACK)”信号,发送方接收到该信号后会产生一个停止信号,结束信号传输。当主机发送了8位数据后,会再产生一个时钟,此时主机放开SDA的控制,读取SDA电平,在上拉电阻的影响下,此时SDA默认为高,必须从机拉低,以确认收到数据.包括“应答(ACK)”和“非应答(NACK)”两种信号.
2025-09-18 15:45:00
23
原创 嵌入式linux面试必问35题
串口可以支持多种不同的数据传输协议,可以支持长距离传输,可以在不同的操作系统上实现稳定的数据传输,但是它的数据传输速率较慢,不能支持多设备之间的多点数据传输和多个设备之间的同步数据传输。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。2)加载后额外增加了堆区与栈区,代码区加载的是可执行文件代码段,未初始化数据区加载的是可执行文件BSS段,全局初始化数据区加载的是可执行文件数据段,存储于数据段(全局初始化,静态初始化数据,文字常量(只读))的数据的生存周期为整个程序运行过程。
2025-09-17 23:00:00
36
原创 嵌入式linux面试必问35题
软中断是执行中断指令产生的,无面外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的。②硬中断的中断响应周期,CPU需要发中断回合信号;软中断的中断响应周期,CPU不需发中断回合信号。③硬中断的中断号是由中断控制器提供的;软中断的中断号由指令直接给出,无需使用中断控制器。函数调用和软中断调用的区别是,软中断多了修改特权级和查找中断向量表的功能,其他部分完全一样。软中断调用时将返回地址和CPU状态寄存器内容压栈,修改特权级,根据中断号查找中断向量表,找到ISR中断服务例程地址,跳转执行。
2025-09-17 10:30:00
394
原创 c++面试必问41题(四)
阻塞IO调用者调用了某个函数,等待这个函数返回,期间什么也不做,不停的检查这个函数有没有返回,必须等这个函数返回后才能进行下一步动作。非阻塞IO非阻塞等待,每隔一段时间就去检查IO事件是否就绪。没有就绪就可以做其他事情。信号驱动IOLinux用套接口进行信号驱动IO,安装一个信号处理函数,进程继续运行并不阻塞,当IO事件就绪,进程收到SIGIO信号,然后处理IO事件。IO。
2025-09-16 15:45:00
152
原创 c++面试必问41题(三)
如果是自己的IP地址,则会通过单播的方式,将自己的IP地址和Mac地址根据请求中的源IP地址,响应给计算机;多个数据包被连续存储于连续的缓存中,在对数据包进行读取时由于无法确定发生方的发送边界,而采用某一估测值大小来进行数据读出,若发送方发送数据包的长度和接收方在缓存中读取的数据包长度不一致,就会发生粘包,发送端可能堆积了两次数据,每次100字节一共在发送缓存堆积了200字节的数据,而接收方在接收缓存中一次读取120字节的数据,这时候接收端读取的数据中就包括了下一个报文段的头部,造成了粘包。
2025-09-15 20:43:01
38
原创 c++八股必备60题(一)
当我们使用指向基类对象的指针或引用调用一个虚函数时,程序会根据运行时实际对象类型来确定要调用哪个版本的函数。子类可以继承基类的成员变量和成员函数,并且还可以添加自己特有的成员变量和成员函数。多态性是面向对象编程中的一个概念,它允许同样的函数接口在不同的对象上表现出不同的行为。通过使用指向基类对象的指针或引用调用虚函数时,程序将根据运行时实际对象类型来确定要调用的函数。资源释放:析构函数可以用来释放对象所占有的资源,如动态分配的内存、打开的文件、建立的连接等。这样,在一个常对象上调用该成员函数是合法的。
2025-09-15 20:40:01
46
原创 c++面试必问41题(二)
并且里面的内容是一样的,这样不但达到了拷贝的目的,还不会出现问题,两个对象先后去调用析构函数,分别释放自己指针成员所指向的内存。- HTTP是基于TCP的,而HTTPS是基于TLS(传输层安全性协议)的 - HTTP的往返时间为1RTT,而HTTPS的往返时间为3RTT - HTTP只需要创建一次TCP连接,而HTTPS需要创建两次TCP连接 - HTTP的默认端口号为80,而HTTPS的默认端口号为443 - HTTP的安全性很差,而HTTPS的安全性很强。渲染后的数据,进行相应的页面呈现。
2025-09-15 20:20:42
425
原创 c++面试必问41题(一)
1. 面向过程:接水到盆中 —— 放入衣服 —— 加入洗衣粉 —— 浸泡 —— 搓衣服 —— 过水 —— 拧干 —— 晾干 2. 面向对象:将衣服放入洗衣机 —— 加入洗衣粉 —— 开启 —— 晾干 通过例子可以发现面向对象的方式解决问题更加简单一些,但是面向对象还是基于面向过程的。GET方法是向服务器请求数据的,而POST方法是向服务器上传数据的。进程和线程切换时,需要切换上下文,进程的上下文切换时间开销远远大于线程上下文切换时间,各种页表、打开的文件等都需要切换,耗费资源较大,效率要差一些。
2025-09-15 20:19:32
274
原创 广州-深圳-香港-澳门-珠海-深圳攻略(西安出发)
这篇旅行日记记录了9天的华南深度游行程:首日从西安飞抵广州,品尝地道早茶、游览珠江新城;次日游玩长隆动物园后转往深圳,夜游华强北;第三日前往大梅沙海滩,晚间赴港准备迪士尼之旅;第四天全天畅玩迪士尼乐园;第五天经港澳码头抵澳,游览澳门塔和威尼斯人;第六天逛大三巴后返珠海,漫步情侣路;第七天经深中通道返深,夜赏海上世界烟火;第八天游览世界之窗和人才公园;最后一天从宝安机场返程。全程涵盖粤港珠澳多地特色景点与美食,呈现了一次充实的跨区域旅行体验。(149字)
2025-07-04 15:50:13
109
原创 RRT-connect算法+三阶B样条
其次 RRT-connect 算法加入了贪心策略,RRT 算法在生长 RRT 树的时候, 每产生一个随机点,在通过碰撞检测的条件下,下一个新生成的点与该随机点的方向一致, 随即废弃该随机点。为了完成这一目标,从航迹规划与航迹优化两部分进行设计,在航 迹规划方面采用 RRT-connect 算法进行快速规划,可以在躲避障碍物的前提下提升规划速 度,在航迹优化方面,生成无人机的初始航迹后将航迹离散点作为三阶 B 样条的控制点 进行计算,对初始航迹进行平滑优化,使其符合实际无人机的飞行需求。
2025-06-16 18:36:55
110
原创 25届双非硕士在本科拿到的offer硕士拿不到
三星电子工艺岗,base西安,硕士投了没音。比亚迪软开,base西安,硕士简历过不去。中海油工程天津分,硕士笔试没过。
2025-04-13 19:53:57
82
原创 25届双非控制硕士求职回顾
首先本人的条件:发表了一个中核,一个EI和三个专利,没发二区以上的原因是因为要去实习老师不让,所以自己开摆了再也没写论文(成果都是研二上之前出的)。其他校级的奖学金科研竞赛各项荣誉大概十来项,本科期间有两个省级的竞赛奖,其他就是十来个校级的不计。从七月实习结束开始找工作,开始投提前批,投算法+嵌入式,算法基本全军覆没,最后发现提前批和正式批的offer待遇一样,属于是被溜了。10月签了保底,后面没啥事复习一周考了次公,行测71申论40多,自此放弃公务员梦,翻过年来聚焦于投比签了的更好的公司。
2025-04-13 19:51:24
429
4
原创 融合动态窗口法和改进蚁群算法的多智能体路径规划算法
增加移动障碍物,利用dwa算法进行动态实时避障,最终结果如下图(视频正在上传)3.支持3个不同智能体的路径规划(无人机,无人船,无人车,机器人等)融合动态窗口法和改进蚁群算法的多智能体路径规划算法。1.融合动态窗口法和改进蚁群算法的路径规划。6.支持各个智能体选取不同的起点和终点。2.支持根据自己的需要更改栅格地图。4.可以根据自己需要更改障碍物位置。如下图所示避开静止障碍物。5.支持移动障碍物避障。
2025-04-07 15:26:23
253
原创 嵌入式面经(2)——央企篇
前文得知我只投央企,不投国企,有面试的央企大致有三类:感兴趣的同学可以和我私聊军工央企相关(航空航天,兵器兵工)制造央企相关(三桶油,装备制造)金融运维相关(信通集团,国有银行)接下来我将对我有的面试中询问的面经进行总结。
2025-03-20 12:56:09
318
原创 双非硕士找工作心锝(仅适用于普通人篇)
这篇文章作为在2025届双非控制科学应届生的校招心得,给将要找工作或者正在找工作的同学进行分享,大致从以下几个方面进行介绍:1.家庭情况如何选择企业2.个人情况如何选择行业3.如何写好自己的简历4.如何面试。
2025-03-19 17:35:24
577
原创 找工作记录(7-9月)
科大正式批7.18投递经纬恒润7.20投递北方华创7.22投递oppo7.23投递顺心半导体7.23投递复旦微电子7.23投递搜狐畅游7.23投递万得7.24投递蔚来7.24投递荣耀7.25投递美团7.26投递深圳康冠7.28投递恩智浦7.28投递猿辅导7.28投递卡尔动力7.28投递火羽游戏7.28投递广电运通7.30投递50所7.31投递润科7.31投递海悟集团7.31投递康尼机电7.31投递星网智慧7.31投递安捷伦。
2025-03-12 18:56:14
1955
原创 嵌入式面经(1)
由于类的多态性,基类指针可以指向派生类的对象,如果删除该基类的指针,就会调用该指针指向的派生类析构函数,而派生类的析构函数又自动调用基类的析构函数,这样整个派生类的对象完全被释放。如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除基类指针时,只会调用基类的析构函数而不调用派生类析构函数,这样就会造成派生类对象析构不完全,造成内存泄漏。所以将析构函数声明为虚函数是十分必要的。在实现多态时,当用基类操作派生类,在析构时防止只析构基类而丕板构派生类的状况发生,要将基类的析构函数声明为虚函数。
2025-03-12 11:01:06
163
原创 力扣刷题-9.回文数
从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。是指正序(从左向右)和倒序(从右向左)读都是一样的整数。从右向左读, 为 01。因此它不是一个回文数。你能不将整数转为字符串来解决这个问题吗?是一个回文整数,返回。
2024-09-21 17:35:30
400
原创 力扣刷题28. 找出字符串中第一个匹配项的下标
"leeto" 没有在 "leetcode" 中出现,所以返回 -1。字符串的第一个匹配项的下标(下标从 0 开始)。第一个匹配项的下标是 0 ,所以返回 0。"sad" 在下标 0 和 6 处匹配。
2024-08-03 09:34:35
412
原创 力扣刷题35.搜索查找位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为。
2024-07-12 10:02:06
329
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅