重庆工商大学计算机嵌入式linux开发基础复习大纲_计算机基础复习大纲

2020-02-28 其他范文 下载本文

重庆工商大学计算机嵌入式linux开发基础复习大纲由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“计算机基础复习大纲”。

《嵌入式linux开发基础》复习大纲

一、期末考试题型1、2、3、4、5、选择题,每个2分,共计30分

判断题或者填空题,每个1分,共计10分 问答题,每个10分,共计30分 阅读程序填空,每空2分,共计15分(驱动程序设计)编程题目,每个10分,共计15分(编写makefile和shell编程各一个)。

成绩比例 20%+20%+60%=100%

复习提纲

第一章 嵌入式系统概述

1、掌握嵌入式系统的定义及其嵌入式系统的特点。

2、掌握嵌入式系统的构成,软件构成和硬件构成;以及RTOS,EMPU,EDSP,SOC的概念。

3、理解嵌入式实时操作系统具备的特点

4、了解常见的嵌入式操作系统

第二章 ARM处理器概述

1、了解ARM体系结构的分类和扩展技术

2、掌握ARM处理器的工作状态(选择题)

3、掌握ARM处理器的存储格式(选择题)

4、掌握ARM处理器的工作模式(问答题)

5、了解S3C2410的处理器的特点

第三章 linux系统概述

1、掌握linux的分区

2、掌握linux文件及文件系统

3、了解linux的启动过程

第四章 linux命令

1、熟悉掌握常见的linux命令,包括实验中使用的命令。

第五章 linux编程基础

1、熟悉使用vi命令,并能使用vi中自带的命令。

2、熟悉理解gcc的编译过程

3、掌握GDB调试器的使用方法和调试步骤。

4、熟悉掌握编写makefile,要求根据要求编写简单的makefile文件,类似实验中的makefile文件的编写

5、能编写简单的shell程序,比如实验要求的shell程序的编写。

第六章 构建嵌入式linux平台开发

1、熟悉掌握交叉编译环境的建立。

2、掌握bootloader的作用和移植步骤

3、掌握内核剪切和编译的步骤

4、理解根文件系统建立的步骤

第七章 驱动程序设计

1、理解驱动程序的特点

2、理解设备的分类

3、理解驱动层次结构

4、能够阅读简单的字符设备驱动程序,完成填空,主要掌握字符驱动程序中的相关函数的使用。

常见题型

一,选择题

1.下列文件中,包含了主机名到IP地址的映射关系的文件是: B。A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks 2.不需要编译内核的情况是 D。

A 删除系统不用的设备驱动程序时 B 升级内核时 C 添加新硬件时 D 将网卡激活

3.在shell中变量的赋值有四种方法,其中,采用name=12的方法称 A。A 直接赋值 B使用read命令

C 使用命令行参数 D使用命令的输出

4.D 命令可以从文本文件的每一行中截取指定内容的数据。A cp B dd C fmt D cut 51.内核不包括的子系统是 D。

A 进程 管理 系统 B 内存管理系统 C I/O管理系统 D硬件管理系统

6、下列属于常见的嵌入式GUI的有(A)

A.Windows B.QT C.GNOME D.MiniGUI7、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存储,则2000H单元的内容为(C)

A、0x00 B、0x87 C、0x65 D、0x618、关于Linux2.4内核,说法错误的是(A)A.Linux为单内核,效率高,紧凑

B.按进程优先级调度

C. 具有虚拟文件系统,可以支持多种文件系统 D.设备驱动模块化

9、关于交叉编译描述正确的是:(D)A.编译器运行在目标机,生成的可执行文件在宿主机上运行 B.编译器运行在宿主机,生成的可执行文件在宿主机上运行 C.编译器运行在目标机,生成的可执行文件在目标机上运行 D.编译器运行在宿主机,生成的可执行文件在目标机上运行

10、Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在(C)目录中。

A、/bin B、/etc C、/dev D、/lib11、若要把动态加载模块的驱动加载进内核,可以使用以下命令实现(B)A、make modules B、insmod modules C、rmmod modules D、lsmod modules

12、关于make工具的使用,下面错误的是:(B)A.不指定目标时,make缺省处理makefile文件的第一个目标。B.makefile文件中对宏名的引用为#(宏名)。

C.makefile文件中$@参数表示一条规则中目标的名字。

D.make CC=arm-linux-gcc命令表示使用arm-linux-gcc代替makefile文件中CC的宏定义执行make命令。

