当前位置: 首页 > news >正文

ARM/Linux嵌入式面经(二一):诺瓦科技

到现在为止,我依旧认为诺瓦科技是我面试公司中问的最全面的一家公司

笔试和其他公司笔试比较相同了,嵌入式选择题(C,C++,linux,嵌入式基础),可以在牛客网上刷一下,原题挺多,一道编程:链表,结构体相关的操作,两道问答题。

文章目录

    • (1)自我介绍:我是xxx,就读于xxx,…
    • (2)通信协议了解过吗(SPI,I2C,UART)?
      • 一、SPI(Serial Peripheral Interface)
      • 二、I2C(Inter-Integrated Circuit)
      • 三、UART(Universal Asynchronous Receiver/Transmitter)
      • 总结
    • (3)I2C协议你是用到哪里的,代码怎么实现的?
      • I2C协议的使用场景
      • 代码实现
    • (4)Linux下I2C驱动编程:I2C核心层、I2C总线层、I2C驱动层
      • 1. I2C核心层与I2C总线层的交互
      • 2. I2C核心层与I2C设备驱动层的交互
      • 3. I2C总线层与I2C设备驱动层的间接交互
    • (5)platform 与 设备树的区别
      • Platform(平台总线)
      • 设备树(Device Tree)
      • Platform与设备树的区别
    • (6)linux 下怎么获取到设备树中硬件(板级)的信息
      • 一、设备树的基本概念
      • 二、设备树的组成
      • 三、获取设备树中硬件信息的步骤
      • 四、Linux内核中的设备树API
      • 五、示例代码
      • 六、实际使用中的问题及解决方案
    • (7)TCP,UDP的不同之处,socket套接字编程了解吗,TCP服务器端的编程步骤,UDP和TCP socket编程哪里不同
      • 一、TCP与UDP的区别
      • 二、Socket套接字编程的了解
      • 三、TCP服务器端的编程步骤
      • 四、UDP与TCP在Socket编程中的不同之处
    • (8)I/O复用,select、epoll,poll的区别
      • 一、概述
      • 二、主要区别
        • 1. 跨平台性
        • 2. 文件描述符数量限制
        • 3. 工作机制
        • 4. 触发模式
        • 5. 数据拷贝开销
      • 三、总结
    • (9)linux字符设备驱动程序的设计流程,file_operations 中read write,应用程序怎么读取到字符设备中的数据;
      • Linux字符设备驱动程序的设计流程
      • `file_operations`中`read`和`write`的实现
      • 应用程序如何读取到字符设备中的数据
    • (10)系统调用的过程?platform 总线驱动的设计?mmap函数?
      • 一、系统调用的过程
      • 二、Platform 总线驱动的设计
      • 三、mmap函数
    • (11)UART串口有时钟线吗,他是怎么保证数据发完之后对方知道你发完的,UART怎么保证数据的准确性;
      • 一、UART串口是否有时钟线?
      • 二、UART如何保证数据发完之后对方知道你发完的?
      • 三、UART怎么保证数据的准确性?
    • (12)多个进程访问同一个文件时,文件描述符是一样的吗?
      • 一、文件描述符的概念
      • 二、多个进程访问同一个文件的情况
      • 三、文件描述符与文件的关系
      • 四、文件描述符的独立性
      • 五、总结
    • (13)uboot的启动流程了解吗;stage1 和 stage2 。uboot源码看过吗,其中的数组?(uboot代码必须理解)
      • 一、U-Boot的启动流程
        • 1. Stage1
        • 2. Stage2
      • 二、U-Boot源码及数组
      • 三、总结
    • (14)添加过uboot中的命令吗?linux文件系统的格式.
      • 一、是否添加过U-Boot中的命令
      • 二、Linux文件系统的格式
    • (15)多线程通信
      • 一、多线程通信概述
      • 二、多线程通信的主要方式
      • 三、多线程通信的应用场景
      • 四、注意事项
    • (16)共享内存,进程间通信方式, 共享内存如果发生泄漏,怎么查看?
      • 一、共享内存
      • 二、进程间通信方式
      • 三、共享内存泄漏的查看方法
    • (17)创建的设备文件 /dev/下的,读取时文件描述符一样吗?
    • (18)算法相关:反转链表,链表的头插和尾插法;
      • 1. 反转链表
      • 2. 链表的头插法
      • 3. 链表的尾插法
    • (19)画过原理图吗,用什么软件画的,AD? 那在AD软件中在如果根据原理图上的器件快速选中PCB图上的器件
      • 一、回答画原理图的经验和软件使用
      • 二、在AD软件中根据原理图上的器件快速选中PCB图上的器件
    • (20)了解Makefile吗,Makefile语法格式?
      • 1. Makefile 的基本概念
      • 2. Makefile 的基本语法格式
      • 3. Makefile 中的变量
      • 4. Makefile 中的模式规则
      • 5. Makefile 的自动变量
      • 6. Makefile 的其他特性
      • 总结
    • (21)struct结构体的大小,字节对齐、数组 sizeof()大小;
      • 1. `struct`结构体的大小
      • 2. 字节对齐
      • 3. 数组 `sizeof()` 大小
      • 面试准备建议

