- 博客(20)
- 收藏
- 关注
原创 c++面试八股文-3
本文摘要:介绍了C++中变量存储位置与作用域、构造函数与析构函数、类与结构体区别、深浅拷贝以及友元和继承机制。全局变量存储在静态区,局部变量存储在栈区;构造函数分为无参/有参和普通/拷贝构造;类默认private访问,结构体默认public;浅拷贝共享内存,深拷贝独立内存;友元允许访问私有成员;继承涉及访问控制、构造顺序和菱形继承问题。重点阐述了对象初始化与清理机制,以及继承中的成员访问规则,为C++面向对象编程提供了基础概念框架。
2026-01-06 00:18:31
576
原创 c++面试八股文-2
本文主要介绍了内存管理和指针相关的核心概念。在内存泄漏部分,通过"客厅箱子"的比喻形象解释了内存泄漏现象及其危害,并建议使用智能指针作为解决方案。指针部分详细阐述了野指针的产生原因及防范措施,包括指针初始化、释放后置空等问题。同时介绍了数组指针与指针数组、函数指针与指针函数的区别,并通过代码示例展示了指针和引用在自增操作时的不同行为。最后对比了指针与引用的核心区别,包括初始化要求、可变性和空值处理等方面。全文通过生活化比喻和代码实例,帮助理解这些重要的编程概念。
2026-01-04 23:16:02
814
原创 c++面试八股文-1
本文摘要:文章系统介绍了C++核心概念,包括指针与引用的区别、const关键字的多种用法(常量指针、指针常量、函数修饰等)、volatile的作用场景(中断、多线程、硬件访问)。详细解析了static关键字的四种应用(全局/局部变量、类成员),对比了#define与const、new/delete与malloc/free的差异。此外,还阐述了strlen与sizeof的区别、struct与union的内存机制、typedef与#define的本质差异,并通过代码示例展示了函数指针的用法。全文以技术对比为主线
2026-01-02 01:16:45
649
原创 linux下驱动开发
uboot属于bootloader的一种,Linux系统的启动必须要一个bootloader程序,用于将Linux内核从flash(NANDSDMMC等拷贝到DDR中,最后启动Linux内核,这是uboot的主要任务之一。一般来讲我们所使用的uboot都是半导体商定制的uboot,区别于原始的uboot。
2026-01-21 23:54:42
590
原创 优化RK3588模型部署:NPU加速实战
模型→ONNX→RKNN→板端推理将PC 端训练的模型(PyTorch/TensorFlow)转换为 ONNX 中间件,再通过RKNN Toolkit2工具将中间间转换为RKNN ,然后将其拷贝到 RK3588 ,最终板端用 RKNNLite 加载并推理。
2026-01-21 00:10:22
94
原创 嵌入式项目-项目实践
摘要:本文设计了一套智能家居监测系统,通过传感器实时采集室内温度、湿度、光照度、CO2和天然气浓度等数据,并在QT界面显示。当检测到CO2、天然气浓度超标或温度过高时,系统会触发本地声光报警并发送警报至指定手机。系统支持语音交互和触摸屏两种控制方式,实现了家居环境的智能化监测与报警功能。
2026-01-15 00:13:23
27
原创 c++面试-项目知识点-线程间通信(传输数据)
摘要:线程间通信的核心是共享内存和同步机制。主要方式包括:1)共享变量配合互斥锁保证安全;2)条件变量实现"等待-唤醒"机制;3)信号量控制并发访问。I2C协议适用于多设备、低速场景,SPI协议则更适合高速、全双工通信。选择协议需考虑外设数量、传输速度等因素。线程通信相比进程通信更高效,因其共享进程地址空间,只需关注数据安全共享而非跨内存传递。
2026-01-14 00:01:11
297
原创 c++随笔记录
本文总结了C++基础与核心编程的关键知识点,主要包括:1. C++基础部分:详细介绍了sizeof与strlen的区别、三目运算符、数组名作用、指针与引用、const关键字、结构体等核心概念;2. C++核心编程:重点讲解了面向对象的三大特性(封装、继承、多态),包括类的构造/析构函数、深/浅拷贝、this指针、友元等特性,以及继承方式和多态实现;3. 内存管理:对比了new/delete与malloc/free的区别,分析了define与const/typedef的差异;4. 特殊关键字:解释了stati
2026-01-12 00:01:09
937
原创 正点原子IMX6ULL Linux系统固化(烧写)
Mfgtool2-eMMC-ddr512-eMMC进行系统固化;(固化到EMMC,mfgtool先向板子上的DDR下载一个Linux系统,然后用这个Linux系统完成后续的烧写工作)注3:在固化(烧录)过程总,连接板端串口,通过MobaXterm查看固化的过程比较直观感受每步的操作。3.因为是基于USB_OTG固化带EMMC,固化完成后,拨码开关调整至EMMC模式。USB-OTG连接,这里查看一下数据线是不是只有充电功能,没有数据传输功能。连接成功后出现下图2所示的界面。,但是电脑与板端已经通过。
2025-12-29 23:29:47
246
原创 ubuntu下基于vim的CMAKEList.txt程序编译运行
首先明确,程序的编译主要两种方式,基于CMAKEList.txt(cmake ..)的方式和命令行gcc的方法(gcc hello.c -o hello,hello就是你最后的可执行文件)。当存在多个相互调用的cpp文件时,基于CMAKEList.txt的方法会有更大的优势,故而本文针对第一种方法进行解释说明。:表示「OpenCV 是必须的依赖」,如果找不到 OpenCV(比如没安装),CMake 会直接终止并报错,避免后续编译 / 链接失败;这里更具需求不同,代码功能不同,不再赘述。
2025-12-15 20:03:53
295
原创 按键扫描函数(正点原子)
,key_up被初始化为1,此时如果有按键按下,进入if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))语句,key_up被赋值为0,并且返回返回值参与下一步的逻辑运算,此时等待此次操作结束,再次调用key=KEY_Scan(0);函数时,key_up被再次赋值为1,如果此时再有按键按下,继续上述的操作。总结来讲,上述(u8 KEY_Scan(u8 mode))函数主要时检测是否有按键按下的函数,如果有按键按下,并且返回到底是那个按键按下。//标记按键已经被按下。
2025-05-21 00:42:15
626
原创 stm32工程创建
如果利用stm32开发一个新的功能应用,从头开始搭建工程非常慢,这时我们可以利用已有的工程去进行开发(站在巨人的肩膀去看世界),这里我们以正点原子工程为例,讲述如何添加新的功能。2.接着利用keil打开.uvprojx文件,点击下图2红框所示的位置,创建key.c和key.h文件,将文件保存在上图红框所示的文件夹下面;3.接着双击HARDWARE将key.c文件添加到工程中,如下图3所示,添加完成后,会在左侧HARDWARE文件夹下面看到key.c文件;4.添加key.h头文件,如下图4所示。
2025-05-19 22:56:55
380
原创 ubuntu下安装labelme
在ubuntu下安装labelme首先应安装anaconda,anaconda下载可以从ubuntu下网页直接下载,但是我发现特别慢,所以我先在windows下下载好linux下对应的anaconda。下载好anaconda后使用如下命令安装anaconda。包含了安装包所在路径。
2024-12-11 21:45:41
970
原创 windows与服务器和Ubuntu之间通过FZ互传文件
在下图所示红框内依次输入(这个好像没有特定限制),然后点击连接过程会在红框下面的区域显示;
2024-12-11 21:12:05
414
原创 python文件生成可执行exe文件
注意:这里的your_script.py为你想要生成exe文件的python文件名称。执行完打包命令后,PyInstaller 会在你的工作目录下创建一个。文件夹,里面会包含一个 your_script.exe。文件(如果你指定的 Python 文件名是。会根据你的 Python 文件自动生成一个。文件就是你要生成的可执行文件。文件,指定如何打包应用程序。
2024-11-13 20:30:00
398
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