电子产业一站式赋能平台

PCB联盟网

搜索
查看: 42|回复: 0
收起左侧

几道简单的Linux驱动相关面试题,你看你会几题?

[复制链接]

473

主题

473

帖子

5190

积分

四级会员

Rank: 4

积分
5190
发表于 2024-7-11 11:50:00 | 显示全部楼层 |阅读模式
点击左上方蓝色“一口Linux”,选择“设为星标
第一时间看干货文章
?【干货】嵌入式驱动工程师学习路线?【干货】Linux嵌入式知识点-思维导图-免费获取?【就业】一个可以写到简历的基于Linux物联网综合项目?【就业】找工作简历模版

ag35ppcytll64078374506.gif

ag35ppcytll64078374506.gif

一、Linux基础1、任意3种网络操作的Linux命令,并说明他们的含义 1. ifconfig 命令ifconfig 用于查看和配置 Linux 系统的网络接口。
查看所有网络接口及其状态:ifconfig -a 。
使用 up 和 down 命令启动或停止某个接口:ifconfig eth0 up 和 ifconfig eth0 down 。
2. iptables 命令iptables ,是一个配置 Linux 内核防火墙的命令行工具。功能非常强大,对于我们开发来说,主要掌握如何开放端口即可。
3. netstat 命令Linux netstat命令用于显示网络状态。
利用netstat指令可让你得知整个Linux系统的网络情况。
4. ping 命令Linux ping命令用于检测主机。
执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
5. telnet 命令Linux telnet命令用于远端登入。
执行telnet指令开启终端机阶段作业,并登入远端主机。
2、Linux支持的文件类型
  • 普通文件类型   -
  • 目录文件类型  d
  • 块设备文件类型  b
  • 字符设备类型  c
  • 套接字文件类型  s
  • FIFO管道文件类型 p
  • 链接文件类型  l二、Linux系统编程1、 嵌入式操作系统进程间有哪些同步通信服务? Linux进程间通信方式主要有
  • 信号(signal)
  • 信号量
  • 管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
  • 消息队列
  • 共享内存
  • 套接字(本地的还有域套接字)[/ol]三、ARM1. 请问ARM支持哪几种异常类型? 异常源分类要进入异常模式,一定要有异常源,ARM规定有7种异常源:
    异常源描述Reset上电时执行Undef当流水线中的某个非法指令到达执行状态时执行SWI当一个软中断指令被执行完的时候执行Prefetch当一个指令被从内存中预取时,由于某种原因而失败,如果它能到达执行状态这个异常才会产生Data如果一个预取指令试图存取一个非法的内存单元,这时异常产生IRQ通常的中断FIQ快速中断2、请简述什么是中断?中断发生后,CPU做了哪些操作 中断:是指CPU在执行程序的过程中,出现了某些突发事件时CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU又返回源程序被中断的位置并继续执行。
    中断发生后,ARM核的操作步骤可以总结为4大步3小步。
    4大步3小步
  • 保存执行状态:将CPSR复制到发生的异常模式下SPSR中;
  • 模式切换:[/ol]
  • CPSR模式位强制设置为与异常类型相对应的值,
  • 处理器进入到ARM执行模式,
  • 禁止所有IRQ中断,当进入FIQ快速中断模式时禁止FIQ中断;
  • 保存返回地址:将下一条指令的地址(被打断程序)保存在LR(异常模式下LR_excep)中。
  • 跳入异常向量表:强制设置PC的值为相应异常向量地址,跳转到异常处理程序中。[/ol]3、什么是GPIO? general purpose input/output  
    GPIO是相对于芯片本身而言的,如某个管脚是芯片的GPIO脚,则该脚可作为输入或输出高或低电平使用,当然某个脚具有复用的功能,即可做GPIO也可做其他用途。
    也就是说你可以把这些引脚拿来用作任何一般用途的输入输出,例如用一根引脚连到led的一极来控制它的亮灭,也可以用一根(一些)引脚连到一个传感器上以获得该传感器的状态,这给cpu提供了一个方便的控制周边设备的途经。如果没有足够多的gpio管脚,在控制一些外围设备时就会力有不逮,这时可采取的方案是使用CPLD来帮助管理。
    4、IIC引脚名称及功能?
  • SDA
    数据线,用于传输数据
  • SCL
    时钟线,用于同步数据
    5、IIC的S、P信号如何发出?

    pear5tsfelw64078374606.png

    pear5tsfelw64078374606.png

    每次通信都必须由主设备发起,当主设备决定开始通讯时,需要发送开始(S)信号,需要执行以下动作;
  • 空闲时SCL默认是高电平;
  • 将SDA线从高压电平切换到低压电平;
  • 然后将SCL从高电平切换到低电平。在主设备发送开始条件信号之后,所有从机即使处于睡眠模式也将变为活动状态,并等待接收地址位。当双方决定结束通讯时,需要发送停止(P)信号,需要执行以下动作;
  • 先将SDA、SCL设置为低电平;
  • 然后将SCL从低电平切换到高电平;
  • 将SDA从低电平切换到高电平。在停止条件信号之后,I2C总线即处于空闲状态。[/ol]6、SPI引脚名称及功能? 串行时钟线(SCK)、
    主机输入/从机输出数据线MISO、
    主机输出/从机输入数据线MOSI
    从机选择线SS
    (有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)

    daispmmjpcc64078374706.png

    daispmmjpcc64078374706.png

    四、驱动1、查看驱动模块中打印信息应该使用什么命令?如何查看内核中已有的字符设备的信息?如何查看正在使用的有哪些中断号?
  • 查看驱动模块中打印信息的命令:[/ol] dmesg
  • 查看加载模块信息可以用[/ol]lsmod
    已经分配的字符设备块设备号信息可以查看下面文件
    cat /proc/devices
    内核会为每一个驱动模块建立一个文件夹,如下:
    ls /sys/module/
  • 显示当前使用的中断号[/ol]cat /proc/interrupts
    2、如何手动创建字符设备?并简述主设备号和次设备号的用途。 创建字符设备命令如下:
    mknod chartest c 4 64,
    mknod : 创建设备节点
    chartest :设备节点名字
    c : 字符设备,
    4 : 主设备号
    64: 次设备号
    1)主设备号:主设备号标识设备对应的驱动程序。虽然现代的linux内核允许多个驱动程序共享主设备号,但我们看待的大多数设备仍然按照“一个主设备对应一个驱动程序”的原则组织。
    次设备号:次设备号由内核使用,用于正确确定设备文件所指的设备。依赖于驱动程序的编写方式,我们可以通过次设备号获得一个指向内核设备的直接指针,也可将此设备号当作设备本地数组的索引。
    比如:
    硬件平台可能又4个串口,他们驱动非常类似,区别仅仅是个字对应的SFR基地址不同,
    那么我们可以让着几个串口共用同一个串口设备驱动
    通过次设备号来区别具体是哪一个串口
    3、内核中使用共享资源时,为了使之满足互斥条件,通常有哪些方法? 原子操作,自旋锁,信号量,互斥锁
    4、Linux内核包括那几个子系统? Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)5个子系统组成
    zynq平台应该也没问题。
    end

    一口Linux

    关注,回复【1024】海量Linux资料赠送
    精彩文章合集
    文章推荐
    ?【专辑】ARM?【专辑】粉丝问答?【专辑】所有原创?【专辑】linux入门?【专辑】计算机网络?【专辑】Linux驱动?【干货】嵌入式驱动工程师学习路线?【干货】Linux嵌入式所有知识点-思维导图
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表