面试(52min)

(1)自我介绍:我是xxx,就读于xxx,…

当然,以下是一个针对嵌入式系统面试的自我介绍模板框架,您可以根据自己的实际经历和技能进行调整和补充:


面试官您好,

我是[您的姓名],非常荣幸有机会参加今天的面试,向您展示我在嵌入式系统领域的热情和专业知识。我毕业于[毕业院校],主修[专业名称],自[毕业年份]以来,我一直致力于将理论知识应用于实践,特别是在嵌入式系统设计与开发方面积累了丰富的经验。

专业技能方面

  • 嵌入式编程语言:我熟练掌握C/C++编程语言,熟悉其内存管理、指针操作及优化技巧,在多个项目中成功实现了高效的嵌入式软件设计。同时,我也对Python有一定的了解,用于辅助嵌入式系统的数据分析与脚本编写。

  • 微控制器与处理器

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Boot 的Web开发
  • Linux 下 ETCD 安装、配置与命令使用总结
  • 【Spark集群部署系列二】Spark StandAlone模式介绍和搭建以及使用
  • Docker运行Cassandra集群
  • 如何选择工厂模式或策略模式:Java设计模式实践指南
  • mmdebstrap:创建 Debian 系统 chroot 环境的利器 ️
  • LeetCode138-随机链表的复制--经典OJ题
  • 视频循环存储的实现
  • 嵌入式学习笔记十三——C语言指针变量、一维数组的指针、快速排序
  • 25考研计算机组成原理复习·3.3主存储器与CPU的连接·3.4外部存储器
  • Web前端开发环境搭建
  • 后台数据库与Excel互联操作
  • 基于大数据的气象数据分析与可视化系统设计与实现【爬虫海量数据,LSTM预测】
  • SSRS rdlc报表 九 在.net core中使用RDLC报表
  • Linux 下查看 CPU 使用率
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [译] 怎样写一个基础的编译器
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • C++类中的特殊成员函数
  • CODING 缺陷管理功能正式开始公测
  • Cookie 在前端中的实践
  • es6--symbol
  • Fabric架构演变之路
  • Gradle 5.0 正式版发布
  • input的行数自动增减
  • KMP算法及优化
  • leetcode98. Validate Binary Search Tree
  • Mocha测试初探
  • Nodejs和JavaWeb协助开发
  • Promise面试题,控制异步流程
  • Redis在Web项目中的应用与实践
  • SpingCloudBus整合RabbitMQ
  • vue中实现单选
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 蓝海存储开关机注意事项总结
  • 聊一聊前端的监控
  • 驱动程序原理
  • 思维导图—你不知道的JavaScript中卷
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 移动端 h5开发相关内容总结(三)
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • ###项目技术发展史
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (九十四)函数和二维数组
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)mysql使用Navicat 导出和导入数据库
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例