嵌入式系统_期末复习题1

合集下载

《嵌入式系统与设计》期末复习题

《嵌入式系统与设计》期末复习题

《嵌入式系统与设计》期末复习题一、填空题1.ARM这个缩写包含三种含义:一是指();二是指();三是指()。

2.常用的AT89C52单片机为()位单片机,而STM32单片机为()位单片机。

3.常用的STM32F103系列单片机是基于()内核,此内核采用的是()结构。

4.STM32单片机共有8种输入输出模式,其中输入模式有()种,输出模式有()种。

5.在编写按键检测程序时,加一个延时判断的目的是为了()这种方法叫()。

6.如果LED阴极接地,阳极通过一个电阻接单片机PA1端口,则当单片机PA1端口输出为高电平时LED 状态为();当输出为低电平时LED状态为()。

7.STM32单片机的GPIO口可以配置为()模式和()模式。

8.常STM32的()为通用同步异步收发器,可以利用()发生器提供宽范围的波特率选择。

9.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、()模式和()模式。

10.STM32具有单独的位设置或位清除能力。

这是通过()和()寄存器来实现的。

11.如嵌入式系统的设计可以分成三个阶段:分析、()和()。

12.微处理器有两种总线架构,使用数据和指令使用同一接口的是(),分开的指令和数据接口、取指和数据访问可以并行进行()的是(),13.ARM核有两个指令集,分别是()指令集、()指令集。

14.嵌入式系统开发采用的交叉开发环境是由()和()组成的。

15.STM32单片机程序开发中常用的延时产生方法有()和()。

16.当STM32的I/O端口配置为输入时,()被禁止,()被激活。

17.STM32的所有端口都有外部中断能力。

当使用()时,相应的引脚必须配置成()。

18.STM32芯片内部集成的()位ADC是一种逐次逼近型模拟数字转换器,具有()个通道。

19.在STM32中,只有在()的转换结束时才产生DMA请求,并将转换的数据从()寄存器传输到用户指定的目的地址。

嵌入式期末试题及答案

嵌入式期末试题及答案

嵌入式期末试题及答案[注意:本文章以题目的方式展示试题及答案,下文并未出现实际试题]引言在嵌入式系统的学习中,期末试题是评估学生对于该学科知识和技能掌握程度的重要方式之一。

本文将为大家提供一份嵌入式期末试题及答案,帮助大家更好地准备和复习期末考试内容。

多选题1. 下列哪些是嵌入式系统的特征?(多选)a. 嵌入式系统通常包含少量资源b. 嵌入式系统的应用范围广泛c. 嵌入式系统的功耗可以忽略不计d. 嵌入式系统的性能要求较低答案:a、b2. 嵌入式系统中,以下哪项属于输入设备?(多选)a. 键盘b. USB接口c. 音箱d. 显示器答案:a、b、d填空题3. 嵌入式系统是指将计算机技术和________集成的特定功能设备。

答案:电子技术4. 嵌入式系统的一个重要特点是对系统的稳定性和________性的要求较高。

答案:可靠简答题5. 简述嵌入式系统和通用计算机的区别。

答案:嵌入式系统通常针对特定的应用领域,它的硬件资源和软件功能相对简单,功耗低,且具有可靠性要求高的特点。

通用计算机则更注重通用性,能够运行复杂的应用软件,它的硬件资源和软件功能相对丰富。

编程题6. 编写一个C语言程序,实现将一个整数数组逆序输出的功能。

答案:```c#include <stdio.h>void reverseArray(int arr[], int size) { int start = 0;int end = size - 1;while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}}int main() {int arr[] = {1, 2, 3, 4, 5};int size = sizeof(arr) / sizeof(arr[0]); reverseArray(arr, size);for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;}```总结本文提供了一份嵌入式期末试题及答案,涵盖了嵌入式系统的特征、输入设备、嵌入式系统和通用计算机的区别以及编程题等内容。

嵌入式期末考试卷十套

嵌入式期末考试卷十套

