/Embedded-written-reference

2019-参加过的嵌入式笔试题目和解析分享

Primary LanguageC

Embedded-written-reference

  • 2019-参加过的嵌入式笔试题目和解析分享
  • 电话邀约面试的时候(千万不要像第一次接到电话):
    • 是可以和面试官商量时间的:竟可能将时间往后推,方便对复习有利;
    • 除了地点、时间、采用何种方式面试;侧面询问面试考察的方面,以及面试的流程。

Table of Contents

ARM体系结构

  1. ARM 体系结构的介绍?
  2. ARM体系结构下的MMU如何实现映射?
    • ARM通过几级页表实现存储空间映射?
  3. 四大CPU体系结构:ARM、X86/Atom、MIPS、PowerPC
    • MIPS 体系结构cpu地址空间划分
  4. OS无锁可以提高整个程序的性能,但是CPU需要对此提供支持,请以x86/ARM为例简述

Operation System

进程和线程

  1. Linux 多任务, 进程, 线程,协程之间的关系?进程和程序的区别?
  2. Linux查询进程和线程数量?
  3. Linux产生僵尸进程的原因?
  4. OS 进程间通信的7种方式?通信为何需要内核?
  5. OS 如何实现进程间上下文切换的机制?
  6. OS进程调度的算法?
  7. OS 内核进程调度函数schedule()的触发和执行时机?

OS Interrupt

  1. ISR的定义?中断ISR处理过程的描述?
  2. Linux中断分层和中断嵌套的概念?软中断实现的机制?
  3. Linux中断信号源软中断, 软件中断 和硬件中断的区别?
    • 软中断和函数调用区别?
  4. Linux进程上下文切换 VS 中断上下文切换?
    • 缺页中断和中断的区别?

OS同步和异步

  1. 概念 -- 并发和竞态?阻塞和非阻塞I/O?同步和异步I/O?
    • I/O的五中模型?AIO的实现机制?
  2. OS中实现原子的操作?多种锁的区别?自旋锁和互斥锁?
  3. RCU(读-复制-更新)的原理?
  4. linux内核中的 自旋锁 和 内核信号量?内核信号量和用户空间信号量?
  5. OS 同步和互斥四种方法?临界区/互斥量/信号量/事 件?管程()?
  6. Online Judge: 实现通过循环队列实现循环缓冲区.

Memory Management

用户空间与内核空间

  1. OS 用户模式与内核模式定义,切换,通信?

    • 内核空间的划分?高端内存定义?
  2. linux 根据逻辑地址空间,计算页,页表,页表项?

  3. linux 用户空间内存分配? 底层mmap内存分配原理?

  4. linux内核空间中内存分配?linux 多级分页目录结构?

    • DMA的原理
  5. CPU , Cache,MMU ,内存之间的关系?

Cache 缓存一致性

  1. OS cache缓存一致性描述?
  2. OS cache(页面)多任务调度描述?
  3. cache 缓存的意义?缺页中断的概念?
  4. OS内存泄漏的理解

内存分配

  1. C程序在运行的内存分配?五个段占用的空间大小?
  2. C函数strcpy,memcpy,sprintf, memset区别和具体实现
  3. OS内存字节对齐 pragma pack()用法详解?
    • 32位/64位的系统中, 各自的sizeof()是多少?
  4. OS大端和小端存储问题?OS如何判断并进行转化?
  5. OS 嵌入式系统**享资源的访问限制?

Linux Kernel

linux kernel start

  1. U-boot 和 Bootloader引导内核的启动
  2. ARM结构下,Uboot如何给kernel传参数
  3. Linux内核启动流程?
  4. linux中netfilter的实现机制?是如何实现对特定数据包进行处理(如过滤,NAT之类的)及HOOK点的注册?
  5. Linux抽象出framebuffer这个设备的作用?
  6. linux两种错误:kernel panic 和 Oops段错误信息?

Linux Kernel

  1. linux 7种文件类型?
  2. linux文件系统的目录结构,选项是/usr、/tmp、/etc目录的作用?
  3. Linux的具体的命令, 文件和目录的5个操作命令?
  4. Linux虚拟文件系统VFS的关键数据结构有哪些?VFS支持多文件系统互通?
  5. Linux 内核中常用的两个宏定义?offset 和 typeof?
  6. Linux内核的五个子系统?

shell

  1. linux内核版本号,编译器gcc版本号
  2. echo 重定义 和 grep 正则表达式匹配?
  3. Linux 文件和目录的权限?umask与文件目录的权限关系?
  4. Linux读取某个文件的某一行或者某几行, 使用sed
  5. Linux 磁盘整体情况
  6. Makefile文件的编写?
  7. linux内核裁剪的方式?
  8. [tar解压一个压缩包,并将原先文件里面的内容覆盖?]
  9. [find 命令的详解?在指点时间内查找修改过的文件?]
  10. [Linux下定时执行脚本?]

