- 博客(69)
- 收藏
- 关注
原创 量化掉点分析
PyTorch 提供了多种量化方法,以适应不同的模型和应用场景。这些方法可以分为两大类:基于 Eager Mode 的手动量化和基于 FX Graph 的自动化量化。Eager mode是。
2025-03-12 10:41:35
804
原创 C/C++面试题
申请了内存,使用完没有释放;申请了一片内存,没有指针指向它,那它就泄漏了;(未释放,不匹配,虚析构,循环引用)不可以,这样会使得每个包含头文件的cpp文件都会单独存在一个静态/全局变量,引起空间浪费和链接错误;可以,但必须要用初始化列表初始化;左值能取地址,右值不能取地址;左值引用指向具有标识符的对象,用于传统的引用操作;右值引用在移动语义和完美转发场景;// 使用移动语义将source向量的内容移动到destination向量。
2024-09-23 09:51:57
725
原创 RTOS(7)队列
下面的结构体里包含了:头部指针,写指针,读指针,长度,项目大小,两个链表;写队列的时候,写指针指向头部,写进去之后,+=itemsize,移动到下一个位置;读队列的时候,读指针指向上一次读取的位置,先+=itemsize,然后再读取该位置的数据;
2024-08-07 17:33:30
355
原创 RTOS(9)中断机制
freertos将中断切分成两块,高优先级和低优先级,高优先级的不可以运行rtos的api,低优先级的可以,systick,pendsv,用户的一些外部中断都是属于低优先级的;freertos关中断的时候,也不是所有中断都关,只是关了低优先级这部分,防止影响其同步互斥;ISR: 1.不可以阻塞,即可返回 2.可以任务状态切换。,任务可以用两套API,中断只能用ISR的API,任务:1.可以阻塞 2. 可以任务状态切换。ISR不会发起调度,在函数外调度;效率高:避免不必要的任务切换,在。
2024-08-07 00:35:45
275
原创 V4L2读取摄像头资源
帧缓冲出队之后,接下来便可读取数据了,然后对数据进行处理, 比如对数据进行转化,如RGB888转RGB565,将转换后的数据刷到FrameBuffer上进行显示。处理完后再入队继续采集。调用 ioctl()前,定义一个该类型变量,调用 ioctl()时、将变量的指针作为 ioctl()的第三个参数传入。,我们需要将其映射到用户空间中,这样,应用程序读取映射区的数据实际上就是读取内核维护的帧缓冲中的数据。它为Linux下的视频驱动提供了统一的接口,使得应用程序可以使用统一的API操作不同的视频设备。
2024-06-21 18:19:20
1405
原创 vscode + CMake编译(opencv显示图片工程)
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件;Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用;CMake 的组态档取名为 CMakeLists.txt;
2024-06-19 17:58:54
972
原创 RTOS(6)任务
①先写任务函数②定义函数的handle指针③调用动态创建任务的API:xTaskCreate(任务函数,任务名称,栈深度,参数,优先级,handle指针)①事先分配好任务控制块事先提供好栈②调用APIxTaskStaticCreate();实现函数。
2024-05-28 15:52:01
667
原创 RTOS(4)保存现场与恢复现场(结合汇编分析)
1.在执行add_val()时,调用c函数的时候,第一个参数保存在R0里,第二个参数保存在R1里;所以,R0=&a,R1=&b,LR=下一条指令的地址(也就是165行);2.将局部变量和返回地址压入栈中;3.R2=a;将R2写入sp所指的位置,那么栈中原来存R3的位置变成了新的R2,也就是tmp这个临时变量;4.R2=b=2;R3=tmp=1;将R2写入sp所指的位置,tmp=3;5.R2=tmp=3;a=R2;6.将R3,LR弹出栈。LR赋值给PC,跳转到返回地址继续执行;
2024-05-20 11:09:52
494
原创 RTOS(5)源码结构与移植适配
Source :根目录下是核心文件,这些文件是通用的;-- portable 目录下是移植时需要实现的文件--keil(编译器相关)--RVDS(架构文件)-- ARM_CM3--MemMang(内存管理)
2024-05-19 21:51:37
698
原创 FreeRTOS面试题汇总
如果一个低优先级的任务持有一个信号量,高优先级的任务想要用这个信号量,造成的死锁怎么解决。12.FreeRTOS的多任务之间如何去进行通信的,什么方法,它实现原理是什么。任务间数据传输一共有三种形式,用的最多的是消息队列,其次是全局变量和信号量。简历上写了了解RTOS,问了rtos的问题,用过哪些函数。讲解FreeRtos原理,调度机制,底层原理,代码调用。FreeRTOS,你的三个任务控制,请问你是怎么实现的。freertos中EventBits_t是干啥的?freertos使任务切换的方式有哪些?
2024-05-19 20:54:03
7796
原创 RTOS(2)最重要的基础:堆与栈
例如分配了taskA和taskB两个任务,那么将会为两个任务分别创建Stack栈,来存储任务中使用到的函数的返回地址和局部变量,两个栈互不干扰和影响;这个时候我们会发现,每一次LR写入新值都会覆盖旧值,所以我们每次都需要将LR中的值写入栈中,LR——>栈;然后,调用a_fun函数(这个时候会将LR --> 栈中,不然LR会被覆盖,就回不去了)在函数a_fun的开头,划分了m字节的空间,并将LR指向(Return 0的地址),为局部变量a划分出了局部空间。栈的使用过程,是RTOS多任务的核心。
2024-05-19 17:08:32
437
原创 RTOS(6)任务管理
我们是怎么实现,两个同优先级的任务之间交替执行的呢?tick为1ms一个周期,可以通过修改时钟配置修改;running:正在进行的任务3为running;ready:任务1和任务2处于ready;blocked(阻塞状态):等待某事,比如小孩口中的饭还没吃完,就得等吃完才喂;suspend(暂停状态):主动休息或者被命令休息;如何管理这些任务呢?链表readylist:A->B->C。
2023-10-19 11:13:05
202
原创 RTOS(5)创建任务函数详解
面向对象的编程思想我们想要使用应该结构体,但又不想了解其内部时,一般使用;句柄是指针指向结构体,只是同一个结构体类型的另外一种名称而已;
2023-10-18 12:01:02
273
原创 极简c++(8)抽象类与多态
如何实现多态:1.创建类的继承关系图2.所以类对象都可以调用的这个函数3.创建父类指针数组4.子类的地址赋给父类指针5.指针调用虚函数。
2023-10-14 17:50:16
351
原创 极简C++(2) 类与对象
类是对一群具有相同属性和相同行为的对象的描述我们来构造一个圆形的类:构造类最重要的就是数据和操作,所以我们圆的类需要数据:半径,操作:计算周长函数和计算面积的函数;
2023-10-10 09:23:54
96
原创 C储存类与作用域
任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量:在的局部变量在所有的全局变量在形式参数的定义中。
2023-10-09 10:56:08
68
原创 C 数组
数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。数组中的特定元素可以通过索引访问,第一个索引值为数组名本身是一个常量指针,意味着它的值是不能被改变的,一旦确定,就不能再指向其他地方。我们可以使用&运算符来获取数组的地址需要注意的是,虽然数组名表示数组的地址,但在大多数情况下,数组名会自动转换为指向数组首元素的指针。
2023-10-09 10:55:59
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人