




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学课程设计专用纸摘要随着移动设备的流行和发展,嵌入式系统已经成为一个热点。它并不是最近出现的新技术,只是随着微电子技术和计算机技术的发展,微控制芯片功能越来越大,而嵌入微控制芯片的设备和系统越来越多,从而使得这种技术越来越引人注目。WINDOWSCE之所以脱颖而出,是因为WINDOWSCE的高级特性,诸如网络、通信以及图形功能,和模块化设计结合在一起,为中级开发人员创建高复杂度嵌入式系统提供了理想的环境。同时,WINDOWSCE提供一个稳定、灵活且被广泛支持的操作系统来处理建立在嵌入式系统上的多种多样的硬件平台和软件应用程序。本文所要研究的就是基于ARM嵌入式系统的DMA控制器驱动程序的设计。关键字嵌入式,ARM,DMA沈阳理工大学课程设计专用纸目录第1章、设计目的1第2章、设计思路221ARM实验箱硬件资源概述222ARM的DMA控制器3第3章、关键技术431ARM9处理器432嵌入式C语言开发技术533ADS开发环境634DMA控制器7341DMA控制器工作原理7342DMA方式特点8343DMA方式的具体过程8344DMA通道可处理的4种情况835实验详解8第4章、程序流程12第5章、主要源代码1351主函数设计1352定时器初始化程序14第6章、运行结果及结论1561运行结果1562结论15第7章、参考文献16沈阳理工大学课程设计专用纸NO1第1章、设计目的通过课程设计,熟悉基于ARM微处理器的嵌入式系统开发的过程,掌握嵌入式系统开发的知识。针对某一嵌入式微处理器进行实际开发,锻炼实践动手能力。了解并熟悉DMA的概念及其工作原理,掌握ARM相应的寄存器配置,能够用C编写相应的程序。沈阳理工大学课程设计专用纸NO2第2章、设计思路21ARM实验箱硬件资源概述ELARM830型教学实验系统属于一种综合的教学实验系统,该系统采用了目前在国内普遍认同的ARM920T核,32位微处理器,实现了多模块的应用实验。它是集学习、应用编程、开发研究于一体ARM实验教学系统。用户可根据自己的需求选用不同类型的CPU适配板,兼容ARM7与ARM9,而不需要改变任何配置,同时,实验系统上的TECH_V总线能够拓展较为丰富的实验接口板。用户在了解TECH_V标准后,更能研发出不同用途的实验接口板。除此之外,在实验板上有丰富的外围扩展资源(数字、模拟信号发生器,数字量IO输入输出,语音编解码、人机接口等单元),可以完成ARM的基础实验、算法实验和数据通信实验、以太网实验。图21ELARM830实验教学系统的功能框图沈阳理工大学课程设计专用纸NO322ARM的DMA控制器中断方式是在CPU的控制下进行的,中断方式尽管可以实时的响应外部中断源的请求,但由于它需要额外的开销时间,以及中断处理服务时间,使得的中断的响应频率受到限制。当高速外设与计算机系统进行信息交换时,若采用中断方式,CPU将会频繁的出现中断而不能完成主要任务或者根本来不及响应中断而造成数据的丢失现象,因而传输速率受CPU运行指令速度的限制。采取DMA方式,即(DIRECTMEMORYACESS),可以确保外设和计算机系统进行高速信息交换。这种方式是存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。它为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。这里,“直接”的含义是在DMA传输过程中,DMA控制器负责管理整个操作,CPU不参与管理。S3C2410有4个通道控制器,作为简单的事例,阐述原理。本程序是用DMA方法实现串口数据的发送,故使用BDMA。沈阳理工大学课程设计专用纸NO4第3章、关键技术31ARM9处理器新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。ARM9系列包括三种处理器ARM926EJS、ARM946ES和ARM968ES。11、时钟频率的提高ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。2、指令周期的改进指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30左右。ALOADS指令和STORES指令指令周期数的改进最明显的是LOADS指令和STORES指令。从ARM7到ARM9这两条指令的执行时间减少了30。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结构不同所造成的。ARM9有独立的指令和数据存储器接口,允许处理器同时进行取指令和读写数据。这叫做改进型哈佛结构。而ARM7只有数据存储接口,它同时用来取指令和数据访问。5级流水线引入了独立的存储器和写回流水线,分别用来访问存储器和将结果写回寄存器。B互锁技术当指令需要的数据因为以前的指令没有执行完而没有准备好就会产生管道互锁。当管道互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。虽然这种技术会增加代码执行时间,但是为初期的设计者提供了巨大的方便。编译器以及汇编程序员可以通过重新设计代码的顺序或者其它方法来减少管道互锁的数量。沈阳理工大学课程设计专用纸NO5C分支指令ARM9和ARM7的分支指令周期是相同。而且ARM9TDMI和ARM8ES并没有对分支指令进行预测处理。3、ARM9特点以ARM9ES为例介绍ARM9处理器的特点。其主要特点如下A32BIT定点RISC处理器,改进型ARM/THUMB代码交织,增强性乘法设计。支持实时REALTIME调试;B片内指令和数据SRAM,而且指令和数据的存储器容量可调;C片内指令和数据告诉缓冲器CACHE容量从4K字节到1M字节;D设置保护单元PROTCCTIONUNIT,非常适合嵌入式应用中队存储器进行分段和保护;E采用AMBAAHB总线接口,为外设提供统一的地址和数据总线;F支持外部协处理器,指令和数据总线有简单的握手信令支持;G支持标准基本逻辑单元扫描测试方法学,而且支持BIST;H支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。32嵌入式C语言开发技术不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,由于汇编语言开发的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言一种“高级的低级”语言,则成为嵌入式系统开发的最佳选择。3在C语言中,宏是产生内嵌代码的唯一方法,对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。嵌入式开发的核心就是利用最少的资源最高的效的实现所需功能。C语言在嵌入式中控制系统开发中的优势汇编语言有其执行效率高的优点,但其可移植性和可读性差,以及它本身就是一种编程效率低下的低级语言,这些都使他的编程和维护极不方便,从而导致整个系统的可靠性也较差,而使用C语言进行嵌入式控制系统的开发,有着汇编语言不可比拟的优势。1、编程调试灵活方便沈阳理工大学课程设计专用纸NO6C语言具有灵的编程方式,当前几乎看了所有的嵌入式控制系统都有相应的C语言级别的仿真调试系统,使得调试十分方便。2、生成的代码编译效率高。3、编写的程序完全模块化。4、可移植性好一种语言所编写的C语言程序,只需将部分与相关的地方进行适度的修改,就可方便的移植到另外一种系列上。5、便与项目维护管理用C语言发的代码便与开发小组计划项目,灵活管理,分工工作,以及后期维护,基本上可以杜绝因开发人员变化而给项目进度或后期维护或升级带来影响。33ADS开发环境ADSARMDEVELOPERSUITE,是在1993年由METROWERKS公司开发,是ARM处理器下最重要的开发工具。ADS是全套的实时开发软件工具,包编译器生成的代码密度和执行速度优异。可快速低价地创建ARM结构应用。ADS对汇编、C/C、JAVA支持的均很好,是目前最成熟的ARM开发工具。很多ARM开发软件也是借用的ADS的编译器。21、ADS包括三种调试器AXDARMEXTENDEDDEBUGGERARM扩展调试器;ARMSDARMSYMBOLICDEBUGGERARM符号调试器;与老版本兼容的WINDOWS或UNIX下的ARM调试工具,ADW/ADUAPPLICATIONDEBUGGERWINDOWS/UNIX。其中AXD不仅拥有低版本ARM调试器的所有功能,还新添了图形用户界面,更方便的视窗管理数据显示,格式化和编辑以及全套的命令行界面。该产品还包括REALMONITORTM可以再前台调试的同时断点续存并且在不中断应用的情况下读写内存跟踪调试工具。2、组成介绍A编译器ADS提供多种编译器,以支持ARM和THUMB指令的变异。ARMCC是ARMC编译器TCC是THUMBC编译器沈阳理工大学课程设计专用纸NO7ARMCPP是ARMC编译器TCPP是THUMBC编译器ARMASM是ARM和THUMB的编译器B链接器ARMLINK是ARM链接器。该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。C符号调试器ARMSD是ARM和THUMB的符号调试器。它能够进行源码级的程序调试。用户可以再用C或汇编语言写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。DFROMELF将ELF格式的文件转换为各种格式的输出文件,包括BIN格式的映像文件、MOTOROLA32位S格式影像文件、INTEL32位格式映像文件和VERILOG十六进制文件。EARMARARMAR是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链接器以代替几个ELF文件。FCODEWARRIORCODEWARRIOR集成开发环境IDE为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CODEWARRIORIDE为ARM和THUMB处理器开发用C、C或者ARM汇编语言编写的程序代码。GC和C库ADS提供ANSIC库函数和C库函数,支持被编译的C和C大面。用户可以把C库中的与目标相关的函数作为自己应用程序中的一部分,重新进行代码的实现。34DMA控制器341DMA控制器工作原理所谓DMA方式,即直接存储器存取,是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。这里,直接的含义是指在DMA传送过程中,DMA控制器负责管理整个操作,CPU不参与管理。DMA方式为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。4沈阳理工大学课程设计专用纸NO8342DMA方式特点它不是使用软件而是采用一个专门的控制器来控制内存与外设之间的数据交流,并且无须CPU介入,从而大大提高了CPU的工作效率;还排除了CPU因并行设备过多而来不及处理以及因速度不匹配而造成数据丢失等现象。343DMA方式的具体过程1外设向DMA控制器发出DMA请求。2DMA控制器向CPU发出总线请求信号。3CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号。4CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。5DMA控制器向外部设备发出DMA请求回答信号。6进行DMA传送。7数据传送完毕,DMA控制器通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。8中断处理结束后,CPU返回到被中断的程序继续执行。CPU重新获得总线控制权。6344DMA通道可处理的4种情况1源和目的都在系统总线上;2源在系统总线上,目的在外围总线上;3源在外围总线上,目的在系统总线上;4源和目的都在外围总线上。35实验详解首先,要正确的对S3C2410相关寄存器的进行配置5在表31中,DISRCN为DMA要传送数据地址的初始化寄存器。沈阳理工大学课程设计专用纸NO9表31表32中,DIDSTN为DMA目标地址初始化寄存器。表32表33为DMA源数据的相关配置。LOC10源数据在ARM高速总线上;1源数据在ARM外围总线上;INC00源数据每传送一个,源数据地址增长一个;1源数据的地址是固定不变的;表33沈阳理工大学课程设计专用纸NO10表34为DMA目标数据的相关配置。LOC10目标数据在ARM高速总线上;1目标数据在ARM外围总线上;INC00目标数据每传送一个,源数据地址增长一个;1目标数据的地址是固定不变的;表34沈阳理工大学课程设计专用纸NO11接下来配置DCONN(N0,1,2,3)寄存器,见表35。表35DCONN位描述DMD_HS31选择请求模式或握手模式0请求模式1握手模式SYNC30选择同步模式0DREQ和DACK与APB时钟同步1DREQ和DACK与AHB时钟同步INT29当计数器到达0时是否使能中断0禁止中断1使能中断TSZ28选择传输单位的大小0单位传输1长度为4的猝发式传输SERVMODE27选择服务模式0单服务模式1整服务模式HWSRCSEL2624为DMA设置DMA请求源DCON0000NXDREQ0001UART0010SDI011TIMER100USBDEVICEEP1DCON1000NXDREQ1001UART1010I2SSDI011SPI100USBDEVICEEP2DCON2000I2SSDO001I2SSDI010SDI011TIMER100USBDEVICEEP3DCON3000UART2001SDI010SPI011TIMER100USBDEVICEEP4SWHW_SEL23在DMA软件请求源和硬件请求源之间选择0软件请求模式,DMA通过设置DMASKTRIG寄存器SW_TRIG位触发1硬件请求模式,DMA通过本寄存器的HWSRCSEL位设置来触发RELOAD22当当前计数器值等于零后是否重新加载0自动加载1DMA通道关闭,不重新加载DSZ2120传输数据的大小0字节1半字2字3保留TC190初始化计数器,在这里设置计数器的值。接下来配置DMASKTRIGN如下表(表36)所示表36DMASKTRIGN位描述沈阳理工大学课程设计专用纸NO12STOP2停止DMA操作1当前自动传输结束立刻停止,如果当前没有自动传输,DMA立即停止,CURR_TC0ON_OFF1DMA通道开关位0通道关闭,DMA请求被忽略1通道打开。SW_TRIG0DMA通道通过软件请求模式触发1对这个DMA控制器请求一次DMA操作。注这个位只有在DCONN23选择1并且本寄存器的ON_OFF位置1才能生效。当DMA操作开始后,本位自动清0第4章、程序流程该程序的流程是,在ADS调试环境下,在主程序MAIN函数中的RDMASKTRIG011处设置断点,全速运行映象文件到该处。下一步单步运行,在串口助手的接收栏中,将接收50个字符,在串口助手的最下栏可以看到接收的字符数,而此时CPU已经停止,但是串口仍然在发送数据,这些数据的传送就是通过DMA控制器发送的,它没有通过CPU,这说明了DMA的直接存储器访问的功能得以实现。程序流程图如下沈阳理工大学课程设计专用纸NO13开始初始化死循环DMA中断服务程序子服务程序运行正常图41程序流程图第5章、主要源代码51主函数设计以下函数为各异常模式服务子程序。设成死循环是为调试用,一旦发生此类异常,程序便跳入异常模式服务子程序,终止程序运行。VOID_IRQDMA_ISRVOID/DMA中断服务程序/UART_PRINTF“DMA_ISR“RSRCPND|BIT_DMA0RINTPND|BIT_DMA0沈阳理工大学课程设计专用纸NO14VOIDDMAINT_INITVOID/DMA中断初始化IFRINTPNDPISR_DMA0INTDMA_ISRRINTMSK/开中断;VOIDISR_INITVOID/异常及中断控制器的初始化PISR_UNDEFUNSIGNEDHALTUNDEFPISR_SWIUNSIGNEDHALTSWIPISR_PABORTUNSIGNEDHALTPABORTPISR_DABORTUNSIGNEDHALTDABORTRINTMOD0X0/ALLIRQMODERINTMSKBIT_ALLMSK/ALLINTERRUPTISMASKEDRINTSUBMSKBIT_SUB_ALLMSK/ALLSUBINTERRUPTISMASKEDAPRIL01,2002SOPVOIDTARGET_INITVOID/目标板初始化程序,主函数中只需调用此函数,即可完成目标板的初始化MMU_INITCHANGECLOCKDIVIDER1,1/124CHANGEMPLLVALUE0XA1,0X3,0X1/FCLK2028MHZISR_INITPORT_INITUART_INIT0,115200UART_SELECT0DMAINT_INIT沈阳理工大学课程设计专用纸NO1552定时器初始化程序VOIDTIMER1_INITVOIDRGPGCONRG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机外勤弹射救生工中秋节后复工安全考核试卷含答案
- 城市轨道交通站务员节假日前安全考核试卷含答案
- 企业考评员工作职责及绩效考核手册
- 可变电容器装校工国庆节后复工安全考核试卷含答案
- 工厂劳动安全防护使用规范
- 关于我初中的朋友作文400字汇编七篇
- 印染助剂合成工节假日前安全考核试卷含答案
- 数控拉床工节假日前安全考核试卷含答案
- 水生物病害防治员节假日前安全考核试卷含答案
- 气体分馏装置操作工节假日前安全考核试卷含答案
- 浙江大学新宇集团部门负责人岗位说明书
- TSCS 000013-2021 碳化硼-碳化硅芯块 无机阴离子(F-、Cl-、Br-、I-)的测定 离子色谱法
- GB/T 6426-1999铁电陶瓷材料电滞回线的准静态测试方法
- GB/T 14846-2014铝及铝合金挤压型材尺寸偏差
- 广西版建筑装饰装修工程消耗量定额说明及计算规则
- GA/T 594-2006保安服务操作规程与质量控制
- 髋关节解剖资料课件
- 坚持男女平等基本国策(妇联培训)课件
- 颅脑外伤(共61张PPT)
- 人教版《生命.生态.安全》六年级上册全册教案
- 矿种代码与规模分类表
评论
0/150
提交评论