Linux 驱动开发

硬件相关知识

  1. 嵌入式总线的详解(IIC, SPI, UART, USB, PCI , DMA)
  2. 万用表, 示波器采集数据的要求?
  3. JTag用途?
  4. 英文翻译: 关于时钟发生器的英文翻译?
  5. 驱动开发参考

linux 驱动模型

  1. Linux总线驱动模型platform?

  2. Linux字符驱动和块驱动模型?注册设备的入口函数?

  3. 驱动中的一些命令? insomd和rmmod注意情况

  4. 主设备号和次设备号的用途?字符设备的注册方法?

  5. 文件操作中控制函数:ioctl和unlock_ioctl的区别

  6. linux 下的声卡驱动alsa框架

  7. linux 下的camera驱动V4L2框架

  8. 蓝牙的协议GATT

嵌入式和C的基础知识

嵌入式

  1. 实时操作系统和非实时操作系统特点和区别?
  2. OS多任务嵌入式系统中,bit 运算
  3. 地址访问----嵌入式系统中,访问固定的内存地址?
  4. 地址的跳转 ---- C 通过函数指针,实现程序跳转到绝对地址0x100000处执行?
  5. 单片机应用程序存放的位置?单片机应用程序的三种架构?
  6. IGBT是什么控制性原件?
  7. 看门狗程序是为了溢出而设置的复位点,放在哪个位置?
  8. 单片机中程序计数器PC是16bit,其寻址范围是多少?

基础知识

  1. 预处理器标识#error的目的是什么
  2. C 程序编译链接的四个阶段?静态库和动态库的编译链接?
  3. C函数中参数传递,参数返回的过程?
  4. C函数参数传递的三种方式:传值, 指针, 引用?为什么要使用指针?
  5. C : 当char类型变量进行赋值时, 超过其范围时怎么处理?
  6. C: 有符号的变量(负数)和无符号的变量(正数)相加?原码, 反码, 补码的理解?
  7. C: 中关键字的种类?什么阶段使用?各自的用途?
    1. static关键字作用描述?
    2. volatile关键字的作用?
    3. C 关键字宏define,typedef用法?
  8. C中全局变量和局部变量可以重名吗?
  9. C 不同变量的生命周期?
  10. C中常量的表示和定义?
  11. 指针?数组?函数?指针数组,数组指针?函数指针数组?指针函数,函数指针?
  12. C 运算符的优先级?单目和双目运算符区别?
  13. Token划分,自加运算符++?C什么是左值,什么是右值?
  14. 如何理解标准输入输出函数:stdin stdout stderr
    • fprintf and sprintf
  15. 如何写C嵌入式的死循环
  16. C: 如何实现一个数的四舍五入?
  17. 对于一个频繁使用的短小函数,c/c++用的什么?内联函数?
  18. [行优先存储和列优先存储?]
  19. [break用的地方?]
  20. [四种方法跳出多层循环?]
  21. [extern 作用的详解?]
  22. [C中的逻辑类型和集合类型?]
  23. [adc采样中的两个滤波器的作用?]
  24. [解释DH协议的工作原理?]
  25. [关于find的查找命令正确的是?]
  26. [linux下有哪些通配符?]
  27. [函数重载的问题?]
  28. [线性表用数组表示,假定删除任意一个元素的概率相同,则删除一个元素平均需要移动元素的个数?]

C++

  1. [C++ std::string 的编码格式?]
  2. [make_shared 的用法描述?]

设计模式

  1. 常用的设计模式?
  2. [抽象工厂模式的理解?]
  3. [观察者模式和发布/订阅模式的区别?]

网络

  1. OSI七层模型的协议?TCP/IP五层模型的硬件设备?路由协议?
  2. TCP与UDP的区别?TCP三次握手和四次挥手?TCP数据分包?
  3. UDP如何保证可靠传输?基于UDP实现TCP?
  4. TCP/IP物理层的具体内容是啥?
  5. DNS服务器是如何工作的?
  6. TCP,HTTP,HTTPS之间的区别和联系?https怎么保证安全的?讲讲数字签名的过程?
  7. 建立Socket连接过程?--基于TCP/UDP
  8. IGMP :组播中的MAC地址?

数据结构

  1. sort -- 排序算法的介绍和时间复杂度
  2. Dijkstra最短路径算法的描述正确的是?
  3. tree -- 树和二叉树的相关考题?二叉树的度?二叉树描述?
  4. tree -- B, B-, B+树的定义,特性,联系与区别(红黑树)
  5. list -- 为一个链表设置一个head和tail, 链表的操作哪一个和长度相关?
    • list -- 哪一种数据结构, 只能顺序访问?
  6. Graph -- 图的表示和存储
  7. 数据结构中堆、栈和队列的理区别?
  8. n个元素入栈后,出栈的方式有多少个?

机器学习

  1. 神经网络中引入非线性能力的是?
  2. [CNN的介绍]