自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(222)
  • 资源 (3)
  • 收藏
  • 关注

原创 嵌入式软件工程师or Linux C/C++工程师技术面专题(60篇+,200多个问题)-- 决战2021春招和秋招、疫情之下跳槽(永久更新!!!)

今年受疫情影响,企业经营必不可免地受到冲击,企业在选人用人方面比以往都更加谨慎,招聘也更加苛刻。hr都试图用最低的成本去招最优秀的人才。本人从事嵌入式软件开发多年,结合自己的经验,推出了《嵌入式软件工程师技术面专题》,预计会有40篇,分成硬件协议、多进程多线程编程、网络编程、linux基础、C/C++等几大模块,每一篇在末尾都总结了相关提问,其中有些知识,即使是工作了两三年的同学也未必都懂,所以社招的同学也可以看,对于找工作绝对有帮助。**不打无准备之战,提前做好准备,方可立于不败之地**。欢迎大家订阅,只

2020-09-13 11:12:01 10492 51

原创 top、ps命令查看进程中的线程方法

方法一:PSps -a显示所有进程pid,“-T”选项可以开启线程查看。eg: ps -aT 显示所有线程方法二: Toptop用于实时查看各个线程情况,用top命令的“-H”选项,该选项会列出所有Linux线程。eg1. top -H 所有线程eg2. top -H -p 特定进程中的线程...

2020-11-26 20:31:09 2

原创 C++设置线程名字

f

2020-11-26 19:59:22 1

原创 aws命令小记

hhh

2020-11-26 19:50:28

原创 MyEclipse10百度网盘下载

MyEclipse10 下载地址:链接:https://pan.baidu.com/s/1rwdThfwKCt45RDkdTBwZeg提取码:dqj4

2020-11-21 18:48:55 56

转载 cmd中javac和java使用及注意事项--暨运行第一个简单的java程序

