- 博客(23)
- 收藏
- 关注
原创 c++八股
当子类新定义了一个虚函数时,该虚函数会被加入到子类自己的虚函数表中。在 C++ 中,每个含有虚函数的类都有一个虚函数表(vtable),用于存储该类的虚函数地址。在调用一个对象的虚函数时,程序会根据对象的实际类型(而不是引用或指针的类型)去访问相应的虚函数表,并调用正确的虚函数对于申请的动态数组来说,shared_ptr 指针默认的释放规则是不支持释放数组的,只能自定义对应的释放规则,才能正确地释放申请的堆内存。对于申请的动态数组,释放规则可以。
2024-08-04 22:31:28
958
原创 嵌入式八股文
通常情况:我总结的规律如下:结构体中间:各结构体的起始地址按照各个类型变量默认规则进行摆放,但除了 char 类型变量(详见一),char 类型变量一般遵循 2 的倍数地址开始存储。结构体最后(重要):视结构体中最大类型是哪一个,如果是像 int 类型那样是 4 个字节的,并且结构体的结尾地址不满足 4 的倍数的话,向离最近的 4 的倍数地址补齐;3、#pragma pack (n):让变量强制按照 n 的倍数进行对齐,并会影响到结构体结尾地址的补齐(详见四的通常情况下关于结尾地址补齐的描述)。
2024-07-30 23:52:44
336
原创 linux驱动开发学习笔记
设备驱动设计面向操作系统内核的接口,设计的系统包含操作系统的时候,驱动变成了硬件和内核的连接桥,把单一的“驱使硬件设备行动”变成了“操作系统内与硬件交互的模块”,对外呈现为操作系统的API,不再为应用直接提供接口。在Linux系统中,网络设备面向数据包的接收和发送而设计,它并不倾向于对应于文件系统的节点。第一张是应用和驱动平级,驱动里包含了业务逻辑,不符合如软件 高内聚,低耦合的要求。第二张是直接应用中操作硬件寄存器,不单独设计驱动,导致不存在可以重用的驱动代码。下面两种是不合理的设计。
2024-07-24 10:47:25
243
原创 linux进程及调度
a把进程的所有都设置成 mask(01 02 03 )上的cpu运行。task_struct还存在,父进程可以查看子进程的死亡原因。内核里的pid tgid 就是每个线程的pid。限制pid号为11296 的进程的占用率为20%用户空间的pid 进程pid getpid()ctrl z 可以暂停进程,fg 继续跑进程。通过wait_pid查看僵尸态的子进程原因。内存泄漏,运行时间越久,耗费内存越多。pid signal等对进程的描述。相关的资源已经释放了,无内存泄漏,
2024-07-24 00:03:19
226
原创 fm33le023
阵列组织格式包含 page(512B)、sector(2KB)、 mat(128KB)Deepsleep rtc走时,ram保持,cpu内核保持,1.2uA。存储空间 128Kb 的flash 10w次的擦写寿命。arm cortex-M0内核 最高64mhz的主频。支持宽电压,1.8-5.5v。运行120uA/MHZ。
2024-07-04 16:18:19
256
原创 利用opencv获取RTSP视频流时出现的pps sps参数集缺失错误的解决
h264 (Constrained Baseline), yuv420p(progressive), 1920x1080, 25 fps, 25 tbr, 90k tbn的rtsp视频流,在获取frame时,对frame进行判断,没有成功获取的帧都会被跳过,这样避免了解码失败的帧导致的程序奔溃。opencv会利用底层的ffmpeg库进行视频流解码,结果因为获取不到压缩视频流的参数而报错。设置参数了后,依然存在问题,需要改进opencv videocapture端的代码。
2024-04-17 16:05:15
920
4
原创 ubuntu C++配置mysql连接出现的问题及解决思路
补充:之所以skip-grant-tables也要关闭,是因为skip-grant-tables的开启会导致skip-networking也会开启,可以这么理解:skip-grant-tables开启时,即使用户和密码随便输入也能连接mysql,因此很不安全,而skip-networking开启时mysql不能远程连接,因此起到一个保护数据库的作用。查看文件中是否有skip-networking和skip-grant-tables,有的话把这两条注释掉或删掉。然后使用该用户名和密码。更改密码,见下博客。
2023-11-02 21:25:58
180
原创 linux 系统安装qt5.15.2报错缺库的解决
每一个都需要安装,安装结束后需要对环境变量进行设置。具体参考这三个文章,不要直接复制我写的命令进行使用。这个网页里找到缺少的文件下载,解压。
2023-10-21 22:03:57
837
1
原创 ubuntu双系统 efi分区uuid出错
C盘固态盘系统迁移导致,在bios里进入Ubuntu出错,直接进入。更改 fstab中的efi的uuid 即可正常启动ubuntu。找 到 efi uuid=40b1-6905。在固态硬盘盒中的固态里安装Ubuntu系统。参考下面一条博客发现,前面的报错都无关紧要。输入journalctl -xb -p3。
2023-06-27 15:54:18
1031
1
原创 模式识别作业
最近又在鼓捣tensorflow,搞到一个比较简单的安装方法,在这里分享一下之前在网上看到的tensorflow安装教程,尤其是GPU版因为依赖cuda和cudnn,所以很多教程都是分开单独安装,很多小伙伴搞不清楚一不小心就会有版本冲突问题,这里介绍一个简单的方法1. 安装anaconda,安装就不过多赘述,按各自需要安装就好anaconda官网下载安装2. anaconda配置打开cmd切换到国内的镜像源(为什么要切换原因不用我说了吧...)切换成清华的镜像conda co..
2023-06-16 11:43:04
125
1
原创 natnet/vrpn_cliernt环境配置
basalt_ros_vrpn_client(ezth_vrpn_package) 和vrpn_ros_client(ros官方的vrpn_package)
2023-03-27 20:22:49
962
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人