海康威视嵌入面经

1.自我介绍

2.实习经历深挖 3. 项目的技术架构是什么? 4.遇到的最大技术难点? 5.具体的解决方案? 6.进程间通信方式 7.管道、共享内存、消息队列、信号量、Socket,说出每种应用场景和特点

全部评论
深信服试试吗?盆友
点赞 回复 分享
发布于 昨天 11:50 广东

相关推荐

Clavoss:一眼AI,死亏
点赞 评论 收藏
分享
1.I2C协议时序I2C协议是两线制串行通信协议,物理层包括SCL时钟线、SDA数据线,支持一主多从架构核心时序包括起始信号:scl为高电平,sda从高到低跳变,标志通信开始scl为高电平,sda从低到高跳变,标志通信结束数据传输时:scl高电平时,sda必须稳定,低电平时sda可变化,准备下一位,每个字节八位,高位在前接收方在第 9 个时钟周期拉低 SDA 表示应答,不拉低为非应答主设备通过控制scl和sda生成起始信号,发送从设备地址(7位地址+1位读写位),等待应答后传输数据,最后停止信号结束2.I2C 协议的应用场景和实现我在项目中用 I2C 连接过温湿度传感器(如 SHT30)和 EEPROM,传感器通过 I2C 将采集的数据传给 MCU,EEPROM 通过 I2C 存储配置参数,3.Linux 下 I2C 驱动编程的三层结构回答:linux下I2C驱动为核心层、总线层、设备驱动层核心层:提供通用api,管理总线和设备的匹配关系,是连接总线层和设备驱动层的桥梁总线层(控制器驱动):对应具体I2C控制器,实现硬件时序,负责将核心层的抽象请求转化为实际的 SCL/SDA 电平操作设备驱动层(外设驱动):针对具体 I2C 设备(如传感器),定义i2c_driver结构体,实现probe(初始化设备)、remove(清理)等函数,通过核心层 API 与设备通信。4.platform 与设备树的区别platform总线:是Linux内核为无物理总线的片上外设(GPIO、定时器)设计的虚拟总线设备树:是一种文本文件,用树形结构描述硬件信息(外设、引脚、中断),替代传统板级C代码,驱动通过属性与设备树节点匹配核心区别:platform 是 “驱动 - 设备” 匹配机制,设备树是 “硬件信息描述工具”;现代内核中,platform 设备通常由设备树自动生成5.Linux 下如何获取设备树中的硬件信息内核通过of函数解析设备树,查找节点,6.TCP 与 UDP 的区别,Socket 编程步骤及差异TCP服务器编程步骤:socket创建TCP套接字bind绑定ip和端口listen监听连接accept阻塞等待客户端连接,返回新套接字recv收发数据close关闭连接UDP无需listen、accept、connect收发用sendto,需指定目标地址,UDP无连接概念,一个套接字可与多个地址通信7.IO复用:select、poll、epoll区别三者均用于单线程管理多个I/O流,8.Linux 字符设备驱动设计流程,read/write 实现及应用访问方式定义file_operations结构体,实现open/read/write/release等操作函数,注册字符设备:通过cdev_init初始化cdev,cdev_add注册到内核,分配设备号(alloc_chrdev_region),创建设备文件:通过class_create和device_create自动生成/dev/xxx(替代手动mknod。read从设备读取数据到用户空间,内核到用户write是从用户空间写入到设备,从用户到内核应用程序访问方式 1打开设备,获取文件描述符2.调用驱动的read函数,数据通过copy_to_user传递到buf3.调用驱动的write函数,数据通过copy_from_user从buf传入内核
查看8道真题和解析
点赞 评论 收藏
分享
在debug的柠檬精...:我也看到双九也挂 可能知道学历太好的 给了offer后面也不会来
投递汇川技术等公司9个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务