一、简述:cmd中,执行java命令与javac命令的区别:javac:是编译命令,将java源文件编译成.class字节码文件。例如:javac hello.java将生成hello.class文件。java:是运行字节码文件的工具;由java虚拟机对字节码进行解释和运行。例如:java hello表示执行生成的hello.class文件。二、详述:下面我们来写个java文件试试。1、打开记事本,输入一个类+主函数public class Hello{ public static

2020-11-12 22:50:57 29

原创 python小记

字符串转16进制>>> bstr=codecs.encode(b'HK57','hex')>>> print(bstr)b'484b3537'二进制格式写只能写字节串,非二进制格式可以写字符串>>> print(bstr)b'21402324255e262a2829'>>> >>> f=open('filetest','wb')>>> f.write(bstr)20>&g

2020-11-12 00:07:33 11

原创 cmake基础教程(二)在Linux下为一个最简单的工程写一个最简单的CMakeLists.txt生成Makefile

文章标题很长,但是交代了所有的要素:指定平台是linux,事情是写个简单的CMakeLists.txt,目标是生成Makefile,完成编译,前提条件是准备一个最简单的工程。入门案例1:单个源文件strep 1:对于简单的项目,只需要写几行代码就可以了。例如,假设现在我们的项目中只有一个源文件 main.cc ,该程序的用途是计算两个数相加。#include <stdio.h>#include <stdlib.h>long long add(int para1, in

2020-11-08 23:35:56 11

原创 cmake基础教程(五)cmake生成debug和release两个版本程序

可以通过设置变量CMAKE_BUILD_TYPE生成 debug 版和 release 版的程序。该变量可以的取值是 Debug Release RelWithDebInfo 和 MinSizeRel。当这个变量值为 Debug 的时候,CMake 会使用变量CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作为编译选项生成 Makefile,当这个变量值为 Release 的时候,工程会使用变量CMAKE_CXX_FLAGS_RELEASE 和 CMAKE

2020-11-08 23:30:32 33

转载 cmake基础教程(3)--cmake变量

文章目录自定义变量变量引用方式常用变量cmake调用环境变量的方式系统信息主要的开关选项自定义变量主要有隐式定义和显式定义两种。隐式定义的一个例子是PROJECT指令,它会隐式的定义< projectname >_BINARY_DIR和< projectname >_SOURCE_DIR两个变量;显式定义使用SET指令构建自定义变量,比如:SET(HELLO_SRCmain.c)就可以通过${HELLO_SRC}来引用这个自定义变量了。变量引用方式使用${}进行变量的引用;

2020-11-08 23:15:20 20

原创 cmake基础教程 内部构建和外部构建

内部构建和外部构建这个词这么装逼,其实实际上面非常简单,别被吓到.通俗一点,内部构建就是在项目内部,有CMakeList.txt的地方,直接cmake .,比如我们前面讲的简单案例都是最简单的内部构建. 结果你也看见了,就是在项目下面生成了很多的临时文件。外部构建就是不直接在项目下面运行cmake, 而是自己建立一个接受cmake之后的临时文件的文件夹,然后再该文件夹下面调用cmake <CMakeList_path> 来构建.运行 make 构建工程,就会在当前目录(build 目录)中获

2020-11-07 20:14:53 23

原创 cmake 基础教程(8)cmake常用语法速查

cmake_minimum_required (VERSION 2.8) CMake 最低版本号要求project (Demo1) 设置项目名称add_executable(Demo main.cc) 指定生成可执行程序aux_source_directory(/project/src DIR_SRCS)查找指定目录下的所有源文件,并将名称保存到 DIR_SRCS 变量这句话常和下面配合使用:add_executable(Demo ${DIR_SRCS})add_subdirect

2020-11-07 19:23:17 14

原创 CMake基础教程(1)什么是cmake

参考cmake官方教程:https://cmake.org/cmake/help/latest/guide/tutorial/index.html#introductionCMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建

2020-11-07 15:52:55 26

原创 ros catkin包配置文件package.xml

参考:http://wiki.ros.org/catkin/package.xml1. 概述包清单是一个名为package.xml 的 XML文件,必须包含在任何符合 catkin 的包的根文件夹中。此文件定义有关包的属性,如包名称、版本号、作者、维护者以及其他 catkin 包的依赖项。2. 格式 2(推荐)这是新包的推荐格式。还建议将较旧的格式 1 包迁移到格式 2。有关从格式 1 迁移到格式 2 的说明,请参阅在 catkin API 文档中从格式 1迁移到格式 2。2.1 基本结构每个包

2020-11-07 12:29:06 19

原创 ros catkin包构建文件CMakeLists.txt介绍

CMakeLists.txt 文件为 CMake构建系统构建软件包的输入文件。描述如何编译代码、安装到哪里。catkin使用的CMakeLists.txt文件是在cmake的基础上做了一层封装。参考:http://wiki.ros.org/catkin/CMakeLists.txt文章目录总体结构和顺序具体函数1 cmake版本2 包名3 寻找依赖的cmake包使能python模块支持单元测试指定安装规则总体结构和顺序CMakeLists.txt文件必须遵循下面的格式,否则包可能无法正确编译,下面

2020-11-07 11:23:15 21

原创 Ubuntu国内镜像快速下载(华为云、阿里云、东莞理工)

华为云镜像地址:http://mirrors.huaweicloud.com/repository/ubuntu-releases/阿里云镜像地址:http://mirrors.aliyun.com/ubuntu-releases/东莞理工https://mirrors.dgut.edu.cn/ubuntu-releases/

2020-11-06 23:52:17 116

原创 vmware workstation 各个版本百度网盘下载

提取码都是123415.5.2https://pan.baidu.com/s/1oMwOuCqk27REKYTLkrRzyw

2020-11-06 23:47:47 322

原创 带你探究linux下服务管理机制(service xxx start)

我们经常使用service xxx start或者stop去启动或者暂停linux下的某项服务,那么大家知道这背后的机制吗?今天二进制君就带大家涨涨知识。文章目录service 介绍基本使用设置开机自动启动service 介绍官方介绍(英文): https://linux.die.net/man/8/service。服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux 中非

2020-11-01 11:53:03 42

原创 知识储备之Linux下进程间同步和通信机制培训第三天(3)信号量

文章目录1. 信号量2. 信号量的工作原理3. 二元信号量4. 信号量如何保护共享资源5. 与信号量相关的函数5.1 创建信号量5.2 删除和初始化信号量5.3 改变信号量的值5.4 sembuf中sem_flg的设置问题6.信号量实现进程间同步1. 信号量产生背景:多个程序同时访问一个共享资源可能会引发一系列问题,所以我们需要一种方法,来保证共享资源的有序访问。信号量本质上是一个计数器,用于控制多进程对共享资源的存取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属

2020-10-18 14:01:03 887 1

原创 知识储备之Linux下进程间同步和通信机制培训第一天(0)综述

1 产生背景同一个进程中的线程间由于共享内存地址空间,因此可以使用全局变量或者开放地址的堆空间直接通信, 不需要额外的开销。但是进程间由于各自空间地址独立,导致不可能直接通信,因此需要使用额外的开销——进程间通信机制。IPC的全称是Inter-process Comminication,就是进程间通信。2 进程通信的应用场景数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。

2020-10-18 13:59:11 862

原创 知识储备之Linux下进程间同步和通信机制培训第一天(1)无名管道

文章目录1、管道的概念2、管道创建3、编程实战4、探究管道的读写行为1、管道的概念管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,用来完成数据传送。读端 和 写端管道特点半双工只能用于具有亲缘关系的进程之间。管道的缓冲区是有限的(ubuntu实测64K)。管道所传送的是无格式字节流,这就要求管道的读出方和写入方必须事先约定好数据的格式,比如多少字节算作一个消息(或命令,或记录)等等。管道的数据被读走后就没了。向读端关闭的管道内写数据时,write() 所在进程会(收到 SI

2020-10-18 13:54:42 872

原创 Linux C/C++ or 嵌入式面试之《网络编程系列》(13) select/poll/epoll区别

文章目录selectPollepoll涉及到网络编程时,IO多路复用问及的概率非常大。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。select,poll,epoll都是IO多路复用的机制。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。关于同步IO和

2020-09-25 13:44:49 143 1

原创 程序员简洁简历模板分享

文章目录灰白色调蓝灰色调深绿色调灰白色调https://pan.baidu.com/s/1qB7P-9QjkTcv_GEwm4b94g提取码:9wdi蓝灰色调https://pan.baidu.com/s/1rx9ghG0EfdGJA1TXj51mmA提取码:iad6深绿色调https://pan.baidu.com/s/1TvlyX0PUrrHCoDqWkRnb6Q提取码:v1r2...

2020-09-10 19:31:55 262

原创 非技术面问题杂项汇总

1、您对我们公司了解多少?在面试之前,最好简单了解下公司,最直接的途径就是访问官网,至少要知道g公司主要业务和产品。2、你还有什么要问的吗?对于技术面,可以这么说:假如我有幸加入贵公司,主要工作是什么?一方面是体现你对这份工作感性兴趣,另一方面这个问题对自己也挺重要的,多了解工作内容,不然后面进去发现不是自己喜欢的工作,会很难受的。3、你选择离职的原因是什么?对于跳槽来说,这个问题是必问的。这个问题大家情况都不一样,结合自身情况吧,但最好不要过分diss老东家。4、未来有什么职业规划?基本上

2020-09-07 17:35:09 233

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较

C语言的++、–运算符在此不讨论。文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较1、前置后置增减运算符重载的形式自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载

2020-09-01 19:13:14 131

原创 Linux C/C++ or 嵌入式面试之《网络编程系列》(6) 套接字编程杂项讨论

文章目录关于socket阻塞与非阻塞情况下的recv、send、read、write返回值烦人的SIGPIPE信号关于socket阻塞与非阻塞情况下的recv、send、read、write返回值read/recv:阻塞与非阻塞recv返回值没有区分,都是<0:出错,=0:对端关闭,>0:接收到的数据大小。特别:非阻塞模式下返回值 <0时并且(errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)的情况 下认

2020-09-01 11:40:05 300

原创 Linux C/C++ or 嵌入式面试之《C++ STL系列》(2) 关联式容器面试问题汇总

占个坑

2020-08-29 22:14:54 200

原创 Linux C/C++ or 嵌入式面试之《C++ STL系列》(1) 序列式容器面试问题汇总

C++中vector和list的区别vector和数组类似,拥有一段连续的内存空间。vector申请的是一段连续的内存,当插入新的元素内存不够时,通常以2倍重新申请更大的一块内存,将原来的元素拷贝过去,释放旧空间。因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。list是由双向链表实现的,因此内存空间是不连续的。只能通过指针访问数据,所以list的随机存取非常没有效率,时间复杂度为o(n); 但由于链表的特点,能高效地进行插入和删除。vector拥有一段连续

2020-08-29 15:06:35 306

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(15) 几种常用的排序算法C实现

文章目录1、冒泡排序法2、选择排序3、插入排序4、快速排序(快排)5、归并排序1、冒泡排序法算法思想让数组中相邻两个数字进行比较,如果是升序排列,如果左边的大于右边,则交换,相当于将较大的数往后挪。第一趟有n个数据,需要比较n-1次,可以将最大的数挪到数组最末端,第二趟只有n-1个数据了,只需要比较n-2次…每一趟可以决出一个数,n个数只要决出n-1个数的位置,剩下一个数也就定了,所以最多需要比较n-1趟。总共需要比较1+ 2 + … + n-1 = n(n-1)/2,所以算法复杂度是O(n^2

2020-08-28 23:39:23 366

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(5) C++ this、const关键字面试汇总

文章目录1、this指针2、const关键字问题1、this指针this 指针是一个隐含于每一个非static成员函数中的特殊指针,它指向该成员函数调用者的对象。当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。成员函数函数体内所有对类成员的访问,都会被转化为“this->类成员”的方式。this 指针被隐含地声明为: ClassName *const this,这意味着不能给 this 指针赋值;在 ClassName 类的 const

2020-08-28 19:22:43 254

原创 Linux C/C++ or 嵌入式面试之《网络编程系列》(14) 几种网络服务器模型

模型1:多线程模型每来一个连接,服务器就会新建一个线程来处理该连接的读写事件。特点:1)采用阻塞式 I/O 模型读取数据;2)每个连接都需要独立的线程完成数据读取,业务处理,数据返回的完整操作。存在问题:1)当并发数较大时,需要创建大量线程来处理连接,系统资源占用较大;2)连接建立后,如果当前线程暂时没有数据可读,则线程就阻塞在 read 操作上,造成线程资源浪费。因此,为了解决这种一个线程对应一个客户端模式带来的问题,提出了采用线程池的方式,也就说创建一个固定大小的线程池,来一个客户端,