13、嵌入式Linux开发中使用GDB调试,说法错误的是:(A)A.GDB程序在宿主机上运行 B.需要使用远程调试模式 C.需要交叉编译GDBServer D.被调试程序在宿主机上运行

14、下列提法中,不属于ifconfig命令的作用范围的是(D)A、配置本地回环地址 B、配置网卡的IP地址 C、激活网卡适配器 D、加载网卡到内核中

15、init启动进程需要读取(A)配置文件:

A、/etc/inittab B、/sbin/init C、/etc/sysvinit D、/bin/sh16、QT/Embedded的底层图形引擎基于下列哪种接口技术(A)A、framebuffer B、GAL D、IAL D、GFX17、在用ls –l命令查看文件属性时,字符设备文件类型的标志是(A)A、c B、b C、— D、l18、(B)命令可以从文本文件的每一行中截取指定内容的数据。A、cp B、dd C、fmt D、cut 191、为了得到所有的命令行输入的参数,我们可以使用变量(B)A、$# B、$@ C、$0 D、$!20、Linux将设备分成三类,不是这三类的是:(D)A.网络设备 B.字符设备 C.块设备 D.杂项设备

21、关于二阶段BootLoader说法错误的是:(B)A. BootLoader的第一阶段代码全部由汇编语言构成; B. BootLoader的第一阶段代码在Flash中运行; C. BootLoader中可以使用glib库中的函数;

D. BootLoader第二阶段代码大部分由C语言写成,所以需要使用栈。22.下列不是嵌入式系统特点的是(D)

A.系统内核小 B.专用性强 C.系统精简 D.实时性要求不高

23、嵌入式系统一般由嵌入式微处理器,系统外部电路,(A)和特定应用程序4个部分组成。

A.嵌入式操作系统 B.硬件驱动程序

C.BootLoader D.文件系统

24、关于ARM7系列微处理器的操作模式,不对的是:(D)A.一共有7种操作模式 B.除了用户模式,其他都为特权模式 C.不同模式下使用的寄存器可能会不相同 D.通过改变SPSR中的低5位来切换模式

25. 若一台计算机的内存为128MB,则交换分区的大小通常是 C。A 64MB B 128MB C 256MB D 512MB 26. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用 C 命令。

A cat B more C le D menu 27. 下列信息是某系统用ps –ef命令列出的正在运行的进程,D 进程是运行Internet超级服务器,它负责监听Internet sockets上的连接,并调用合适的服务器来处理接收的信息。

A root 1 4.0 0.0 344 204? S 17:09 0:00 init B root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty C root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sbin/syslogd D root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbin/inetd28、用ls –al 命令列出下面的文件列表,D 文件是符号连接文件。A-rw-rw-rw-2 hel-s users 56 Sep 09 11:05 hello B-rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey C drwxr--r--1 hel users 1024 Sep 10 08:10 zhang D lrwxr--r--1 hel users 2024 Sep 12 08:12 cheng 29.NFS是 C 系统。

A 文件 B 磁盘 C 网络文件 D 操作

30.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 C 目录中。A /bin B /etc C /dev D /lib 311.关闭linux系统(不重新启动)可使用命令 B。A Ctrl+Alt+Del B halt C shutdown-r now D reboot 32.在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。A;B;C;D A 33.在vi编辑器中的命令模式下,删除当前光标处的字符使用 A 命令。A;B;;C;D;;34.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用 C 命令。A 上箭头 B 下箭头 C;D;

35、从安全角度考虑不适合作为嵌入式系统文件的文件格式是(D)A、jffs2 B、cramfs C、yaffs D、ext2 36.用命令ls-al显示出文件ff的描述如下所示,由此可知文件ff的类型为 A。-rwxr-xr--1 root root 599 Cec 10 17:12 ff A 普通文件 B 硬链接 C 目录 D 符号链接

37、文件系统的主要功能是(A)

A、实现对文件的按名存取 B、实现虚拟存储 D、提高外存的读写速度 D、用于保存系统文档

38、init启动进程需要读取(A)配置文件:

A、/etc/inittab B、/sbin/init C、/etc/sysvinit D、/bin/sh 39.删除文件命令为: D。A mkdir B rmdir C mv D rm 40.对文件进行归档的命令为 D。A dd B cpio C gzip D tar 41.改变文件所有者的命令为 C。A chmod B touch C chown D cat 43.在给定文件中查找与设定条件相符字符串的命令为: A。A grep B gzip C find D sort

