- 博客(85)
- 收藏
- 关注
原创 C++经典面试题:内存泄露是什么?如何排查?
1.内存泄露的定义:内存泄漏简单的说就是申请了⼀块内存空间,使⽤完毕后没有释放掉。它的⼀般表现⽅式是程序运⾏时间越⻓,占⽤内存越多,最终⽤尽全部内存,整个系统崩溃。⾸先可以通过观察猜测是否可能发⽣内存泄漏, Linux 中使⽤ swap 命令观察还有多少可⽤的交换空间,在⼀两分钟内键⼊该命令三到四次,看看可⽤的交换区是否在减少。当然也有⽤于内存调试,内存泄漏检测以及性能分析的软件开发⼯具 valgrind 这样的⼯具来进⾏内存泄漏的检测。3.在编译时使用 -fsanitize=address。
2023-10-26 19:49:56 1354
原创 C++面试常见问题多态如何实现?虚函数的底层如何实现?
在语法上, 成员函数之前加virtual关键字就让这个函数变成虚函数虚函数的作用是实现多态性,即通过基类访问派生类的函数在虚函数后面添加 =0 ,虚函数就成为纯虚函数在很多情况下,基类生成对象很不合理。为了解决这个问题,引入了纯虚函数的概念,将函数定义为纯虚函数,派生类中必须重写实现纯虚函数。对于实现了纯虚函数的子类,该纯虚函数在子类中就变成了虚函数。
2023-10-24 11:44:38 414
原创 操作系统 常见面试问题之系统寻址空间是多大?虚拟地址与物理地址?内存映射是什么?详细总结
C++ 常见面试问题之系统寻址空间是多大?虚拟地址与物理地址?内存映射是什么?详细总结
2023-10-23 16:47:18 2688 1
原创 linux-----内核(Kernel)与文件系统(File System)
内核提供了对文件系统的管理和操作接口,通过VFS为不同类型的文件系统提供统一的访问方式,管理文件的权限、缓存、挂载等,从而实现了数据的存取、管理和保护功能。内核中有一个称为虚拟文件系统(Virtual File System, VFS)的层,它为不同的文件系统(如ext4、NTFS、FAT、Btrfs等)提供了。与硬件设备通信,提供统一的接口,使得不同硬件设备可以通过相同的方式与操作系统交互。,从而使得这些设备上的数据可以通过统一的文件系统接口访问。的创建、调度、终止等操作,并管理进程之间的通信。
2024-08-29 23:00:46 555
原创 linux---------epoll
是 Linux 内核提供的一种高效的 I/O 事件通知机制,用于处理大量并发的文件描述符(文件、套接字等)。与传统的 I/O 多路复用机制(如。提供与事件相关的附加数据(如文件描述符)。通过检查这些信息,应用程序可以高效地处理 I/O 事件。函数来管理文件描述符的注册、修改或删除。具有更好的性能和扩展性,特别是在处理大量文件描述符时。该函数返回一个文件描述符,用于后续的。指示发生的事件类型,
2024-08-27 22:53:20 402
原创 嵌入式--设备树&驱动
设备树和驱动程序的关系是紧密互补的。设备树负责描述硬件信息,驱动程序根据这些信息进行初始化和控制硬件。设备树的引入提高了嵌入式系统的灵活性、可移植性和开发效率,使得操作系统能够适应不同的硬件配置,而无需修改内核代码。这种架构在现代嵌入式Linux系统中被广泛应用。
2024-08-21 21:32:25 767
原创 嵌入式软件学习--linux(1)
echo $PATH 查看环境变量。若在,可执行;若不在,1.将当前路径添加到环境变量 2.将文件移动到环境变量的路径中。
2024-04-28 20:45:37 311
原创 linux 内存满了无法训练 如何查看内存占用
如此可找到占用较大的文件路径,删除即可。会显示当前路径下各个文件的内存占用。会显示当前路径下的总内存占用。
2024-01-03 10:10:29 371
原创 报错记录 pip3 无法下载 subprocess.CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘ returned non-zero ex
将查找出来的文件 复制到报错处位置。
2023-12-12 10:52:53 611
原创 错误记录 apt --fixed-broken install
1.报错 E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).无法直接运行apt --fix-broken install解决 直接报错 没有输入y那个步骤。无法直接使用 sudo apt-get remove。解决方式 更换源 以前使用的是华为源 换成阿里源。无法使用 sudo dpkg -r 删除。查了很多解决方式无法解决。
2023-12-12 10:37:20 1400
原创 AscendCL--数据预处理---CANN应用开发
1.数据预处理概述AIPPDVPP:数字视觉预处理当前对外提供了5个功能模块,分别是: 视频编码模块 (VENC),视频解码模块(VDEC),JPEG图片编码 (PEGE) ,JPEG图片解码 (JPEGD)视觉预处理模块 (VPC)其中,视频解码模块提供对H.264/H.265格式视频的解码功能,对输入的视频码流进行解码并输出图片可用于视频结构化等场景;与之相对应的,视频编码模块可将原始YUV数据帧编码成H.264/H.265格式的视频流,用于直接展示等场景。
2023-12-08 15:43:14 558
原创 AscendCL--运行资源管理
device context stream创建销毁顺序。销毁 stream context device。device context stream 关系。创建 device context stream。
2023-12-07 09:19:35 76
原创 结构体和对象在内存中的布局
内存对齐 提高访问效率内存对齐规则:1.数据的起始地址必须是其自身大小的整数倍2.结构体和对象的对齐值是其成员中占用内存最大的数据类型的大小。
2023-12-01 09:39:28 284
原创 linux系统编程--文件描述符
O: output,输出),对文件进行相应操作(open()、close()、write() 、read()等)。所以在程序运行起来后每个进程都会有一张文件描述符的表,标准输入、标准输出、标准错误输出设备文件被打开,对应的文件描述符0、1、2记录在表中。打开现存文件或者新建文件,系统 (内核)会返回一个文件描述符,用来指定已打开的文件,相当于一打开文件的标号。在程序运行起来后打开其他文件时,系统会返回文件描述符表中最小可用的文件描述符,并将此文件描述符记录在表中。持续更新............
2023-11-30 17:57:16 75
原创 C语言必备知识--函数返回局部变量
1. 不能以局部变量的方式创建字符串数组的首地址2.如果函数的返回值非要是一个局部变量的地址,那么该局部变量一定要申明为static类型3.返回指向字符串常量的指针4.数组不能作为函数返回值5.在函数中可以返回局部变量的值,但是不能返回局部变量的地址6.可以返回堆内存的指针。
2023-11-30 17:48:32 512
原创 嵌入式常见协议---IIC协议
全称 Inter-Integrated Circuit ,字面意思是集成电路之间,是I²C BUS简称,中文应该叫集成电路总线,是一种串行通信总线(同步串行半双工),使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。应答信号为低电平则为有效应答位(ACK简称应答位),表示成功接收该字节;总结:在 I2C 通信中,主设备主动控制通信的开始和结束,以及数据的读取和写入。:当SCLK时钟信号一直处于高电平状态时,SDA线由低电平跳变到高电平这个动作,表示结束信号。
2023-11-28 17:03:51 442
原创 MindStudio学习记录三:推理应用开发 acl mindx sdk
可视化模块化设计中间的图片与处理 是基于AIPP的可视化处理 profiling性能分析将图片转成bin文件· 不涉及动态batch 所以将-1改为1配置流程化完成工程搭建 图片解码 图片缩放 图片的裁剪 图片推理 .
2023-11-27 09:41:50 261
原创 MindStudio学习记录二:训练模型开发
1.训练模型开发流程2.训练模型开发3.训练脚本迁移 三个工具包3.1TensorFlow GPU2Ascend3.2 PyTorch GPU2Ascend3.3MindConverter3.4训练可视化总结:
2023-11-25 11:59:53 47
原创 交叉编译安装时报错 ./install.sh: 15: ./install.sh: Bad substitution
【代码】交叉编译安装时报错 ./install.sh: 15: ./install.sh: Bad substitution。
2023-11-23 19:14:40 151
原创 SD3403/SS928 视频采集调试记录
问题1:运行 ./sample_vio 0 报错。问题2:板卡连接摄像模组后无法ping同。下一步 外接显示屏查看输入输出 ...错误原因: 摄像头模组连接错误。
2023-11-22 09:55:10 195
原创 hisi芯片常见专有名词总结SVP MPP NNIE ACL
络,如 Alexnet、VGG16、Googlenet、Resnet18、Resnet50 等分类网络,Faster RCNN、YOLO、SSD、RFCN 等检测网络,以及 SegNet、FCN 等场景分割网络。本文档描述 HiMPP 媒体处理软件的各个 API 的使用方法,以及相关的数据结构和错误。应用程序启动 MPP 业务前,必须完成 MPP 系统初始化工作。阅媒体处理软件开发包的各种参考信息,包括 API、头文件、错误码等。成了代码编辑、编译、调试、执行、画框、相似度比对等功能,具体参考 5。
2023-11-21 14:39:21 630
原创 SD3403/SS928 烧录 Uboot Kernel Rootfs是什么
内核是操作系统的核心部分,负责管理计算机的硬件和软件资源,为用户空间进程提供支持和服务. 但是内核本身并不包含用户空间进程,用户空间进程需要通过文件系统来获取执行文件和相关资源。Boot(Universal Boot Loader),即通用Bootloader,是用来引导启动内核的,它的最终目的就是从flash中读出内核,放到内存(SDRAM)中,启动内核。根文件系统之所以在前面加一个“根”,说明它是加载其它文件系统的“根”,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。
2023-11-21 11:11:18 183
原创 C++的 四种强制类型转换 1.static_cast,2.dynamic_cast, 3.const_cast,4.reinterpret_cast
(1)用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;转换如果成功的话返回的是指向类的指针或引用,转换失败的话则会返回。(4)把任何类型的表达式转换成void类型。没有运行时类型检查来保证转换的安全性。(3)把空指针转换成目标类型的空指针。是运行时处理的,运行时要进行类型检查。)不能用于内置的基本数据类型的强制转换。内所描述的目标类型必须为指针或引用。
2023-11-13 21:25:07 220
原创 C++智能指针 精炼总结
3.shared_ptr:共享式 可有多个共享指针同时指向一个对象,采用引用计数的方式计数记录被几个指针共享,当共享指针被释放时,计数-1,直到0后被指向的对象和资源被释放。环形依赖:两个shared_ptr相互引用,那么这两个指针的引用计数永远不会下降为0,因此资源永远不会被释放。2.unique_ptr:独占式 同一时间只允许一个智能指针可以指向一个对象。4.weak_ptr:弱引用 指向共享指针指向的对象,不控制对象生命周期,构造或者析构不会影响计数。usr_count() 查看所有者个数;
2023-11-13 17:07:52 176
原创 linux 下非sudo安装cmake
Binary Distribution已经编译好的。Source Distribution 未编译源代码。最后一行添加 写到bin目录。5.查看cmake版本。
2023-11-12 14:39:48 389
原创 深度探究深度学习常见数据类型INT8 FP32 FP16的区别即优缺点
相对于FP32提供了较低的精度,按照理论来说可以跑机器学习这些任务,但是FP16会出现精度溢出和舍入误差,所以很多应用都是使用混合精度计算的也就是FP16+FP32模式。双精度FP64 :浮点数使用64位表示,提供更好的精度和动态范围。单精度FP32:浮点数使用32位表示,适用于大多数科学计算和通用计算任务。固定点数INT8:固定点数使用固定的小数点位置来表示数值,可以使用定点数算法进行计算。后面的数字越高意味着精度越高能够支持的运算复杂度也就越高 适配场景也就越广,同样对推理端的计算资源要求也就越高;
2023-11-12 10:21:15 5351
原创 MySQL 常见面试题总结:索引 InnoDB索引 MyISAM索引
覆盖索引方法:将被查询的字段,建立到联合索引里去张%";age,name覆盖了查询的age优点:覆盖索引不会回表查询,查询效率也是比较高的。
2023-11-11 09:13:09 204
原创 CAN 协议常见面试题总结
第二段:就是发送仲裁段,其中包括ID帧和数据帧类型,告诉其他通讯设备,需要和哪个通讯设备进行通讯,以及帧的类型,CAN通讯设备的优先级,就是由ID号决定的,往往ID号越小优先级别越高。为标准帧还是扩展帧,由仲裁段最后一位IDE位的电平决定的,IDE为显性则为标准帧,IDE为隐性则为扩展帧。在高速CAN通讯的过程中,可能会产生电感现象,对CAN通讯的高低电压产生影响,使得系统无法判别显性或者隐形电平,因此并联一个终端电阻,使得在阻抗高的时候电流可以从终端电阻流过,从而保证CAN通讯的正常运行。
2023-11-08 21:27:13 1103
原创 linux gdb 调试 常见调试命令介绍+总结
gdb mainshow argscontibue/cquit/qlist/linfo/ib 1print/p iptype idisplayundisplaystep/snext/nfinishuntil学习总结10.1 gdb的准备工作_哔哩哔哩_bilibili。
2023-11-08 16:00:29 257
原创 linux 下各个查找指令区别: find locate which grep
locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。-r:如果需要搜索目录中的文件内容,需要进行递归操作,必须指定该参数。
2023-11-08 10:42:13 137
原创 面试题:经典常见排序算法 插入 冒泡 选择 归并 快速排序
选择第一个值为中心轴,则先移动R指针,当R值小于中心轴时RL交换 ,此时R-1,L+1,开始移动 L ,L指针向右遍历 当发现大于选定值时与R交换 ,交换后L-1,R-1。从第i=1个数据和第i+1个数据 进行比较 大的向后移 直到移动到他的为止(以最大值为主要观察对象 最大值逐个排到正确位置)从全局缩小选择范围 ,遍历选择最小的数据排到前面,缩小查找排序空间。时间复杂度 O(nlogn)时间复杂度 O(nlogn)时间复杂度 O(n2)时间复杂度 O(n2)时间复杂度 O(n2)
2023-11-08 09:29:49 84
原创 mount: mounting 192.***.***.***:/home/nfsroot on /sharefs failed: No route to host
问题:mount: mounting 192.***.***.***:/home/nfsroot on /sharefs failed: No route to host。2.确定主机 虚拟机 开发板 是否可以相互ping通 如果不可以 检查桥接网络设置是否正确 检查IP配置是否正确。3.如果都没问题 请反复检查 挂载指令输入是否正确 IP是否为和板端同一网段下的IP地址。解决1.检查主机防火墙是否关闭 虚拟机防火墙 一般不用特别注意。
2023-11-07 10:30:48 520
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人