嵌入式期末考试卷十套嵌入式系统期末考试卷一、选择题(每题2分,共20分)1. 嵌入式系统通常是指:A. 用于嵌入式应用的软件B. 运行在嵌入式设备上的操作系统C. 一种小型的计算机系统,用于控制或监视设备D. 一种大型的计算机系统,用于复杂的数据处理2. 下列哪项不是嵌入式系统的特点:A. 可扩展性B. 实时性C. 资源受限D. 专用性3. 嵌入式操作系统(RTOS)的主要功能不包括:A. 任务调度B. 内存管理C. 文件系统管理D. 网络通信4. 以下哪个不是嵌入式系统中的编程语言:A. CB. C++C. JavaD. Python5. 在嵌入式系统中,中断服务程序(ISR)的主要作用是:A. 执行系统初始化B. 处理系统异常C. 响应外部事件D. 执行定时任务6. 以下哪个不是嵌入式系统开发过程中的步骤:A. 需求分析B. 系统设计C. 硬件选型D. 软件测试7. 在嵌入式系统中,固件通常指的是:A. 硬件B. 软件C. 介于硬件和软件之间的程序D. 操作系统8. 以下哪个是嵌入式系统开发中常用的硬件描述语言:A. VHDLB. HTMLC. XMLD. SQL9. 在嵌入式系统中,看门狗定时器的主要作用是:A. 监控系统时间B. 监控系统温度C. 监控系统电源D. 监控系统运行状态,防止死锁10. 以下哪个是嵌入式系统中的存储设备:A. RAMB. ROMC. 硬盘D. 显示器二、填空题(每空1分,共10分)1. 嵌入式系统的核心是______,它负责协调和管理整个系统。

2. 嵌入式系统软件通常由______、应用程序和设备驱动程序组成。

3. 嵌入式系统中的中断优先级是指中断服务程序的______。

4. 嵌入式系统中,______是一种常见的通信协议,用于设备间的通信。

5. 在嵌入式系统中,______是一种用于存储程序和数据的非易失性存储器。

6. 嵌入式系统中的______是用于控制和管理硬件资源的软件。

嵌入式 期末考试题目及答案

嵌入式 期末考试题目及答案

一、单项选择题(每题2分,共30分)1.下列哪一项不是嵌入式系统的基本要素A、嵌入性B、专用性C、通用性D、计算机系统2.下面哪项不属于ARM处理器模式A、管理模式(root)管理模式(svc):B、用户模式(usr)C、快速中断模式(fiq)D、外部中断模式(irq)3.在嵌入式系统开发过程中下面哪项为错误的说法A、对于有些硬件和软件都可以实现的功能,需要在成本和性能上做出抉择B、对实时性要求非常高的产品可以选择嵌入式Linux开发环境 VxworksC、嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分D、嵌入式系统的软件开发可分为交叉编译和交叉调试两部分4.某文件的权限是 -rwxr--r--,则下面描述正确的是A、文件的权限值是755B、文件的所有者对文件只有读权限C、其他用户对文件只有读权限D、同组用户对文件只有写权限5.在Linux操作系统默认情况下,ls命令显示的可执行文件颜色为A、绿色B、蓝色C、灰色D、黄色6.在vi编辑环境下,使用下面哪个按键进行模式转换A、EscB、TabC、ShiftD、Ctrl7.交叉编译器中,下面哪项不是必需包含的A、glibcB、gccC、binutilsD、tmake8.使用下面哪项命令查看系统的默认运行级别A、runlevelB、service xinetd statusC、chkconfig --listD、chkconfig xinetd status9.下面哪种语言GCC编译器不支持A、CB、JavaC、ASPD、C++10.不带缓存的文件I/O操作函数不包括A、fopenB、readC、writeD、open11.在Linux操作系统中,串口设备的设备名一般为A、com1B、port1C、ttyS0D、serl112.编写守护进程的第一步为A、创建子进程,父进程退出B、在子进程中创建新会话C、改变当前目录为根目录D、关闭文件描述符13.在关于ICMP协议的描述中,下面哪项是错误的A、ICMP是IP层的一个协议B、ICMP报文的最终报宿是报宿计算机上的一个用户进程C、当一个带有错误信息的ICMP报文到达时,由IP软件模块负责处理D、每种ICMP报文都有不同的格式14.键盘模式中不包括下面哪项A、ASCII mode(XLATE)模式模式B、Keycode mode(MEDIUMRAW)模式C、Multi mode(MULTI)模式UTF-8 MODE (UNICODE) Unicode 模式D、Scancode mode(RAW)模式15.socket函数的函数原型是A、int socket(int family, int type, int protocol)B、int socket(int sockfd,struct sockaddr *my_addr, int addrlen)C、int socket(int sockfd, int backlog)D、int socket(int sockfd, struct sockaddr *serv_addr, int addrlen)二、判断题(每题2分,共30分)(错标红加粗)16.ROM掉电后数据不会丢失。