44.建立一个新文件可以使用的命令为 D。A chmod B more C cp D touch45、在下列命令中,不能显示文本文件内容的命令是: D。A more B le C tail D join 46.文件权限读、写、执行的三种标志符号依次是 A。A rwx B xrw C rdx D srw47、从后台启动进程,应在命令的结尾加上符号 A。A & B @ C # D $

48、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为 D。

A 467 B 674 C 476 D 764 49.退出交互模式的shell,应键入 C。A;B ^q C exit D quit 50、设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为 B。

A /home B /root C /home/root D /usr/local52、如果bootloader,内核,启动参数以及其他的系统映像四部分在固态存储设备上分别独立存放,则其存储结构分配顺序应当是(D)A、文件系统、内核、启动参数、bootloader B、启动参数、bootloader、内核、文件系统 C、bootloader、内核、启动参数、文件系统 D、bootloader、启动参数、内核、文件系统

53、init启动进程需要读取(A)配置文件:

A、/etc/inittab B、/sbin/init C、/etc/sysvinit D、/bin/sh 54.字符设备文件类型的标志是 B。A p B c C s D l 55.将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令是 C。A mount /mnt/cdrom B mount /mnt/cdrom /dev/hdc C mount /dev/hdc /mnt/cdrom D mount /dev/hdc 56.将光盘/dev/hdc卸载的命令是 A。A umount /dev/hdc B unmount /dev/hdc57、在进行嵌入式系统调试时,一下叙述中正确的是()A、宿主机和目标机之间需奥建立逻辑连接即可

B、在嵌入式系统中,调试器与被调试程序一般位于同一台机器上 C、在嵌入式系统开发中,通常采用的是交叉编译器 D、宿主机和目标机之间的通信方式只有串口和并口两种

58.在/home/stud1/wang目录下有一文件file,使用 D 可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。A cat file >;file.copy B cat >;file.copy C cat file file.copy & D cat file >;file.copy & 59.下列变量名中有效的shell变量名是: C。A-2-time B _2$3 C trust_no_1 D 2004file 60.已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,进入目录/home/stud1/test的命令是 C。

A cd test B cd /stud1/test C cd stud1/test D cd home 61.已知某用户stud1,其用户目录为/home/stud1。分页显示当前目录下的所有文件的文件或目录名、用户组、用户、文件大小、文件或目录权限、文件创建时间等信息的命令是 D。A more ls –al B more –al ls C more

A ls和sl B cat和tac C more和erom D exit和tixe 63. B 命令是在vi编辑器中执行存盘退出。A :q B ZZ C :q!D :WQ 64、bootloader的stage2通常使用C语言实现,以完成复杂的功能,并增加可读行和移植性,以下哪一步属于stage2的内容(D)A、为加载bootloader的stage2准备RAM空间 B、设置好堆栈 C、硬件设备初始化

D、将kernel映像和跟文件系统映像从flash上读到RAM空间中 66.下列关于/etc/fstab文件描述,正确的是 D。

A fstab文件只能描述属于linux的文件系统 B CD_ROM和软盘必须是自动加载的C fstab文件中描述的文件系统不能被卸载 D 启动时按fstab文件描述内容加载文件系统 67. D 设备是字符设备。A hdc B fd0 C hda1 D tty1 68. B 目录存放着Linux的源代码。A /etc B /usr/src C /usr D /home 69、关于BusyBox,下列说法错误的是(C)A、它常用来构建嵌入式Linux的根文件系统 B、支持的shell命令可以进行配置 C、支持的命令完全和Linux命令相同

D、作为嵌入式Linux根文件系统时需要交叉编译

70.关于文件系统的安装和卸载,下面描述正确的是 A。

A 如果光盘未经卸载,光驱是打不开的 B 安装文件系统的安装点只能是/mnt下 C 不管光驱中是否有光盘,系统都可以安装CD-ROM设备

D mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的71.文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 A。

A chmod a+x g+w exer1 B chmod 765 exer1 C chmod o+x exer1 D chmod g+w exer1 72、向无任何程序的目标机中写入BootLoader程序,一般使用下面那种接口(B)A.串口 B.JTAG C.Ethernet D.USB 73.有关归档和压缩命令,下面描述正确的是 C。

