- 博客(13)
- 收藏
- 关注
原创 嵌入式必备知识
嵌入式必备知识一、进程与线程1.1 进程和线程的概念1.1.1 什么是进程、线程,各自有什么优点1.1.2 多进程、多线程的优缺点1.1.3 什么时候用进程,什么时候用线程1.1.4 多进程、多线程同步(通讯)的方法1.1.5 进程的空间模型1.1.6 父进程、子进程的关系以及区别1.2 并发,同步,异步,互斥,阻塞,非阻塞的理解1.2.1 什么是线程同步和互斥1.2.2 线程同步与阻塞的关系?同步一定阻塞吗?阻塞一定同步吗?二、C/C++三、网络编程四、常见算法五、Linux操作系统六、单片机一、进程与
2020-09-06 23:27:28
7679
原创 计算机网络
计算机网络(一)1. TCP怎么保证可靠性1. TCP怎么保证可靠性(1)序列号、确认应答、超时重传数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接收的数据序列号。如果发送发迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这时发送方在等待一定时间后会进行重传。这个时间一般是2*RTT(报文段往返时间)+一个偏差值。(2)窗口控制与高速重发控制/快速重传(重复确认应答)TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小
2020-08-21 16:33:06
687
原创 操作系统(三)
操作系统(三)请你来说一说协程系统调用是什么,你用过哪些系统调用请你来手写一下fork调用示例请你来说一说协程1、概念:协程,又称微线程,纤程,英文名Coroutine。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。例如:def A() :print '1'print '2'print '3'def B() :print 'x'print 'y'print 'z'由协程运行结果可能是12x3yz。在执行A的过程中,可
2020-08-13 11:09:50
561
原创 操作系统(二)
操作系统(二)1. 互斥锁和读写锁区别2. Linux的4种锁机制:3. 请你说一说进程状态转换图,动态就绪,静态就绪,动态阻塞,静态阻塞4. A* a = new A; a->i = 10;在内核中的内存分配上发生了什么?5. 给你一个类,里面有static,virtual,之类的,来说一说这个类的内存分布1. 互斥锁和读写锁区别互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒。读写锁:rwlock,分为读锁和写锁。处于
2020-08-11 01:57:45
779
原创 操作系统(一)
操作系统(一)1. 请你说一下进程与线程的概念,以及为什么要有进程线程,其中有什么区别2. 进程间通信的方式3. 线程间通信的方式4. 请你说一说Linux虚拟地址空间5. 请你说一说操作系统中的程序的内存结构6. 请你说一说操作系统中的缺页中断1. 请你说一下进程与线程的概念,以及为什么要有进程线程,其中有什么区别基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发
2020-08-06 00:47:22
645
原创 基本语言(一)
基本语言(一)1. 说一下static关键字的作用1. 说一下static关键字的作用全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量.静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化);作用域:全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。局部静态变量在局部变量之前加上关键字static,局部变量就成为一个局部静态变量。内存中的位置
2020-08-05 09:01:25
277
原创 C++STL标准模板库
STL标准模板库vectorstackvectorinclude <vector>vector<int> v;v.push_back(t) //在容器V的尾端添加一个值为t的元素v.pop_back() //去掉最后一个数据v.front() //返回第一个元素(容器头部元素)v.back() //返回最后一个元素(容器尾部元素)v.begin() //返回容器头部指针,迭代器接收v.end() //返回容器最后一个单元+1的指针,
2020-08-02 16:48:50
339
原创 Linux基本操作命令
Linux基本操作命令文件和目录操作lscdcpmkdirrmdirrmmvfindpwdtree查看文件及内容处理命令cattacmorelessheadtailgrep文件压缩及解压缩命令tarzipunzipgzip线上查询及帮助命令manhelp信息显示命令unamecalLinux权限的概念Linux权限管理文件和目录操作ls功能:ls 命令是 linux 下最常用的命令,ls 命令就是 list 的缩写。 ls 用来打印出当前目录的清单。如果 ls 指定其他目录,那么就会显示指定目录里的文
2020-07-29 08:35:44
501
原创 UART协议
UART协议1. 定义2. 通信协议3. 工作原理4. UART、IIC、SPI的区别和联系1. 定义UART是(Universal Asynchronous Receiver/Transmitter)通用异步收发器的简称,是一种全双工、异步通信接口,工作于数据链路层,支持RS232、RS485等规范电路。虽然UART可以实现串并行数据的转换,但UART依然是串行接口。UART用于计算机内部与外部设备之间的通信,计算机内部数据传输都是并行的,但外部设备的数据传输往往都是串行的,这样就需要一个芯片去作
2020-07-27 16:48:50
1235
原创 SPI协议
SPI协议1. SPI简介2. 总线结构1. SPI简介SPI,是串行外围设备接口(Serial Peripheral Interface)的简称。SPI是一种高速、全双工(可以同时接收和发送数据)、同步的通信总线(接收端和发送端必须在同一时刻接收和发送),并且在芯片的管脚上只占用四根线,节约了芯片引脚。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。2. 总线结构SPI通讯使用 3 条总线及片选线,3条总线分别为 SCK、MOSI、M
2020-07-27 15:05:12
511
原创 IIC协议
IIC协议1. 概述2. 物理层3. 协议层1. 概述I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。2. 物理层只要求两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL。(IIC是半双工,而不是全双工)。每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和
2020-07-27 14:44:28
586
原创 嵌入式面经
嵌入式面经1.关键字static的作用是什么2.关键字const是什么含意?3.const和宏定义的区别4.关键字volatile有什么含意 并给出三个不同的例子。5.引用和指针有什么区别6. .h头文件中的ifndef/define/endif 的作用?1.关键字static的作用是什么1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3
2020-07-22 22:21:58
12997
1
原创 C语言指针
C语言指针1.&运算符&是取地址符号;#include<stdio.h>int main(){ int a=20; printf("a 的值为%d\n",a); printf("a 的地址为%d\n",&a); return 0;}//打印结果:a 的值为20a 的地址为1703740(1703740为a地址0019FF3C的十进制)& 符号的作用很清晰, &a就是取变量a的地址。2. *运算符 *是定义指针变量,即
2020-07-22 17:57:36
347
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