嵌入式期末复习提纲(包含答案)

嵌入式期末复习提纲(包含答案)

欢迎共阅考试题型:•1、判断题 10分•2、填空题 20分•3、选择题 20分•4、简答题 30分(5个)•5、应用题 20分(3个)•6、名字解释复习资料:•书本•PPT课件,平时课堂例题。

•平时作业和练习•考试范围:1-5章•其他说明:•课后习题是重点。

•简答题来源于前5章,每章一个。

每章重点:第一章:1.什么是嵌入式系统?试简单列举一些生活中常见的嵌入式系统的实例。

?嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。

以应用为中心,一计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。

2.嵌入式系统具有哪些特点?3.嵌入式系统由哪些部分组成?简单说明各部分的功能和作用。

4.嵌入式系统是怎样分类的?5.嵌入式系统的定义。

嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。

以应用为中心,一计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。

6.什么是交叉编译,试说明交叉编译的实现过程。

7.嵌入式系统有哪些应用领域。

嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:???1.工业控制:???基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32?位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。

就传统的工业控制产品而言,低端型采用的往往是8位单片机。

但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。

???2.交通管理:???在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。

目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。

嵌入式期末复习题_(含答案)

嵌入式期末复习题_(含答案)

期末考试复习题一、填空题1. ARM微处理器有7种工作模式,它们分为两类_特权模式_、_非特权模式_其中用户模式属于_非特权模式__。

2. ARM微处理器共有__37_个__32__位寄存器,其中__31_个为通用寄存器,_6___个为状态寄存器。

3. 嵌入式系统一般哪4个部分组成( 嵌入式处理器、外围设备、嵌入式操作系统(可选)、嵌入式应用软件)4. 协处理器主要控制:___片内的MMU __、___指令和数据缓存___、___写缓冲___。

5. ARM嵌入式系统主要由___相关支撑硬件___、___ARM处理器___和__嵌入式软件系统____构成。

6. S3C2410芯片外部寻址空间是1G,被分成___8__个存储块,每块_ 128 _MB。

SDRAM 存储器应连接到第____7或8__个存储块。

7. 操作系统是联接硬件与应用程序的系统程序,其基本功能有进程管理、内存管理、文件系统管理、I/O资源管理。

8. 常用的嵌入式外围设备有存储设备_、通信设备____和___显示设备___三类。

10. 嵌入式系统是用来控制或者监视哪些设备( )11. 嵌入式系统的三个基本要素。

引导程序内核文件系统12. 链接分为:(硬链接)和( 软链接)。

13. 数据寄存器,其中控制寄存器的主要功能是设置_引脚的功能_,数据寄存器的功能是从寄存器读取数据或者向寄存器写入数据。

15. 目前流行的嵌入式操作系统主要有:_ WinCE_、_ Vxworks__、_ Linux/µCLinux_和_µC/OS-II、PalmOS____。

16. 嵌入式操作系统的调试一般包括:___操作系统__调试和___应用程序__调试。

17. ARM字数据存储格式有:大端格式和小端格式。

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

19. 在宿主机上使用编译器软件将嵌入式应用。

嵌入式系统期末复习试题集合

嵌入式系统期末复习试题集合

嵌入式系统期末复习试题集合1.什么是嵌入式系统?(P2)答:以应用为中心、以及计算机技术为基础、软件硬件可裁减、适用应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2.什么是嵌入式处理器?(P3)答:嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。

3.什么是实时操作系统?答:实时操作系统是嵌入式系统目前最主要的组成部分,实时是指物理进程的真实事件,实时操作系统具有实时性、能从硬件方面支持实时控制系统工作的操作系统。

4.什么是分时操作系统?答:对于分时操作系统,软件的执行在时间上的要求并不严格,时间上的错误一般不会造成灾难性的后果。

