最近准备面试了,梳理一些面试经常考试的细节点,不然每次都要去整理,答案未给出。
一、C语言基础
1.1、字节对齐
link Struct和Union字节对齐的内存占用计算方法
link 怎么计算union和struct中字节数计算
1.2、union数据空间大小计算
link 怎么计算union和struct中字节数计算
link union、struct、class占用的字节数
1.3、多级指针和多维数组
link 一维数组名、取数组首元素地址、取数组名地址三者值与含义辨析
link C 语言 ------ 指针和多维数组
link 字符串指针数组详解
link [C语言]二维数组传参的格式(详细+总结)
1.4、常量指针和指针常量
link 详解指针常量和常量指针
1.5、C语言编译过程
预处理,编译,汇编,链接
link C语言编译过程详解
1.6、算法、红黑树、二叉树(未研究)
1.7、编写双向链表、链表队列
1.8、一些标准库函数的实现(应届毕业会考)
link memcpy/memset函数的c语言实现
link strcpy函数的实现
link strcmp函数的C语言实现
link strcat函数
1.9、静态内存和动态内存
link 动态内存与静态内存的区别
link 动态内存分配与静态内存分配
二、FreeRTOS 操作系统
2.1、任务状态关系图
link FreeRTOS任务概述
2.2、消息队列、信号量、事件组、任务通知
link FreeRTOS消息队列、信号量、事件标志组、任务通知
2.3、任务切换的细节,PENDSV内部执行的细节
link FreeRTOS高级篇7---FreeRTOS内存管理分析
2.4、内存管理的5种模式,每种模式内存管理方式
link FreeRTOS高级篇7---FreeRTOS内存管理分析
2.5 调度方式
抢占式、时间片轮转、合作式
link freertos中任务的调度方式
2.6、 堆和栈,任务栈区别
link FreeRTOS ------ 栈、堆、任务栈
三、LINUX
3.1、TCP/IP的三次握手,4次挥手
link TCPIP协议详解
3.2、虚拟内存
3.3、文件管理 (一般不问)
3.4、 UBOOT启动细节(驱动开发,一般问不到)
四、嵌入式
4.1、UART、SPI、I2C、CAN、LIN、USB细节
4.2、中断向量表细节
4.3、 DMA传输
4.4、FAT32文件系统
4.5、bootloader(没见人问过,车企的bootloader还是复杂的)
4.6、IP网络层细节
4.7、蓝牙细节(只会使用芯片厂商接口,未学到手)
4.8、FLASH数据存储段
Code为程序代码部分
RO-data 表示 程序定义的常量const temp;
RW-data 表示 已初始化的全局变量
ZI-data 表示 未初始化的全局变量
Code, RO-data,RW-data ...flash
RW-data, ZIdata...RAM
link .bss .data .text 与Code, RO-data , RW-data, ZI-data的关系