2020-08-28 16:34:20 241

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(4) C语言结构体对齐、枚举、宏、联合体面试问题汇总

结构体对齐问题常常是作为笔试题出现。文章目录结构体对齐问题枚举与宏联合体和结构体区别C和C++结构体区别结构体对齐问题网上总结的几条规则都不对,根据经验判断吧。(1)按结构体最大成员对齐,(但32位机下double、long long按照4字节对齐)案例1struct A{ char a; short b; int a; };8案例2struct A{ int a; double b;};12并非16。(2)结构体嵌套嵌套的结构体会在先内部完成对齐。案例3str

2020-08-23 16:35:11 300 2

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(14) C++常见面试题杂项汇总

文章目录1、C++函数形参传递方式有哪几种?2、重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别?3、内存的分配方式有几种?4、空指针和悬垂指针的区别?5、什么是封装6、C++中的空类,默认会产生哪些成员函数7、extern "C"的作用8、9、10、1、C++函数形参传递方式有哪几种?值传递、指针传递和引用传递。2、重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别?重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,

2020-08-23 13:21:37 298

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(12) C++ 引用、常引用、引用和指针的区别、引用的作用、常引用的作用

引用的知识点好多,学崩了。文章目录引用引用和指针的区别引用的作用常应用引用引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;  int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名说明:(1)&在此不是求地址运算,而是起标识作用。(2)类型标识符是指目标变量的类型。注意事项:(1)声明引用时,必须同时对其进行初始化。(2)引用声明完毕后,相当于目标变量名有两个名