5.什么是多任务操作系统?答:系统支持多任务管理和任务间的同步和通信。

6.简述实时操作系统的工作状态?答:实时系统中的任务有运行、就绪、挂起和冬眠4种状态。

运行:获得CPU控制权就绪:进入任务等待队列,通过调度转为运行状态。

挂起:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生唤醒,从而转为就绪或运行。

冬眠:由于任务完成或错误等原因被清除的任务。

7.单片机的发展历史分为哪几部分?答:单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC 三大阶段SCM(Single Chip Microcomputer ,单片微型计算机)MCU(Micro Controller Unit,微控制器)SoC(System on Chip 片上系统)8.单片机发展趋势表现在那些方面?答:单片机发展趋势表现在:(1)内部结构的进步:多功能集成化、采用RISC体系结构、片内存储器性能改进容量增加EPROM向FlashROM发展、多核处理器方式;(2)功耗、封装及电源电压的改进:功耗越来越小、封装水平不断提高;(3)工艺上的改进:采用CMOS技术,大多采用0.6um以上的光刻工艺,大大提高内部密度和可靠性。

9.单片机嵌入式系统的结构是什么?答:单片嵌入系统的结构通常包括三大部分:即能实现嵌入式对象的各种应用要求的单片机、全部系统的硬件电路和应用软件。

嵌入式系统期末考试题库及答案

嵌入式系统期末考试题库及答案

嵌入式系统期末考试题库及答案一、选择题(每题2分,共20分)1. 以下哪项不是嵌入式系统的特点?A. 实时性B. 可扩展性C. 高性能D. 通用性答案:D2. 嵌入式系统中,CPU通常采用哪种类型的处理器?A. RISCB. CISCC. VLIWD. Superscalar答案:A3. 嵌入式操作系统中,以下哪项不是常见的实时操作系统?A. VxWorksB. RT-ThreadC. Windows CED. Linux答案:D4. 嵌入式系统中,以下哪种编程语言使用较为广泛?A. CB. C++C. JavaD. Python答案:A5. 嵌入式系统中,以下哪种通信接口常用于串行通信?A. I2CB. SPIC. UARTD. USB答案:C6. 嵌入式系统中,以下哪种存储器用于存储程序代码?A. RAMB. ROMC. FlashD. EEPROM答案:C7. 嵌入式系统中,以下哪种模块用于实现网络通信?A. TCP/IPB. HTTPC. FTPD. SMTP答案:A8. 嵌入式系统中,以下哪种中断处理方式称为“中断嵌套”?A. 中断优先级B. 中断屏蔽C. 中断向量D. 中断嵌套答案:D9. 嵌入式系统中,以下哪种调度算法适用于实时操作系统?A. 轮转调度B. 优先级调度C. 最短作业优先调度D. 最高响应比优先调度答案:B10. 嵌入式系统中,以下哪种总线用于连接CPU和外部设备?A. PCIB. USBC. CAND. I2C答案:A二、填空题(每题2分,共20分)11. 嵌入式系统的核心是______。

答案:嵌入式处理器12. 嵌入式操作系统中,实时操作系统的主要特点是______。

答案:实时性13. 嵌入式系统中,常见的编程语言有______、______和______等。

答案:C、C++、Java14. 嵌入式系统中,串行通信接口主要有______、______和______等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.下面哪一种工作模式不属于ARM特权模式( A )。

A.用户模式B.系统模式C.软中断模式D.FIQ模式2.ARM7TDMI的工作状态包括( D )。

A.测试状态和运行状态B.挂起状态和就绪状态C.就绪状态和运行状态D.ARM状态和Thumb状态3.下面哪个Linux操作系统是嵌入式操作系统( B )。

A.Red-hat Linux B.uclinux C.Ubuntu Linux D.SUSE Linux4.使用Host-Target联合开发嵌入式应用,( B )不是必须的。

A.宿主机B.银河麒麟操作系统C.目标机D.交叉编译器5.下面哪个不属于Linux下的一个进程在内存里的三部分的数据之一( A )。

A.寄存器段B.代码段C.堆栈段D.数据段选择题(共5小题,每题2分,共10分)1.下面哪个系统属于嵌入式系统( D )。

