- 博客(24)
- 收藏
- 关注
原创 malloc/free和new/delete的区别是什么
5>new 申请空间时需要什么类型就直接返回什么类型的空间,而malloc申请时默认返回的是(void *),需要强制转换为自己需要的类型;4>new申请空间的时候,会按照类型自动计算分配空间的大小,而malloc需要手动用sizeof()计算;1> malloc/free是C中的库函数,new/delete是C++中的关键字;2>new在申请空间的同时可以进行初始化,而malloc不可以;6>new申请空间空间时,会调用构造函数,而malloc不会;
2023-10-11 15:07:16 256
原创 如何加快大型程序的编译速度?
优化构建环境:确保开发环境的硬件配置足够强大,例如使用高性能的处理器、增加内存容量等,以提升编译的效率。 多线程编译:利用多核处理器的并行计算能力,使用并行编译工具进行多线程编译,从而提高编译效率。 预编译头文件:将一些稳定的和不经常修改的头文件预编译为预编译头文件(PCH),可以减少编译时的头文件依赖解析和编译时间。 减少头文件的包含数量:过多的头文件包含会增加编译的时间,可以通过减少不必要的头文件包含、使用前向声明等方式来降低编译时间。 使用增量编译:只重新编译修改的文件及其相关依赖,而不是整个
2023-10-11 14:36:38 380
原创 利用mqtt.fx软件实现聊天功能,fx订阅“up“主题,程序订阅“down“主题。使用如下的json通信协议。
【代码】利用mqtt.fx软件实现聊天功能,fx订阅“up“主题,程序订阅“down“主题。使用如下的json通信协议。
2023-09-13 17:19:02 253
原创 简述以下流程工具(VB、QT/C++、STemuin、Linux、SQL、Figma、keil、ARM单片机编程、RTOS、UCOS、Git等)的掌握情况
VB(Visual Basic):这是一种基于事件驱动的编程语言,主要用于Windows应用程序的开发。我对VB有基本的了解,能够使用它进行简单的Windows应用程序开发。 QT/C++:QT是一种跨平台的C++图形用户界面应用程序开发框架。我对QT/C++有深入的理解,能够使用它进行复杂的应用程序开发。 STemuin:这是一种基于STM32单片机的开发环境,用于编程、调试和仿真。我对STemuin有基本的了解,能够使用它进行STM32单片机的开发。 Linux:这是一种开源的操作系统,广泛用于服
2023-09-13 15:15:13 541
原创 谈一下对应研发流程(需求开发流程、方案设计、图纸BOM清单设计、代码设计、样机制作、测试流程、工艺工装设计等)的理解及相应流程规范的掌握情况?
对应研发流程的理解和流程规范的掌握情况如下:
2023-09-13 15:10:42 273 1
原创 C基础的面试题
而言,主要是针对long,和double而言,因为这两个是64位,正常来说是进行两次的读取,volaile可以保证原子性,但是对于 i++的话 这时候i++也是不保证原子性的,不管是不是volatile,因为有两步操作。3:原子性(保证一定的原子性),可以保证对于double 的操作,是原子性的,不会在程序对其进行操作的时候,被打断,造成脏读;指针是C语言和其他一些高级语言中的一个重要概念,它可以理解为一个变量,其存储的值是另一个变量的地址。2:对于没有依赖的指令,jvm会进行指令重排,有可能使程序失效;
2023-09-12 08:22:57 74
原创 ARM裸机开发和驱动开发的区别?
arm裸机只需要一个main就可以了。驱动是依赖内核的框架和操作硬件的过程。ARM裸机开发和驱动开发的区别?ARM裸机开发和驱动开发的区别?arm裸机同时只能执行一份代码。依赖内核编译,依赖内核执行。驱动可以同时执行多份代码。共同点:都能操作硬件。
2023-08-30 18:32:20 132 1
原创 Linux底层课程笔记
指令流水线机制的引入确实能够大大的提升指令执行的速度,但在实际执行程序的过程中很多情况下流水线时是无法形成的,比如芯片刚上电的前两个周期、执行跳转指令后的两个周期等。机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植。所以指令流水线的引入以及优化只能使平均指令周期不断的接近1而不可能真正的达到1,且流水线级数越多芯片设计的复杂,程度就越高,芯片的功耗就越高。
2023-08-23 20:09:04 90
原创 STM32时钟
由系统时钟SYSCLK分频得到,一般不分频,等于系统时钟,HCLK是高速外设时钟,是给外部设备的,比如内存,flash。是一个定时设备,位于Cortex-M0内核中,和NVIC捆绑(可以产生中断信号),产生SysTick异常(IRQ异常号15)可以对输入的时钟进行计数,系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。定时器本质上是一个计数器,可对输入的时钟进行计数,并在计数值达到设定值时触发中断,当这个计数器的输入是一个准确可靠的基准时钟时,对基准时钟计数的过程就是计时的过程。
2023-08-23 19:49:51 227
原创 SPI协议+中断
中断是微处理器外部发送的,通过中断通道送入处理器内部,一般是硬件引起的,比如按键中断、串口接收中断,而异常通常是微处理器内部发生的,大多是软件引起的,比如除法出错异常,特权调用异常等待。当发生突发事件时,比如外部输入信号触发的中断,系统会立即打断当前正在执行的程序,转而执行与该事件相关的中断服务函数。处理器的中断可以电平的形式的,也可以是脉冲形式的,这样中断控制器就可以处理任何中断源。每个中断都有一个相应的优先级,中断嵌套使得某个中断能够打断正在执行的较低优先级中断,从而及时响应更高优先级的中断请求。
2023-08-23 19:37:15 2898
原创 STM32串口通信
在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。:通信双方有自己独立的系统时钟,大家约定好通信的速度。发送过程:由CPU或DMA向发送数据寄存器(TDR)写入要发送的数据,由发送移位寄存器将数据按位移动到发送端口。两根信号线,一根发送数据,另一根接收数据,真正实现同时收发数据,速度快。:指的是同一时刻可以收或发多个bit位的信息,因此需要多根信号线才行。
2023-08-23 19:13:54 58
原创 GPIO编程
GPIO(General-purpose input/output)通用输入输出接口GP General-purpose 通用I input 输入 O output 输出通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。其作用和功能是非常重要的。
2023-08-23 18:56:19 158
原创 谈谈你对ARM的认识?
1-ARM是一家公司,ARM公司是一家芯片知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。3 - ARM代表一种技术。具有性能高、成本低和能耗节省的特点。在智能机、平板电脑、嵌入控制、多媒体数字等处理器领域拥有主导地位。2-ARM处理器,ARM处理器是英国Acom公司有限公司设计的低功耗低成本的第一款RISC微处理器。
2023-08-07 19:41:25 97
原创 什么是外设?如何理解片上外设?
集成度高:片上外设多个模块都嵌入到处理器芯片内部,极大地降低了PCB面积和电路复杂度。高效性:片上外设能够与主处理器实现高速的数据传输,响应时间短,执行效率高。低功耗:处理器和片上外设采用相同的工艺,能够满足高密度和低功耗的需求。可靠性高:提高了整体系统的可靠性和稳定性,也降低了电磁干扰的可能。
2023-08-07 19:39:34 1131
原创 AHB和APB的区别?
AHB是高速总线,是一种系统总线,它主要负责连接处理器、DMA等一些内部接口。AHB系统由主模块、从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。APB是低速总线,它主要负责连接外围设备,它又分为APB1和APB2,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。
2023-08-07 19:38:57 927
原创 C++小作业
定义一个图形类(Shape),由此类派生出两个字类,分别是圆类(Circle)、矩形类(Rectangle)。通过对象调用类的成员函数print_area()、父类引用指向对象、父类指针指向对象。
2023-07-13 11:47:29 186 1
原创 项目:电子词典
项目要求:1.登录注册功能,不能重复登录,重复注册。用户信息也存储在数据库中2.单词查询功能3.历史记录功能,存储单词,意思,以及查询时间,存储在数据库4基于TCP,支持多客户端连接采用数据库保存用户信息与历史记录将dict.txt的数据导入到数据库中保存7.返回上级、按下ctrl+c退出客户端后,该客户端退出登录
2023-07-04 17:11:34 86
原创 编程读写一个文件test.txt,每隔1秒向文件中写入一行数据,类似这样: 1, 2007-7-30 15:16:42 2, 2007-7-30 15:16:43该程序应该无限循环。
编程读写一个文件test.txt,每隔1秒向文件中写入一行数据,类似这样:1,2007-7-3015:16:422,2007-7-3015:16:43该程序应该无限循环,直到按Ctrl+C中断程序。再次启动程序写文件时可以追加到原文件之后,并且序号能够接续上次的序 号,比如:1,2007-7-3015:16:422,2007-7-3015:16:433,2007-7-3015:19:024,2007-7-3015:19:03
2023-06-19 19:36:38 167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人