A 用uncompre命令解压缩由compre命令生成的后缀为.zip的压缩文件 B unzip命令和gzip命令可以解压缩相同类型的文件 C tar归档且压缩的文件可以由gzip命令解压缩 D tar命令归档后的文件也是一种压缩文件 74.不是shell具有的功能和特点的是 C。

A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令 75、有关Linux内核裁剪下列说法错误的是(B)

A.可以使用make menuconfig命令进行内核的配置

B.所有的配置项都可以按以编译入内核,编译成模块,不编译三种方式配置 C.使用make zImage命令会编译生成内核镜像文件zImage D.嵌入式Linux内核编译时应该采用交叉编译器 76、关于Linux2.4内核,说法错误的是(A)A.Linux为单内核,效率高,紧凑

B.按进程优先级调度

C. 具有虚拟文件系统,可以支持多种文件系统 D.设备驱动模块化 77、QT/Embedded的底层图形引擎基于下列哪种接口技术(A)A、framebuffer B、GAL D、IAL D、GFX 78、为了得到所有的命令行输入的参数,我们可以使用变量()A、$# B、$@ C、$0 D、$!79、如果bootloader,内核,启动参数以及其他的系统映像四部分在固态存储设备上分别独立存放,则其存储结构分配顺序应当是()A、文件系统、内核、启动参数、bootloader B、启动参数、bootloader、内核、文件系统 C、bootloader、内核、启动参数、文件系统 D、bootloader、启动参数、内核、文件系统 80、下面不属于嵌入式操作系统的是(C)A.VxWorks B.QNX C.MacOS D.WinCE 81.Linux文件权限一共10位长度,分成四段,第三段表示的内容是 C。A 文件类型 B 文件所有者的权限

C 文件所有者所在组的权限 D 其他用户的权限 82.终止一个前台进程可能用到的命令和操作 B。A kill B;+C C shut down D halt 83.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 D。A-m B-d C-f D-p 84.一个文件名字为rr.Z,可以用来解压缩的命令是: D。A tar B gzip C compre D uncompre 85、下列关于链接描述,错误的是 B。

A 硬链接就是让链接文件的i节点号指向被链接文件的i节点 B 硬链接和符号连接都是产生一个新的i节点

C 链接分为硬链接和符号链接 D 硬连接不能链接目录文件

二、填空题

1、编写shell程序运行前必须赋予该脚本文件 执行 权限。

2、在linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc。

3、使用gcc编译c程序生成可执行文件有时似乎是一步完成的,但实际要经历如下四步:预处理、编译、汇编和链接。

4、使用gdb进行调试时,可通过 step 和next命令进行单步执行。

4、链接分为:硬链接和符号链接。

5、前台起动的进程使用 kill 终止。

6、安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区。7.在 Linux 系统中,以 文件 方式访问设备。

8.Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。

7.某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 6449,该文件属性是 目录。

10.前台起动的进程使用 Ctrl+c 终止

11.安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区。12.编写的Shell程序运行前必须赋予该脚本文件 执行 权限。

13.在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统。14.当想删除本系统用不上的 设备驱动程序 时必须编译内核,当内核不支持系统上的 设备驱动程序 时,必须对内核 升级。

15.vi编辑器具有两种工作模式: 命令模式 和 输入模式。16.可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型,第二段占3位,表示 文件所有者 对该文件的权限。17.CD-ROM标准的文件系统类型是 iso9660。

18.在使用ls命令时,用八进制形式显示非打印字符应使用参数-b。

19.Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat。

20、在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc。21.硬连接只能建立对 文件 链接。符号链接可以跨不同文件系统创建。22.套接字文件的属性位是 s。23.结束后台进程的命令是 kill 24.为脚本程序指定执行权的命令及参数是 chmod a+x filename。25.进行远程登录的命令是 telnet。

26.在 Linux 系统中,压缩文件后生成后缀为.gz文件的命令是 gzip。

53.在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 :w test.txt 27.在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为 hdb。

28.当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核。29.在vi编辑环境下,使用 Esc键 进行模式转换

30.将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar zcvf /home/wang.tar.gz /home/stud1/wang。

31.管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入。

32.rm命令可删除文件或目录,其主要差别就是是否使用递归开关-r或-R。33.mv 命令可以移动文件和目录,还可以为文件和目录重新命名。34.nfs 协议用于实现Unix(/linux)主机之间的文件系统共享。35.在Linux操作系统中,设备都是通过特殊的 文件 来访问。

