• 嵌入式驱动实习生试题


    驱动实习生试题

    一、选择题(2.5 ‘/个)

    1. device和driver的对应关系(   )

    A.1(device):1(driver)  B.1(device):n(drivers)

    C.n(devices):1(driver)  D. n(devices):n(drivers)

    2.int counter(int i){

    static int count = 0;

    count = count + i;

    return count;
    }

    main()

    {

    int i, j;

    for(i=0; i <=5; i++)

    j = count(i);

    }

    本程序执行到最后,j的值是(  ):

    A. 10 B. 15 C. 6 D. 7

    3.下列不是Linux系统进程类型的是( ) 。
    A 交互进程 B 批处理进程 C 守护进程 D 就绪进程

    4.内核不包括的子系统是( ) 。
    A 进程管理系统 B 内存管理系统 C I/O管理系统 D硬件管理系统

    5.改变文件所有者的命令为( ) 。
    A chmod B touch C chown D cat

    6.进程有三种状态:( )。
    A 准备态、执行态和退出态 B 精确态、模糊态和随机态
    C 运行态、就绪态和等待态 D 手工态、自动态和自由态

    7.Samba服务器的配置文件是( ) 。
    A httpd.conf B inetd.conf C rc.samba D smb.conf

    8.Linux文件名的长度不得超过 ( ) 个字符。
    A 64 B 128 C 256 D 512

    9.不需要编译内核的情况是(  )。
    A 删除系统不用的设备驱动程序时 B 升级内核时
    C 添加新硬件时 D 将网卡激活

    10. 写出下面函数的输出结果(   ) 

    main()

    {

    int a[5] = {1, 2, 3, 4, 5};

    int *ptr = (int *)(&a+1);

    printf("%d, %d", *(a+1), *(ptr -1));


    }

    A.2,2 B 2,3 B 2,4 D 2,5

    二.填空题(2.5’/空)

    1. linux设备驱动模型三要素:device,driver,bus。Device和driver分别注册到bus上,然后通过(      )匹配,最终走到driver的(     )函数中, 现在有了DTS后,则可以采用(         )的方式匹配。

    2.内核空间与用户空间是程序执行的两种不同状态,通过(         )和(          )能够完成从用户空间到内核空间的转移。

    3.请写出在kernel文件夹中搜索字符串“test”,指定类型为*.c的shell命令

    (                                                )

    4.voidGetMemory(char *p)
    {
         p = (char *)malloc(100);
    }
    void Test(void)
    {
        char *str = NULL;
        GetMemory(str);
        strcpy(str, "hello world");
        printf(str);
    }
    请问运行Test 函数会有什么样的结果?

    (             )

    5.linux设备驱动模型,设备模型元素(    )(     )(     )

    三、简答题

    1. 请解释 fork 为什么调用一次,返回两次?(5’)

    2.(5’)

    char *GetMemory(void)  {
     char p【】 = "hello world";
     return p;
    }
    void Test(void)
    {
     char *str = NULL;
     str = GetMemory();
     printf(str);
    }

    请问运行Test 函数会有什么样的结果?

    3. 请举例说明函数指针与指针函数的区别,同时说明函数声明三要素。(10’)

    4.(10’)
    void GetMemory2(char **p, int num)
    {
     *p = (char *)malloc(num);
    }


    void Test(void)
    {
     char *str = NULL;
     GetMemory(&str, 100);
     strcpy(str, "hello");
     printf(str);
    }
    请问运行Test 函数会输出什么?是否会造成内存泄露?如会,请修改。

    5  Linux由用户空间和内核空间两部分组成。为什么这样设计?(10’)

    6  Linux 系统使用什么库函数建立线程, 其原型如何?其实现调用什么系统调用?(10’)

  • 相关阅读:
    PCM简介
    微波炉炖蛋
    python的命令行参数处理
    耳机标准
    SELinux杂谈
    Linux ssh服务器配置
    Centos 7安装nginx
    WPF TextBox属性IsReadOnlyCaretVisible
    [WPF打印]WPF 文档元素(Run TextBlock Paragraph)的文字对齐方式
    [SQLite3]connection string的连接池参数引发的错误
  • 原文地址:https://www.cnblogs.com/lexuele/p/4691594.html
Copyright © 2020-2023  润新知