zoukankan      html  css  js  c++  java
  • 嵌入式驱动实习生试题(答案)

    一、选择题

    1~5   C , B , D,D,C                  6~10  C ,D, C,D,D

    二、填空题

    1.( name ), (probe) ( of_match_table)

    2.(系统调用), (硬件中断)

    3.(find kernel -name "*.c" | xargs grep "test" -n)

    4.(程序崩溃)

    5.(总线) (驱动) (设备) 

    三.简答题

    1.答: fork 调用陷入内核,内核中建立子进程,此后启动调度,内核返回到两个不同的进程。2. 答:可能是乱码。
    因为GetMemory 返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原先的内容已经被清除,新内容不可知。

    3.答:如 int (*getmemory)(int nun);为返回值是int 类型的函数指针,本质是一个指针。

     如 int *getmemory (int nun); 为返回值是指向int 类型指针函数,本质是一个函数;

     函数声明三要素:返回类型类型、名称、参数。

    4.答:
    (1)能够输出hello
    (2)内存泄漏。

    (3)代码修改

    void Test(void)
    {
    char *str = NULL;
    GetMemory(&str, 100);
    strcpy(str, "hello");
    printf(str);

    free(str);

    if(str!=NULL)//避免出现野指针。

    str=NULL;
    }

    5.

    现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:用户模式(usr)、快速中断(fiq)、外部中断(irq)、管理模式(svc)、数据访问中止(abt)、系统模式(sys)、未定义指令异常(und)

    Linux系统利用了CPU的这一特性,使用了其中的两级来分别运行Linux内核与应用程序,这样使操作系统本身得到充分的保护。

    6.答: 

    int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);

    其实现调用系统调用 clone

  • 相关阅读:
    2020软件工程第三次作业
    2020软件工程作业02
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业05
    2020软件工程作业00——问题清单
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
  • 原文地址:https://www.cnblogs.com/lexuele/p/4691604.html
Copyright © 2011-2022 走看看