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

  • 相关阅读:
    电脑蓝屏的原因及解决方法
    或将引爆第四次工业革命!一张图带你看完人工智能大事件
    sata2.0和sata3.0的区别
    15款顶级的开源人工智能工具推荐
    解读神秘而又强大的百度人工智能计算机
    人工智能让程序员自危:码农大批失业
    电脑开机黑屏只有光标在闪怎么办
    关于XSS漏洞的简介以及分类
    SSD知识
    centos7下安装docker(15.5容器跨主机网络--flanneld)
  • 原文地址:https://www.cnblogs.com/lexuele/p/4691604.html
Copyright © 2011-2022 走看看