c++学习笔记
浪子嗳宇
这个作者很懒,什么都没留下…
展开
-
关于Linux驱动开发的中断处理
1.相关名词轮询: CPU不断的去读硬件状态。另一种是当硬件完成某种事件后,给 CPU一个中断,让 CPU 停下手上的事情,去处理这个中断。内部中断: 是指中断请求信号与代码指令之间的同步执行,在一条指令执行完毕后,CPU才能进行中断,不能在执行期间。异步中断:是由外部硬件设备产生,又称为外部中断,与同步中断相反,异步中断可在任何时间产生,包括指令执行期间,所以也被称为中断。IRQ:IRQ的全称是“Interrupt ReQue...原创 2021-08-17 18:55:01 · 299 阅读 · 0 评论 -
c++报错信息之Segmentation faults
这个问题常发生在linux运行c++项目的情况下,俗称为“段错误”。发生原因一般分为四种情况: 1.访问了不存在的内存地址 2.访问了系统保护的内存地址 3.访问了只读的内存地址 4.堆栈溢出解决方法: 首先需要获取发生段错误的代码位置,这里介绍两种方法:1.可以使用catchsegv ./test指令来获取段错误信息,出错信息显示在Backtrace中 2.使用dmesg指令,...原创 2021-07-08 10:39:54 · 941 阅读 · 0 评论 -
c++报错信息之‘::clock_t‘ has not been declared
在qt5中调试c语言迁移过来的项目的时候,遇到了c和c++之间的差异问题。这里介绍关于time头文件的报错信息。 在运行项目的时候,项目报错信息如下:/usr/include/c++/4.8.3/ctime:60:11: ???: '::clock_t' has not been declaredusing ::clock_t;^/usr/include/c++/4.8.3/ctime:61:11: ???: '::time_t' has not been de...原创 2021-07-08 10:28:48 · 4009 阅读 · 1 评论 -
c++中报错error: undefined reference to `xxx‘
在c++中报错error: undefined reference to `xxx',意思是引用了未定义的方法。造成这个问题有很多原因,这里介绍我遇到的两个问题。 1.未引用对应的头文件或者是在头文件中引用的库函数版本不一致,在不同版本的库中可能对同一个实现方法起的名字不一致,造成了这个问题。 2.使用extern关键字的方法不对,extern有很多用法,这里extern起到的作用是引用其他文件的函数。a.h://a.h#ifndef...原创 2021-06-25 14:52:36 · 5206 阅读 · 0 评论