A.“天河一号”计算机系统B.IBMX200笔记本电脑C.联想S10上网本D.Iphone手机2.在Makefile中的命令必须要以( A )键开始。

A.Tab键B.#号键C.空格键D.&键3.Linux支持多种文件系统,下面哪种不属于Linux的文件系统格式( B )。

A.Ext B.FAT32C.NFS D.Ext34.下面哪种不属于VI三种工作模式之一( D )。

A.命令行模式B.插入模式C.底行模式D.工作模式5.下面哪一项不属于Linux内核的配置系统的三个组成部分之一( C )。

A.Makefile B.配置文件(config.in)C.make menuconfig D.配置工具1.人们生活中常用的嵌入式设备有哪些?列举4个以上(1) 手机,(2) 机顶盒,(3)MP3,(4) GPS。

(交换机、打印机、投影仪、无线路由器、车载媒体、PDA、GPS、智能家电等等。

)2.ARM9处理器使用了五级流水线,五级流水具体指哪五级:(5) 取指,(6) 译码,(7) 执行,(8) 缓冲/数据,(9) 回写。

3.在Makefile中的命令必须要以(10) Tab 键开始。

4.Linux支持多种文件系统,主要包括哪些(写出其中4中就行)(11) Ext,(12) VFAT,(13) JFS,(14) NFS。

(JFS、ReiserFS、Ext、Ext2、Ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC 等)5.VI的工作模式有哪三种:(15) 命令行模式,(16) 插入模式,(17) 底行模式。

6.Linux下的一个进程在内存里包括三部分的数据,它们是:(18) 代码段,(19) 堆栈段,(20) 数据段。

1.目前使用的嵌入式操作系统主要有哪几种(1) Linux,(2) Windows CE,(3) uc/OS II,(4) Android。

(或VxWorks,Palm OS ,QNX,Symbian等)2.如果按用途划分,嵌入式微处理器可分为哪类_ (5)嵌入式微控制器(MCU),又称为单片机__,_ (6)嵌入式微处理器(EMPU)_,_ (7) _嵌入式DSP处理器__,_ (8)嵌入式片上系统(SOC)__。

3.ARM核有两个指令集,分别是:__ (9)ARM指令集_和__(10)Thumb指令集__。

4.Makefile里主要包括的语法规则有哪些:(11) 显式规则,(12) 隐晦规则,(13) 变量定义,(14) 文件指示,(15) 注释。

5.大多数Bootloader都包含两种不同的操作模式,分别是:(16) 启动加载模式,(17) 下载模式。

6.Linux内核的配置系统由三部分组成,它们分别是:(18) Makefile,(19) 配置文件(config.in),(2) 配置工具。

RISC:reduced instruction set computer,精简指令集计算机MCU:Micro Controller Unit,微控制单元DSP:Digital Signal Processor,【电脑】数字信号处理器ROM:read-only memory,【电脑】只读存储器SWI:Software Interrupt PC:程序计数器IRQ:外部中断请求NFS:Network File System网络文件系统SOC:System On Chip,片上系统CPSR :当前程序状态寄存器ICE:In Circuit Emulator,实时在线仿真器MMU:Memory Management Unit,内存管理单元FIQ:快速中断请求VFS:虚拟文件系统IPC :Inter-Process Communication内部进程间通信IR:指令寄存器1、嵌入式开发环境主要包括哪些组件?答:嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括l 宿主机l 目标机(评估电路板)l 基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICEl 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境l 嵌入式操作系统2、什么是嵌入式系统,嵌入式系统同PC系统相比具有哪些特点?根据电气工程师协会的定义,嵌入式系统(Embedded System)是用来控制或者监视机器、装置、工厂等大规模系统的设备。

一般认为嵌入式系统是以应用为中心,以计算机技术为基础,其软/硬件可裁减,可满足应用系统对功能、可靠性、成本、体积、功耗的严格要求的专用计算机系统。

(1) 嵌入式系统功耗低、体积小、专用性强。

嵌入式系统与PC系统的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,能够把PC系统中许多由板卡完成的任务集成在芯片内部,从而使系统设计趋于小型化。

(2) 嵌入式系统中的软件一般都固化在存储器芯片或单片机芯片中,以提高执行速度和系统可靠性。

