版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、版权说明本文件中出现的任何文字叙述、文件格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属本人所有。-WangYiwei由于我正在学习“嵌入式系统原理与应用一一基于ARM微处理器和Linux操作系统”这门课程,网络上找不到课后习题答案。因此本人通过认真地做习题,不懂百度,查阅相关书籍等途径,整理了一份答案,可供各位参考。注意:答案并不一定完全正确,有异议的答案欢迎提出来大家一起探讨。嵌入式系统原理与应用基FAR讪微处理器.和Linux操作系统1m1.8练习题P141.选择题A说明:嵌入式系统的发展趋势表现在以下几方面:1产品种类不断丰富,应用范围不断普及2产品性能不断提髙3产品功耗不
2、断降低,体积不断缩小网络化、智能化程度不断提髙软件成为影响价格的主要因素D说明:常见的嵌入式操作系统:VxWorks,WindowsCE、uC/OSTI和嵌入式Linux。(3)A说明:VxWorks是美国WindRiver公司于1983年开发的一种32位嵌入式实时操作系统。2.填空题(1)嵌入式计算机微处理器外围电路外部设备板级支持包实时操作系统应用编程接口应用程序嵌入式处理器微控制器数字信号处理器3.简答题简述嵌入式系统的定义和特点答:定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积功耗有严格要求的专用计算机系统。特点:专用性强、实时性好、可裁剪性好
3、、可靠性高和功耗低等。简述计算机系统的发展历程第一阶段大致在20世纪70年代前后,可以看成是嵌入式系统的萌芽阶段;第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统;第三阶段是以嵌入式操作系统为标志的嵌入式系统,也是嵌入式应用开始普及的阶段;第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。(3)简述MCU和DSP的区别MCU是微控制器,DSP是数字信号处理器。MCU相当于小型的电脑,内部集成的CPU、ROM、RAM、I/O总线,所以集成度高是它的特点。DSP是专用的信息处理器,内部的程序是对不同的机器和环境进行特别优化,所以处理速度是最快的。2.
4、4练习题1.填空题ARM7ARM9ARM9EARM10EARM11精简指令集计算机SamsungARM920TIIC总线BGA显卡布线1.8V3.3V81281S3C241064MB64MB2.选择题(1)D(2)C(3)A(4)B(5)B(6)C(7)D(8)C(9)C(10)B3.简答题(1)ARM和S3C2410X有什么关系?S3C2410是韩国三星公司生产的嵌入式处理器,它采用了ARM公司的ARM920T(即ARM9)内核(2)ARM7是32位RISC处理器,使用3级流水线,采用冯诺依曼体系结构,不支持MMU。ARM8是32位RISC处理器,使用5级流水线,采用哈佛体系结构,支持MMU
5、。S3C2410X芯片有27根地址线,8根片选线(nGCS),32根数据线。S3C2410X芯片内部集成了一个LCD控制器,SDRAM控制器,3个通道UART,4个通道DMA,4个具有PWM功能的计时器和一个内部时钟,8通道的10位ADC。ARM体系结构有哪几种工作状态?又有哪几种运行模式?其中哪些为特权模式?哪些为异常模式?并指出处理器在什么情况下进入相应模式?工作状态:第1种:ARM状态。处理器执行32位的字对齐的ARM指令。第2种:Thumb状态。处理器执行16位的半字对齐的Thumb指令。运行模式:用户模式(usr)快速中断模式(fiq)外部中断模式(irq)管理模式(svc)数据访问
6、中止模式(abt)系统模式(sys)未定义指令中止模式(und)在这7种运行模式,除了用户模式外,其他6种处理器模式都为特权模式。在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式。用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下,如果没异常发生,不允许应用程序自行切换果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式。快速中断模式:支持高速数据传输和通道处理,当一个高优(fast)中断产生时将会进入这种模式。外部中断模式:也称为普通中断模式,当一个低优先级中断产生时将会进入这种模式。在这模式下
7、按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处理都在IRQ模式下进行。管理模式:是一种操作系统保护模式,当复位或软中断指令执行时处理器将进入这种模式。数据访问中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。系统模式:使用和user模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。未定义指令中止模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。ARM体系结构支持的数据类型?有多少寄存器?如何组织?支持的数据类型:字节(byte),各种处理器体系结
8、构中,字节的长度均为8位。半字(half-word),在ARM体系结构中,半字的长度为16位。字(word),在ARM体系结构中,字的长度为32位。ARM处理器共有37个寄存器,其中31个通用寄存器,6个状态寄存器。S3C2410的存储控制器如何对内存空间进行管理?S3C2410X存储控制器为片外存储器提供控制信号。它将系统的存储空间分成8组(Bank),每组的大小为128MB,共1GB。分析程序状态寄存器各位的功能描述,并说明C、Z、N、V在什么情况下进行置1和清0状态寄存器(PSR)的具体格式为Vpunused丁UTitifycd.rmodt:1r.V溢出标志位对于加/减法运算指令,当操作
9、数和运算结果为二进制补码表示的带符号数时,V=1表示符号位溢出,其它指令通常不影响V位。例如:两个正数(最高位为0)相加,运算结果为一个负数(最高位为1),则符号位溢出,相应V=1.C-进位或借位标志位对于加法指令(包括比较指令CMN),结果产生进位,则C=1,表示无符号数运算发生上溢出,其他情况下C=0;在减法指令中(包括比较指令CMP),结果产生借位,则C=0,表示无符号数运算发生下溢出,其他情况下C=1;对于包含移位操作的非加/减法运算指令,C中包含最后一次溢出位的数值;对于其他非加/减法运算指令,C位的值通常不受影响。Z-结果为0标志位Z=1表示运算结果是0,Z=0表示运算结果不是零;
10、对于CMP指令,Z=1表示进行比较的两个数大小相等。N-符号标志位本位设置成当前指令运算结果的bit31的值。当两个补码表示有符号整数运算时,N=1表示运算的结果为负数,N=0表示结果为正数或零。ARM指令可分为哪几类?说出哪几条指令是无条件执行的。ARM指令可分为:数据处理指令,跳转指令,程序状态寄存器处理指令,加载/存储指令,协处理器指令,异常产生指令。无条件执行指令:BLX指令,BKPT指令(产生软件断点中断)如何实现两个64位数的加法操作,如何实现两个64位的减法操作,如何求一个64位数的负数?实现64位数据加法运算:假设R0和R1存放了一个64位数据(作为被加数),R0存放数据的低3
11、2位;R2和R3中存放了另一个64位数据(作为加数),R2中存放低32位数据。运算结果送回到Rl:R0中(R0中存放低32位)。ADDSR0,R0,R2;低32位相加并影响标志位ADCR1,R1,R3;高32位相加再加上C标志位(进位值)实现64位数据减法运算:如果寄存器R0和R1中放置一个64位的被减数,其中R0中放置低32位数值;寄存器R2和R3中放置一个64位的减数,其中R2中放置低32位数值。运算结果送回到Rl:R0中(R0中存放低32位)。SUBSR0,R0,R2;低32位相减并影响标志位SBCRl,Rl,R3;高32位相减再减去C标志位的反码求一个64位数的负数:如果寄存器R0和R
12、1中放置一个64位数,其中R0中放置低32位数值;寄存器R4和R5中放置其负数,其中R4中放置低32位数值。RSBSR4,R0,#00减去低32位并影响标志位RSCR5,R1,#00减去高32位再减去C标志位的反码4.程序题(1)分析下列每条语句,并说明程序实现的功能。CMPR0,#0判断R0是否等于0MOVEQRl,#0/当R0等于0,则Rl等于0MOVGTRl,#l/当R0为正数时,则Rl等于l此功能码段可以判别R0中的值为正数还是0。写一条ARM指令,分别完成下列操作。R0=16MOVRO,#16R0=R1/16MOVRO,R1,LSR#4R1=R2*4ADDR1,R2.R2.LSL#1
13、R0=-R0RSBRO,RO,#0(3)写出实现下列操作的ARM指令。当Z=1时,将存储器地址为R1的字数据读入寄存器R0。MOVEQR0,Rl当Z=1时,将存储器地址为R1+R2的字数据读入寄存器R0。LDREQR0,R1,R2将存储器地址为R1-4的字数据读入寄存器R0。LDRR0,R1,#-4将存储器地址为R1+R6的字数据读入寄存器R0,并将新地址R1+R6写入R1。LDRR0,R1,R6!写出下列指令所实现的操作。LDRR2,R3,-2!将存储器地址为R3-2的字数据读入R2,并将地址R3-2写入R3LDRR0,R0,R1将存储器地址为R0的字数据读入R0,并将地址R0+R1写入R0
14、LDRR1,R0,R2,LSL#2!将存储器地址为R0+R2*4的字数据读入R1,并将地址R0+R2*4写入R0STRBR1,R2,#0 xB0R0的低8位存入存储器地址为R2+0XB0字节中LDMIAR0,R1,R2,R8将内存单元R0所指向的地址单元以字为单位递减方式读取到R1,R2,R8中,低地址编号的字数据内存单元对应低编号寄存器STMDBR0!,R1R5,R8,R9R1R5,R8,R9存储到以R0为起始地址的递减内存中,最终R0指向存放R9的地址单元5.计算题某设备的接口电路如图所示,请计算出该设备的地址。3.5练习题1.选择题(1)B(2)A(3)C(4)D(5)A2.填空题(1)
15、.so.a程序运行过程中编译过程中(2)LIo(3)$(4)$A$(CC、CFLAGS等)目标文件的完整名称所有不重复的依赖文件,以空格隔开第一个依赖文件的名称、3.简答题make和Makefile之间的关系?答:make是一种命令,是根据Makefile文件的规则决定如何编译和连接程序或其他的动作。Makefile的普通变量与预定义变量有什么不同?预定义变量有哪些?它们分别表示什么意思?答:普通变量:引用变量时,只需在变量前面加上$符;预定义变量:已经定义好,直接引用即可。预定义变量有:$、$。$:表示完整的目标文件名;$八:表示所有的依赖文件;$:表示依赖文件列表中的第一个文件。GCC编译
16、器的常用参数有哪些?它们的功能分别是什么?答:gcc编译器的常用参数:-o,-I,-L,-E,-S,-c功能:-o表示编译成一个可执行程序;-I表示指定头文件目录;-L表示指定库文件目录选项;-E表示对源代码进行预编译;-S表示编译成汇编代码;-c表示把.c文件转换为以.。为扩展名的目标文件。4.编程及调试题(1)根据要求编写Makefile文件。有5个文件分别是main.c、visit.h、study.h、visit.c、study.c,具体代码如下。/main.c文件ooooi:#include00002:00003:mtmain(void)00004=00005:inti=o;poooe
17、:0000:printF;1Pl&aseinpjtth己valueofifram1.to5:oooob=scanf(%df&i;00009z00010:if(i=1)ooon:visit();00012z00013:if(i=2)oooi4zstudy(3;pools:0001:return0;/visit.h文件00001Zvoidvisitoj/study.h文件oaooi:uoidstudy/visit.c文件oaooi:#ineludevisit.h0002:0003:voidvisit()00004:oooos:printf(visitfriendtoda/n|J;OOOic:/st
18、udy.cooooi:includestudy-hooooz:00002:voidstudy(j00004=00003zprintf(Etudyembeddedsystemtada/Xn);0000c:|1)如果上述文件在同一目录,请编写Makefile文件,用于生成可执行程序zhs。/Makefile文件1PHONY:匚丄已曰n显示的指出cleans伪目标)防止当爺目录下存在匚丄已文件不能进行洎理工作3OBJECTS=niaiti口visit-口stucly口#自定义变虽:6zhs:$(OBJECTS)gcc-TiJall-g$A一口$Umain:maincvisi匸hstudyhgcc-T
19、iJall-g-c$-o50visit.:visi匸匚rFi曰it-hgee-TiJall-g-c$-cstudy匸i:studycstudyhgcc-TiJall-g-c$-o5015clean:已cho”工已niovef11已IS#在drt芳俞加表ZJ不显7K甜芳rrn-fmain5(OBJECTS)20如果按照下面的目录结构存放文件,请改写Makefile文件。bin:存放生成的可执行文件obj:存放.0文件include:存放visit.h、study.hsre:存放main.c、visit.c、study.c和Makefile.1.PHONY:cleanzSRC_DIR=.INC_D
20、IR=./includeOBJ_DIR=./objBITJ_DIR=./bin7S$(BIN_DIR)/zhs:$(CBJ_DIR)/main.o$(OBJ_D:R)/visit.$(OBJ_DIR)/study.gcc-Vail-g$A-$(OBJ_DIR)/main.o:$(SRC_DIR)/ain.c$(INC_DIR)/visit.h$(INC_DIR)/study.hgcc-Vail-g-c$-1Z$(OBJ_DIR)/visit$(SRC_DIR)visit.c$(:NC_DIR)/visit.hgcc-Vail-g-c$-$(OBJ_DIR)/study,o:$(SRC_DIR)
21、study.c$(:NC_DIR)/study.hgcc-Vail-g-c$-$clean:echorrreinovefilestart.,rrm-f$(BIN_DIR)/zhs$(OBJ_DIR)/*.如果按照下面的目录结构存放文件,请改写Makefile文件。bin:存放生成的可执行文件obj:存放.o文件include:存放visit.h、study.hsre:存放main.c和Makefilesrc/srcl:存放visit.csrc/src2:存放study.c1.PHONY:cleanzSRC_DIR=.INCDIR=includeOBJ_DIR=.objBIN_DIR=.din7
22、S$(BIN_DIR)/zhs:$(OBJ_DIR)/train.$(OBJ_DIR)/visit.$(OBJ_DIR)/study.gcc-Wall-g$A-$(OBJ_DIR)/niain.o:$(SRC_DIP)/main.c$(INC_IIR)/visit,h$(INC_DIR)/study.hgcc-Wall-g-c$-1Z$(OBJ_DIR)/visit$(SRC_DIR)/srcl/visit.c$(INC_DIR)/visi?.hgcc-Wall-g-c$-$0$(OBJ_DIR)/ssudy.o:$(SRC_DIR)/src2/study.c$(INC_DIR)/study.
23、hgcc-Wall-g-c$-clean:echorrreni3vefilestart.rrISrm-f$(BIM_DIR)/zhs$(OBJ_DIR)/*.说明:这可能只是其中一种方法,方法不唯一。我这种做法有一个缺点就是需要修改visit.c和study.c文件的内容,如修改#include“./include/visit.h”。(2)按要求完成以下操作。vi编辑test.c文件,其内容如下。123丄1itmainU45ints=Fi;o7forti=;iv=;i+)8gs=s+i;10liprintffln.s);121314return;15用gcc-otest.otest.c编译,生
24、成test.owywubuntu:/mnt/hgfs/lo/exercise_91sIstest.cwywubuntu:/mnt/hgfs/lo/exercise_91sgcc-otest.otest.cwywubuntu:/mnt/hgfs/lo/exercise_91$IstEwt.vtest讨丫恥ubuntu:/mnt/hgf已x已cisE91s用gcc-g-otestl.otest.c编译,生成testl.owywtaiiburtu:/mnt/hgfs/lo/exercise_91SIstestwywuburtu:/mnt/hqfs/lo/已z已rcise91Sqcc-g-testl.
25、otest.cwywubuntu:/mnt/hgfs/lo/exercise_91$IstEwtl.otesttest.owywuburtu:/mnt/hgfs/lo/已x已rcisE91$比较test.o和testl.o文件的大小,思考为什么?wywubuntu:/mnt/hgfs/lo/exercise_91fIs-Itotal9-rwxrwxrwx1rootroot83202014-91-0518:24testl.o-rwxrvrxrwx1rootroot1512014-91-0518:22test.c-rwxrvrxrwx1rootroot71762014-01-0518:22test
26、.o讨ywtgubuntii:/mnt/hgf/L0/EHEc:isE91$带调试选项-g的目标文件testl.o比较大。因为在gcc编译源代码时指定-g选项可以产生带有调试信息的目标代码。(3)使用GDB调试上面的程序调试参数-g进行编译#gcc-gtest.c-otestwywubuntu:/mnt/hgfs/Lo/exercise_91$Ist亡百tl.otestqtest.owywubuntu:/mnt/hgfs/Lo/exercise_91Sgcc-gtest.c-testwywubuntu:/mnt/hgfs/Lo/exercise_91$Istesttestltesttest坤丫
27、隠ubuntui/ffint/hgfs/lo/已xEci5已91$启动GDB调试,开始调试#gdbGtestwywubuntu:/mnt/hgfs/lo/exercise_91$gdbGtestGNUgdb(GDB)7.1-ubuntuCopyright(C)201GFreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterThisisfreesoftware:youarefreetochangeandredistributeit.ThereisNOWARRAMTYptotheextentpermittedb/law.Type1
28、1showcop/ingandshowwarrantyfordetails.ThisGDBwasconfiguredasi486-linux-gnu.ForbugreportinginstructionsFpleasesee:.Gtest:Nosuchfileordirec,|(gEb)使用gdb命令进行调试。略。(4)编写一个程序,将系统时间以year-month-dayhour:minute:second格式显示在屏幕上,并将它保存在time.txt文件。1J2-3#斗51ntmain(-aid)e7t;8stricttm*ptoday;9FILE*f|l=NUL.;1911t=time(
29、);12ptoday=localtime(St);1314printfS2d-02d-02dB2dB2d:%S2d,ptoday-tm_year+,ptodiiion+,ptoday-:tmmday,ptoday-!tmhourHptoday-tmminHptodmy-tmsec);1516fp=fopen(,);17iff=fpl1819printf(txterroriXn,_LINE;2021-1;232斗fprintf(fprrptoday-tmyear+rPtoday-tmnon+,ptoday-tmmdayrptoday-tmhourrptoday-tmmirrptoday-tm_s
30、ec);2526return;I274.4练习题填空题串口11520081无无编程器串口网络接口Bootloader程序仿真调试程序的烧写zImageroot.cramfs启动加载模式下载模式汇编语言C语言U-BootBlobARMBoot(或者RedBootvivi)BusyBox启动加载模式说明:按回车进入启动加载模式;按回车外的任意键进入i的下载模式。选择题A(2)C(3)A(4)A(5)A简答题简述嵌入式开发环境的搭建过程答:1、交叉编译工具链的安装;2、安装配置TFTP服务;3、安装配置NFS服务;4、C-Kermit的安装配置;5、minicom的安装配置;6、windows下超级
31、终端的配置。BootLoader的结构分两部分,简述各部分的功能?答:两部分:Stagel:用汇编语言编写,主要进行设备的初始化;Stage2:用C语言编写,增强程序的移植性和可读性。ARM常用的Bootloader程序有哪些?答:U-Boot,Blob,RedBoot,vivi简述生成内核映像文件zImage的步骤。答:1、makeconfig进入命令行;2、makemenuconfig内核裁剪;3、makeclean清理以前已生成的目标文件;4、makedep编译变量的依赖关系;5、makezImage生成内核镜像文件zImage。BusyBox工具的功能是什么?答:BusyBox工具用来
32、精简基本用户命令和程序,它将数以百计的常用UNIX/Linux命令集成到一个可执行文件中。简述根文件系统的创建过程。答:1、建立基本的目录结构;2、交叉编译BusyBox;3、创建配置文件;4、利用cramfs工具创建根文件系统映像文件。5.4练习题1.选择题B(2)D(3)C(4)A(5)C(6)D2.填空题(1)内核态字符设备块设备主设备号次设备号静态编译动态编译(5)insmod说明:用于加载模块化驱动程序的命令是smod;用于卸载已安装模块化驱动程序的命令jrmmod;用于查看已安装的模块化驱动程序的命令是mod。3.简答题简述驱动程序的主要功能。答:1、对设备初始化和释放;2、数据传
33、送;3、检测和处理设备出现的错误。简述驱动程序的组成。答:1、自动配置和初始化子程序;2、服务于I/O请求的子程序;3、中断服务子程序。简述设备驱动程序与应用程序的区别。答:1、设备驱动程序工作在内核态下,而应用程序工作在用户态下;2、设备驱动程序从module_init()开始,将初始化函数加入内核初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止工作,等待应用程序的调用;而应用程序从main()函数开始执行。3、应用程序可以和GLIBC库连接,因此可以包含标准的头文件;驱动程序不能使用标准的C库,因此不能调用所有的C库函数。简述设备文件、驱动文
34、件、主设备号和次设备号之间的关系。答:驱动程序加载到内核后有一个主设备号。在Linux内核中,主设备号标识设备对应的驱动程序,告诉Linux内核使用哪一个驱动程序为该设备(也就是/dev下的设备文件)服务,而次设备号则用来标识具体且唯一的某个设备。简述字符设备驱动程序提供的常用入口点及各自的功能。答:open入口点:对将要进行的I/O操作做好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表示设备处于忙状态。close入口点:当设备操作结束时,需要调用close子程序关闭设备。独占设备必须标记设备可再次使用。read入口点
35、:当从设备上读取数据时,需要调用read子程序。write入口点:向设备上写数据时,需要调用write子程序。ioctl入口点:主要用于对设备进行读写之外的其他操作,比如配置设备、进入或退出某种操作模式等,这些操作一般无法通过read或write子函数完成操作。简述逐次逼近型ADC的结构及工作原理。答:逐次逼近型ADC通常由比较器,数模转换器(DAC),寄存器和控制逻辑电路组成。工作原理:初始化时,先将寄存器各位清空。转换时,先将寄存器的最高位置1,再将寄存器的数值送入DAC,经D/A转换后生成模拟量送入比较器中与输入的模拟量进行比较,若VsVi,则该位的1被保留,否则被清除;然后再将次高位置
36、1,再将寄存器的数值送入DAC,经D/A转换后生成的模拟量送入比较器中与输入模拟量进行比较,若VsL3过GFGZ3色嵩口来扌空制II-已口白勺亮更.快用言士半和JEZ用程斥应用程dddddddddduuuuuuuuuulcleclclHclTlHclalclIninlnln!nlninlnln!nlnin件-=Iinu:x/kcernel.hcIinuw/moduI&_heIinuk/irhi七口hiaqinux/device-.hnvIinux/typ-li二-=Iinli:x/io-clInacIinLiw/e-rror_ha=Iin!/cdev.havIi门lix/=hnvd石e/io-
37、.ha-=asm/Limuuemm.h二-cmsm/arch/ire-gs-gpio_ha走.:EVI_C&ri1define-LEDCFF走丸LED邊备自struct-31_O_IIErd扌空l_EU的宾灭A:芒QjX_c对ao4xz00042_istaticstr-uc-s3c210_Ied_devmdevj-0004a=deF_tde-wno;0004:4二0DO4C:/V初女合|七IU言侖口0004C.vo-idS3c241O_l&d_lnitlOvoid00047.应:的锻口为输出00043:三刁匚24O_spio_c7fpinCS3C2I1O_GPGS3C2410_GPG3_OUT
38、P3;口口口石i二注设0006左二ctaticzirrts3c241O_lEd,_r&leaS&(-K-ti-iJctinode*InodeBs=trurtfile-00063二电OOOfi4二returnOOOOSS二口口口肓G-OOOC7-/IO扌甲衞丨EU数,诵过LEDONTOLEDdFF命令来扌空ifrjLED的耳页OO6&=emd!用户空制命令r包4SLEl_OM和LEC_.OFFoooso二口口口三11二瓏K1-三匚初皓対熄00052-s3c-4-10_aizno.-set口infm:3U24zLO_i3PT3:3”1_匚口OF)ooo&a二3-0005二OOOE&二打升i殳苗OO
39、5CstaticintS302.-411O1ldoperii:struciinoclcinodesjstrucfcfiles=flip300057OOO&5=retui-iio;ODOS9:yOOOSO二OOO9=static:irrtS3C241_iOCtlinodeiticdePstructfils*fl_ipfsun-signedintcmdrfunsigne-dlongzii*q?ooo7=口口口丁丄二五witcli(匸mH)00072=in(S3C24-10_GPGrLED_ONl00075=m_cfe-v.BBtLI-Bij-口口ot6-:b-resloooeo=bl:00051:
40、ODOQS二口口口吕m二OOOB4z0003S二OnoB6:oooe7二口口口吕szOOOB9-0009O二OOOS2ooo9a二口口口日at00095z0009二00097二ooo9a=099-1OO1o=OO11二ooO2二00103:00104二口口丄口Ei:OOIOGOO1OP二00108二OO15二口口丄1_口::Oil1二00112二a1x3z00114-OOH&二oan6二00117二口口丄丄曰二00119-00X2=dcFauIt:f-eturn-&IN/ALjretHJrnO;/S/static.读取LED的*式态buffer;1=1=1来存H者讳斗飞m1_丘罚式态UdLin
41、t!用来记录用户读取了李少牛宇符33-ic_tS3C24lO_l&df&adcsruzttile1口幵_七pos)rcturn1f(可丰時写操件囲埶,本宏例中千做任._st讥iuss-izzs_tS302.4-10a_IlSV_VVrilEiB-iljsriJcfileflip.-char/SS:件饪作结枯仕斗现s3c2l-lOE=d_Dhun门睜staticfila_oparatian-s_Ied_fcps-o-wn&r=THIS_MODLILE=r.o-psn=s3=24-10_led_ouuria.release-=j弓匸:2411_co_le-d_reIea.io-cl=1O_lod_
42、io-=l.ads311.tl_d_rsad-wjrite=e:3匚34XD_I_wrlte!rbuFtgrsie-_tuour仁函埶与cpnC尊Io-FF_t=:pcs)菲绩凋用的连拐OO1ZL能函劉Ie-v(tjoid)/v玄装工口设昔的staticLoiclled_aetup_口口_丘m00124口口15OO12G0012?O1Z80013900130ooiax口口:LmEintret=MKOEVfu_EBXcriTw*u_mfnorS;ret=reaister_chrdev_rea丄.DEVICE_MAMEif(rety00133口口134p-rintkcCLinedru口is-t&r
43、chrdev厂=口匚口ninrfiluerretr!n一LINEmFILEh00135X300137ooiaeOO1S300140retallo-c_chrde-v_region(与_mm彳a丄#DEVICE_NAME)jIffF&tC口)00142口口x4B00144X4&OO001-1?OO1-1S00149口口_m口OO15X口口XEiz00153XS4.00155OO1SS00157ooisa口口XEl5ooieoprintk:fB,Lin&d!:mlloizchrdewre-gioninf11eerrtirlnJrLINE=cde-v_init(&jm_OT曰a.cdevr卑1Q_f
44、&_fo尸与J;rtt_.cd&v.owner=THIS_MODULE1;irti_elfuh.cdu”ctps-=2坤工Q_Fu_fojsjsjiret=cd&v_addCSjot_cfvcduv*if(retuo)printk(Line%decde-waddreturn-1;FILEirijfile%e=e-rror!XnfLINEFILE:OOL6LOO3-GZ口口X63OX4returnendled00165/ta块iostaticintinits3C2-4-10_le4_nit一,m)LEDOOL79ooraooolexOOLSZooraa口口XB4003-35打權块卸载函埶stat
45、icxzcriids3o2410_led_exit(vuid)ooxa石ooras003-90zunregister_chrdav_regiqn(efevjio丄J;modul甘_1nito:s:juNi.o_uci_和订七):module_e-xit:W3CNWW之Joooio二oooiJ.二00012:口口口二00014二口口口ZLEi=OOOlzOOOiT二00018二0003-9二口口口丘口二00021-头烹#ineludeJtindLid&洋ineludejinizIuidE#inelude#inelude件-cstdiot.h-cstdliti.hcunis-tdkiAcfcntL
46、hc-svs-/i口ctl.liAvsy=/types_h-define-l_EE_ON3_jtd&fine-l_EE二a尸尸门voididGIay(inizimintim01rHifintar-gszruhar*argh)口口口三5TOOOZfi-oaaT=oooza=oooss=oooso二00035.二口口口二00033=00034二00035:003百二口口口二00030-intfd-Uintled_fi-tatzue:fd=fCfdO;o-pe-n(/de-z/|ed弋O)printF(Line-id!opendc&IedLIMEreturn-1;00035二00040二ioctl(fdLED_OFF)J0041=whilcCxOO4主二OOS=J?Endimain?口口口STzOOG:=voidd&layont3Eeo=inti一OfOS丄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 16971-1:2024 EN Ophthalmic instruments - Optical coherence tomographs - Part 1: Optical coherence tomographs for the posterior segment of the human eye
- 淮阴师范学院《土壤污染及其防治》2023-2024学年第一学期期末试卷
- 淮阴师范学院《中学音乐课教学案例分析》2023-2024学年第一学期期末试卷
- 淮阴师范学院《初等数学研究》2023-2024学年第一学期期末试卷
- DB2310-T 140-2024牡丹江地区森林可持续经营规程
- 宝石中英对照词汇-总和
- 春节前安全检查与培训考核试卷
- 油炸食品制造业中的员工健康与安全管理考核试卷
- 打印技术在建筑领域的应用考核试卷
- 广东省广州市白云区2024-2025学年四年级上学期期中英语试卷
- 部编版道德与法治 四年级上册 单元作业设计《为父母分担》
- 核酸的生物合成 完整版
- 第一章-教育及其本质
- 天然气巡检记录表
- 食品进货台账制度范本(3篇)
- 甲苯磺酸瑞马唑仑临床应用
- 中国古代文学史PPT完整PPT完整全套教学课件
- 车牌识别一体机安装调试教程
- Python语言学习通超星课后章节答案期末考试题库2023年
- 海报设计教学课件完整版讲课讲稿
- 年产30万吨碳酸钙粉建设项目可行性研究报告
评论
0/150
提交评论