36.shell不仅是 用户命令的解释器,它同时也是一种功能强大的编程语言。bash是Linux的缺省shell。

37.用 >;>;符号将输出重定向内容附加在原文的后面。38.增加一个用户的命令是:adduser 或useradd。39 进行字符串查找,使用grep命令。40.使用 * 每次匹配若干个字符。

三、问答题

1、简述嵌入式系统的概念、组成及特点。

2、嵌入式开发环境主要包括哪些组件?

3、简述BootLoader的作用。

4、请描述建立一个嵌入式开发平台的步骤。

5、嵌入式系统的设计过程

6、设备驱动程序有哪些特点

7、Linux内核移植的操作过程

8、ARM处理器有几种工作模式,分别叫什么?

四、阅读程序

1、#include #include #include #include #include #include #include #include #include #include #include

#include “memdev.h”

static mem_major = MEMDEV_MAJOR;

module_param(mem_major, int, S_IRUGO);

struct mem_dev *mem_devp;/*设备结构体指针*/

struct cdev cdev;

/*文件打开函数*/ int mem_open(struct inode *inode, struct file *filp){ struct mem_dev *dev;

/*获取次设备号*/ int num = MINOR(inode->i_rdev);

if(num >= MEMDEV_NR_DEVS)return-ENODEV;dev = &mem_devp[num];

/*将设备描述结构指针赋值给文件私有数据指针*/ filp->private_data = dev;

return 0;

}

/*文件释放函数*/ int mem_release(struct inode *inode, struct file *filp){ return 0;}

