1.12 小米求职攻略-2024理工科版本
1.12.1 校园招聘时间流程
网申 |
机考 |
面试 |
offer |
8月 |
9月-10月 |
9月-11月 |
10月-12月 |
1.12.2 薪资爆料
岗位 |
地点 |
学历 |
薪资范围(年薪) |
嵌入式 |
北京 |
本科 |
15~24k*15 |
嵌入式 |
上海 |
本科 |
19~28k*15 |
嵌入式 |
深圳 |
本科 |
20~24k*14 |
射频 |
北京 |
硕士 |
18~22.5k*14 |
射频 |
深圳 |
硕士 |
18~22.5k*14 |
硬件测试 |
深圳 |
本科 |
14~16k*12 |
硬件测试 |
北京 |
本科 |
13~20k*14 |
数字IC |
上海 |
本科 |
21~28k*14 |
数字IC |
深圳 |
硕士 |
40W |
硬件研发工程师 |
北京 |
本科 |
16~20k*14 |
硬件研发工程师 |
上海 |
硕士 |
20~22.5k*14 |
天线工程师 |
深圳 |
硕士211 |
20~22.5k*14 |
天线工程师 |
北京 |
硕士 |
18~22.5k*14 |
- 数据来源 牛客用户,更多详细信息可到牛客查询
1.12.3 面试真题
嵌入式工程师
1、C/C++程序 内存分布情况 常量所在的区
【解题思路】
C/C++程序内存分布情况通常可以分为以下几个区域:
代码区(text segment):存放程序执行代码的区域,通常是只读的。该区域的内容在程序执行时不能被修改。
数据区(data segment):存放已经初始化的全局变量和静态变量(包括全局和静态变量的指针)的区域。
BSS区(bss segment):存放未初始化的全局变量和静态变量的区域,该区域的值默认初始化为0。
栈区(stack segment):存放函数调用时的局部变量、函数参数和返回地址等信息。栈空间是由操作系统自动分配和回收的,它的大小通常是固定的,不能随意增加。栈空间是向下增长的,也就是说,栈顶的地址是越来越小的。
堆区(heap segment):存放由程序员手动申请的内存空间,大小可以动态增加或减少。堆空间是由程序员手动管理的,程序员需要负责在使用完毕后将其释放。堆空间是向上增长的,也就是说,堆顶的地址是越来越大的。
常量一般位于代码区或数据区,不同编译器可能有不同的实现。在代码区中,通常存放的是字符串常量和只读变量;在数据区中,通常存放的是全局常量和静态常量。在使用常量时,应该尽量避免修改它们的值,以免引发未知的问题。
2、c编译到执行的4个阶段
【解题思路】
在C语言编译运行的过程中,可以分为4个主要的阶段,包括预处理、编译、汇编和链接。
预处理阶段(Preprocessing):在预处理阶段,编译器会处理源文件,包括展开宏定义、头文件的展开、条件编译等,生成一个经过预处理后的文本文件。此阶段的结果是一个以 .i 为扩展名的文件。
编译阶段(Compilation):在编译阶段,编译器将经过预处理的文本文件翻译成汇编代码。汇编代码是一种低级的、与机器相关的语言。此阶段的结果是一个以 .s 为扩展名的文件。
汇编阶段(Assembly):在汇编阶段,汇编器将汇编代码转换成机器可以执行的指令。此阶段的结果是一个以 .o 为扩展名的文件。
链接阶段(Linking):在链接阶段,连接器将目标文件以及一些必要的库文件进行链接,生成可执行文件。此阶段的结果是一个没有扩展名的可执行文件。
以上是C语言编译执行的基本阶段,具体的实现方式可能因编译器和操作系统的不同而有所不同。
3、linux查看系统性能命令
【解题思路】
Linux下常用的查看系统性能的命令有以下几个:
top:查看系统运行进程及其资源占用情况,可以实时更新显示。
vmstat:查看系统的内存、磁盘、CPU 等资源的使用情况和进程信息。
iostat:查看磁盘 I/O 活动情况,显示磁盘读写速度、磁盘利用率等信息。
sar:系统活动报告,可以查看 CPU、内存、磁盘、网络等性能指标历史记录。
netstat:查看网络连接状态、网络接口的状态和统计信息。
ifconfig:查看网络接口的配置信息,包括 IP 地址、MAC 地址等。
free:查看内存使用情况,包括内存总量、空闲内存、已用内存等。
这些命令在排查系统性能问题、优化系统性能方面非常有用,嵌入式开发中同样可以使用。
4、linux7种文件设备类型,硬盘属于那种设备
【解题思路】
Linux中文件设备类型有7种,分别是:块设备(block)、字符设备(character)、套接字(socket)、符号链接(symbolic link)、FIFO、目录(directory)和文件(regular file)。
硬盘属于块设备(block),块设备是以固定大小的块进行访问的设备,硬盘、U盘等都是块设备。与块设备不同,字符设备(character)是以字符为单位进行访问的设备,例如键盘、鼠标等。
5、驱动设备节点保存在哪个目录
【解题思路】
驱动设备节点保存在/dev目录下。在Linux系统中,所有的设备节点都保存在/dev目录下,设备节点的文件名通常以字母“dev”开头,其余部分用于标识设备类型和设备号等信息。设备节点可以被用于读取和写入设备数据,同时也可以用于与设备进行交互。在驱动程序中,通过打开设备节点文件可以获得设备的文件描述符,从而进行对设备的操作。
6、介绍一下STM32 GPIO
【解题思路】
STM32是一款由意法半导体推出的基于ARM Cortex-M内核的32位微控制器,其广泛应用于各种工控、嵌入式、物联网等领域。其中,GPIO是STM32的一种重要的外设,可以用于控制数字输入输出,是STM32开发中使用最为广泛的外设之一。
在STM32中,GPIO可以用于实现数字输入输出、中断、事件捕捉等功能,同时还能够与其他外设进行复杂的联合应用,如SPI、I2C、UART等。GPIO的控制与配置主要包括以下几个方面:
GPIO的引脚复用功能,可以通过选择不同的复用功能,将GPIO引脚作为其他外设的输入输出端口,如ADC、TIM、USART等。
GPIO的工作模式,包括输入模式和输出模式。输入模式下,GP
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
牛客独家出品,理工科求职必备攻略,适合岗位: 硬件、通信、电气、电子信息