(3) 嵌入式系统的硬件和软件都经过精心设计,系统精简,其操作系统一般和应用软件集成在一起。

(4) 软件代码质量要求高。

(5) 嵌入式系统开发需要专门的开发工具和开发环境。

3、嵌入式硬件系统一般由哪几部分组成?其核心是什么?核心由哪几部分组成?他们之间的关系是怎样的(请用图表示出来)?嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成。

其中嵌入式微处理器是嵌入式硬件系统的核心,通常由三大部分组成:控制单元、算术逻辑单元和寄存器。

4.Boot Loader在嵌入式系统中主要起什么作用?完成哪些主要的工作?Boot Loader是在操作系统运行之前执行的一段程序,通过这段程序,初始化硬件设备,建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备.Boot Loader的stage1通常包括以下工作1.硬件设备初始化2.加载Bootloader的stage2准备ARM空间3.拷贝Bootloader的stage2到RAM空间中4设置堆栈5跳转到stage2的C入口点Boot Loader的stage2通常包括以下工作1初始化本阶段要使用到的硬件设备2检测系统内存映射3将内核映像和根文件系统映像从flash设备上复制到RAM空间中4设置内核启动参数5调用启动内核2、在进行嵌入式开发中,编写了一个多文件程序,其中包括main.c,lan.c,lan.h,timer.c,timer.h,pic.c,pic.h,主程序在main.c中;生成目标文件确定为fzxy_jk_ks,要求尽可能多的使用隐含规则,需要包括为目标命令,能够使用make clean进行中间文件的清理。

MAIN = jk_qz_testOBJS = main.o lan.o timer.o pic.oCC = gccINCDIRS = -I.CFLAGS = -Wall -O2 -g $(INCDIRS)LIBSLINK = -lpthreadDEBUG_FLAG =.SUFFIXES= .o .c$(MAIN): ${OBJS}${CC} -o $@ $(CFLAGS) ${DEBUG_FLAG} ${OBJS} $(LIBSLINK).o:$(CC) -g $(CFLAGS) -c $<clean:/bin/rm -f core *.o2、通过创建两个线程来实现对一个数的递加。

要求通过int main()函数分别调用void *thread1(),void *thread2(),void thread_create(void),void thread_wait(void)实现,得到的运行结果如下:#include <stdio.h>#include <string.h>#include <pthread.h>#include <sys/time.h>#define MAX 10pthread_t thread[2];pthread_mutex_t mut;int number=0, i;void *thread1(){ printf ("thread1 : I'm thread 1\n");for (i = 0; i < MAX; i++){ printf("thread1 : number = %d\n",number);pthread_mutex_lock(&mut);number++;pthread_mutex_unlock(&mut);sleep(2);} printf("thread1 :主函数在等我完成任务吗?\n");pthread_exit(NULL);}void *thread2(){ printf("thread2 : I'm thread 2\n");for (i = 0; i < MAX; i++){ printf("thread2 : number = %d\n",number);pthread_mutex_lock(&mut);number++;pthread_mutex_unlock(&mut);sleep(3);} printf("thread2 :主函数在等我完成任务吗?\n");pthread_exit(NULL);}void thread_create(void){ int temp;memset(&thread, 0, sizeof(thread)); //comment1/*创建线程*/if((temp = pthread_create(&thread[0], NULL, thread1, NULL)) != 0) //comment2 printf("线程1创建失败!\n");else printf("线程1被创建\n");if((temp = pthread_create(&thread[1], NULL, thread2, NULL)) != 0) //comment3 printf("线程2创建失败");else printf("线程2被创建\n");}void thread_wait(void){ /*等待线程结束*/if(thread[0] !=0) { //comment4pthread_join(thread[0],NULL);printf("线程1已经结束\n");} if(thread[1] !=0) { //comment5pthread_join(thread[1],NULL);printf("线程2已经结束\n");} }int main(){ /*用默认属性初始化互斥锁*/pthread_mutex_init(&mut,NULL);printf("我是主函数哦,我正在创建线程,呵呵\n");thread_create();printf("我是主函数哦,我正在等待线程完成任务阿,呵呵\n");thread_wait();return 0;}。

相关文档
最新文档