/*读函数*/ static ize_t mem_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos){ unsigned long p = *ppos;unsigned int count = size;int ret = 0;struct mem_dev *dev = filp->private_data;/*获得设备结构体指针*/

/*判断读位置是否有效*/ if(p >= MEMDEV_SIZE)return 0;if(count > MEMDEV_SIZEp;

/*读数据到用户空间*/ if(copy_to_user(buf,(void*)(dev->data + p), count)){ ret =p)count = MEMDEV_SIZEEFAULT;else { *ppos += count;ret = count;

printk(KERN_INFO “written %d bytes(s)from %dn”, count, p);}

return ret;}

/* seek文件定位函数 */ static loff_t mem_llseek(struct file *filp, loff_t offset, int whence){ loff_t newpos;

switch(whence){ case 0: /* SEEK_SET */ newpos = offset;break;

case 1: /* SEEK_CUR */ newpos = filp->f_pos + offset;break;

case 2: /* SEEK_END */ newpos = MEMDEV_SIZE-1 + offset;break;

default: /* can't happen */ return-EINVAL;

} if((newposMEMDEV_SIZE))return-EINVAL;

filp->f_pos = newpos;return newpos;}

/*文件操作结构体*/ static const struct file_operations mem_fops = {.owner = THIS_MODULE,.llseek = mem_llseek,.read = mem_read,.write = mem_write,.open = mem_open,.release = mem_release, };

/*设备驱动模块加载函数*/ static int memdev_init(void){ int result;int i;

dev_t devno = MKDEV(mem_major, 0);

/* 静态申请设备号*/ if(mem_major)result = register_chrdev_region(devno, 2, “memdev”);else /* 动态分配设备号 */ { result = alloc_chrdev_region(&devno, 0, 2, “memdev”);mem_major = MAJOR(devno);}

if(result

/*初始化cdev结构*/ cdev_init(&cdev, &mem_fops);cdev.owner = THIS_MODULE;cdev.ops = &mem_fops;

/* 注册字符设备 */ cdev_add(&cdev, MKDEV(mem_major, 0), MEMDEV_NR_DEVS);

/* 为设备描述结构分配内存*/ mem_devp = kmalloc(MEMDEV_NR_DEVS * sizeof(struct mem_dev), GFP_KERNEL);if(!mem_devp)/*申请失败*/ { result =-ENOMEM;goto fail_malloc;} memset(mem_devp, 0, sizeof(struct mem_dev));

/*为设备分配内存*/ for(i=0;i

return 0;

fail_malloc: unregister_chrdev_region(devno, 1);

return result;}

/*模块卸载函数*/ static void memdev_exit(void){ cdev_del(&cdev);/*注销设备*/ kfree(mem_devp);/*释放设备结构体内存*/ unregister_chrdev_region(MKDEV(mem_major, 0), 2);/*释放设备号*/ }

MODULE_AUTHOR(“ctbu”);MODULE_LICENSE(“GPL”);

module_init(memdev_init);module_exit(memdev_exit);

2、//device driver program #include/*内核编译时的配置文件,文件里面指向一个make menuconfig

自动生成的文件autoconf.h*/ #include//模块驱动程序的头文件 #include #include //中断相关的头文件 #include #include //定时器相关的头文件 #include #include #include #include //文件中定义了LINUX内核的所有的版本,用于版本检查 #include//访问系统硬件用的头文件 #include #include #include #define SimpleD_MAJOR 96 //定义主设备号

devfs_handle_t dev_handle;//系统DEVFS所用到的handle int SimpleD_temp_count=0;//定义系统变量,防止文件被多重打开 /*-------------------Simpled Read------------------------*/ ize_t SimpleD_read(struct file *file,char *buf,size_t count,loff_t *f_ops){ printk(“S3c2410:device file-Read operation!n”);return count;} /*-------------------Simpled Write------------------------*/ ize_t SimpleD_write(struct file *file,char *buf,size_t count,loff_t *f_ops){ printk(“S3c2410:device file-write operation!n”);return count;} /*-------------------Simpled Ioctl------------------------*/ ize_t SimpleD_ioctl(struct inode *inode,struct file *file,unsigned int cmd,long data){ printk(“S3c2410:device file-ioctl operation!n”);} /*------a-------------Simpled device open------------------------*/ ize_t SimpleD_open(struct inode *inode,struct file *file){ return 0;} /*-------------------Simpled device close------------------------*/ ize_t SimpleD_release(struct inode *inode,struct file *file){ devfs_unregister_chrdev(SimpleD_MAJOR,“SimpleD”);

devfs_unregister(dev_handle);return 0;} /*SimpleD设备向系统注册用的OPS结构,里面是对应的操作*/ struct file_operations SimpleD_ops={ open : SimpleD_open, read : SimpleD_read, write : SimpleD_write, ioctl : SimpleD_ioctl, release : SimpleD_release, };/*初始化设备的函数*/ static int __init HW_SimpleD_init(void){ int ret=-ENODEV;int delay;//注册字符型设备

ret=devfs_register_chrdev(SimpleD_MAJOR,“SimpleD”,&SimpleD_ops);if(ret

static int __init s3c2410_SimpleD_init(void){ int ret=-ENODEV;ret=HW_SimpleD_init();if(ret)return ret;return 0;} //模块初始化函数 int init_module(){ s3c_2410_SimpleD_init();} //模块卸载函数

void cleanup_module(){ printk(“Module clean upn”);}

五、编程题目

1、编写一个makefile实现对多个程序的编译。

2、编写脚本,在脚本中对输入的两个参数进行大小比较

3、学会使用shell脚本编程的循环控制、文件属性判断等操作

4、编写脚本,将用户输入的数字按照倒序输出

5、编写脚本,移动一文件,如果目标位置存在该文件,则监视该文件,直到文件被删除后才移动该文件

重庆工商大学计算机习题及答案

一、选择题1._____________是现代通用计算机的雏形。A.宾州大学于1946年2月研制成功的ENIAC B.查尔斯?巴贝奇于1834年设计的分析机C.冯?诺依曼和他的同事们研制的EDVAC D.艾伦......

重庆理工大学全日制研究生入学考试专业课复习大纲04.计算机基础(专业学位)

《计算机基础》考试大纲一.课程简介:《计算机基础》课程以应用为目的,考核的重点是考察学生对基础知识、基本概念和基本操作技能的掌握情况,并按了解、理解和掌握三个层次对学......

管理学基础复习大纲

管理学基础复习大纲1.管理:是指一定组织中的管理者,通过计划、组织、领导、控制和创新等职能活动,对组织的各种资源进行有效的配置和协调,以实现组织目标的活动过程。2.头脑风......

计算机四级嵌入式系统开发基础试题

刀豆文库小编为你整合推荐5篇计算机四级嵌入式系统开发基础试题,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......

计算机四级嵌入式系统开发基础试题

计算机四级嵌入式系统开发基础试题嵌入式系统开发,以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机......

《重庆工商大学计算机嵌入式linux开发基础复习大纲.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
重庆工商大学计算机嵌入式linux开发基础复习大纲
点击下载文档
相关专题 计算机基础复习大纲 工商 重庆 大纲 计算机基础复习大纲 工商 重庆 大纲
[其他范文]相关推荐
[其他范文]热门文章
下载全文