2020-08-23 11:18:04 203

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(9) C风格类型转换、C++四种类型转换、C++特殊隐式类型转换

文章目录1、C的类型转换方式2、C++新增的四种类型转换3、C++独特的隐式类型转换1、C的类型转换方式首先C++兼容C的类型转换方式。(1)隐式类型转换C在以下四种类型中会进行隐式转换:算术运算符中,低类型转换为高类型(有符号转无符号,char->short->int->float->double)赋值表达式中,右边的值自动隐式转换为左边变量的类型,并赋值函数调用参数传递,系统隐式将实参转换为形参的值函数有返回值,系统隐式将返回表达式类型转换为返回值

2020-08-23 00:22:43 146

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(7) C++ 继承、单一继承、派生列表、多继承、菱形继承、虚继承、虚基类面试问题汇总

文章目录继承单一继承派生列表多继承菱形继承虚继承继承继承是面向对象程序设计中复用代码的重要手段,它允许程序员在原有类特性的基础上进行扩展增加功能。这样产生的新的类叫派生类。继承体现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。重点:代码重用。单一继承一个类只继承于一个类叫做单一继承。class A{};class B :public A //单一继承{}派生列表派生类通过派生列表来指出其从哪个(哪些)基类继承而来。类派生列表的使用规则:①派生列表不能出现在类

2020-08-22 22:46:54 68

原创 Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(17) 虚拟地址、物理地址、MMU、分页机制、TLB问题汇总

占个坑

2020-08-21 19:38:42 230

原创 Linux C/C++ or 嵌入式面试之《多进程多线程编程系列》(18) 缓冲IO、非缓冲IO、read/fread区别、fread作用

文章目录缓冲IO与非缓冲IOfread与read的区别read/write已经有了缓冲实现,为什么fread/fwrite还要实现缓冲?(fread等函数存在的意义)标准IO三种类型的缓存对于缓冲IO,可以调用什么函数刷新缓冲?对于非缓冲IO,可以调用什么函数刷新内核缓冲?缓冲IO与非缓冲IOlinix对IO文件的操作分为不带缓存的IO操作和标准IO操作(即带缓存)。不带缓存:open read,属于系统调用,在用户空间没有缓冲,在内核空间还是进行了缓存的。数据-----内核缓存区----磁盘。

2020-08-20 18:51:18 146

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(11) malloc/free和new/delete区别、new/delete底层机制

嵌入式软件工程师不同于纯粹的C++程序员,常常要游走于C和C++之间,所以会考察C和C++的一些对比,比如说说malloc/free 和new/delete的区别。文章目录1、malloc/free和new/delete区别2、new/delete底层机制1、malloc/free和new/delete区别malloc/free为C的标准库函数new/delete则为C++的操作运算符malloc返回类型为void*,必须强制类型转换对应类型指针,new则直接返回对应类型指针malloc/fr

2020-08-20 16:39:15 252

原创 Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(8) C++ 构造、析构、拷贝构造、默认构造、默认拷贝、赋值运算符、深浅拷贝、explict关键字面试问题汇总

1、构造函数特点无返回值,也不能写成void和类名相同支持函数重载2、构造函数分类默认构造函数(无参)普通构造函数(有参)拷贝构造函数默认拷贝构造函数(浅拷贝)3、什么是默认构造函数?在没有定义任何构造函数时,编译器将自动生成一个无参构造函数,也就是默认构造函数。一旦我们定义了自己的构造函数,编译器将不再生成默认构造函数。复制构造函数(也称为拷贝构造函数)复制构造函数参数为类对象本身的常引用,用于根据一个已存在的对象复制出一个新的该类的对象,一般在函数中会将已存在对象的数据成员的

2020-08-20 00:13:23 279

HI3519AV100最新SDK smaple

海思最新SDK 程序 版本V2.0.1.0 最新

2019-03-29

RTP协议在嵌入式网络摄像机中的设计及实现.pdf

rtp,网络摄像头开发,描述了rtp推流,h264编码,v4l2视频流获取

2018-04-27

v4l2读取摄像头

v4l2读取摄像头,能在linux下编译,生成yuv文件,可以指定文件帧数

2018-01-30

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除