感知层编程实验-实验六-dma.docxVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南昌航空大学实验报告 二〇二一年11月16日 课程名称: 感知层编程实验 实验名称: DMA编程 __ 学号: 姓名: 张闰美 同组人:_____________ 指导老师评定: 签名:______________________ 实验目的: 加深和巩固学生对于CC2530中DMA组件的理解和掌握 让学生初步掌握CC2530中DMA的使用,及其编程方法 提高学生的上机和编程过程中处理具体问题的能力 实验要求: 实验要求自己独立的完成; 编写和调试过程中出现的问题要做好记录,并事后总结到报告中 实验程序调试完成后, 用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩 实验完成后,要上交实验报告。 实验内容: 调通书中DMA示例代码; 书中代码使用的是LCD,由于学院配置开发板没有携带LCD模块,因此用串口代替LCD显示。也即是将内容1和2糅合在内容2里面。 使用串口的DMA功能,利用DMA实现2530与PC之间的串口通信。 实验相关电路图: P0_2、P0_3配置为外设功能时:P0_2为RX、P0_3为TX (2)实验相关寄存器和理论: ①DMA基础: DMA方式与非DMA方式的区别: CC2530中的DMA控制器协调所有的DMA传送,确保DMA请求和CPU存储器访问之间按照优先级协调、合理地进行。DMA控制器含有若干可编程的DMA通道,用来实现存储器-存储器的数据传送。DMA控制器控制整个XDATA存储空间的数据传送,由于大多数SFR寄存器(特殊寄存器)映射到DMA存储器空间,这些灵活的DMA通道的操作能够以创新的方式减轻CPU的负担,而在CC2530的数据手册中2.2.3物理存储器这节描述了哪个SFR寄存器映射到XDATA存储空间。 ②DMA控制器的主要功能如下: 5个独立的DMA通道 3个可以配置的DMA通道优先级 32个可以配置的传送触发事件 源地址和目标地址的独立控制 单独传送、数据块传送和重复传送模式 支持传输数据的长度域,设置可变传输长度 即可以工作在子模式,又可以工作在字节模式 ③DMA操作 DMA控制器有5个通道,即DMA通道0到通道4。每个DMA通道都能够从DMA存储器空间的一个位置传送数据到另一个位置,比如XDATA位置之间。为了使用DMA通道,必须先DMA配置参数和DMA配置安装,DMA状态图如下: 当DMA通道配置完毕后,在允许任何传输发起之前,必须进入工作状态。 DMA通道通过将DMA通道工作状态寄存器DMAARM中指定位置1,就可以进入工作状态。 一旦DMA通道进入工作状态,当配置的DMA触发事件发生时,传送就开始了。注意一个通道准备工作(即获得配置数据)的时间需要9个系统时钟,因此如果相应的DMAARM位设置,触发在需要配置通道的时间内出现,期望的触发将丢失。如果多于一个DMA通道同时进入工作状态,所有通道配置的时间将长一些(按顺序读取内存)。如果所有5个通道都进入工作状态,需要45个系统时钟,通道1首先准备好,然后是通道2,最后是通道0(所有都在最后8个系统时内)。可能的DMA触发事件有32个,如下表所示,例如UART传输、定时器溢出等。DMA通道要使用的触发事件有DMA通道配置设置,因此直到配置被读取之后,才能知道。使用这个触发器源必须符合端口中断使能位PICTL.P0IENL/H和P1IEN,注意所有中断使能的端口引脚都将产生一个触发。 为了通过DMA触发事件开始DMA传送,用户软件可以设置对应的DMAREQ位,强制使一个DMA传送开始。 应该注意如果之前配置的触发器源在DMA正在配置的时候产生了触发事件,就被当着错过的事件,一旦DMA通道准备好,传送就立即开始。即使新的触发和之前的触发不同也是这样。在一些情况下,这会导致传输错误,为了纠正这一点,触发源0必须是重新配置之间的触发源。这通过设置虚拟源和目标地址、使用一个字节的固定长度、块传输和触发源0实现。使能软件触发器(DMAREQ)清除错过的触发数,从存储器中取出一个新的配置之前(除非软件为该通道写DMAREQ),不产生新的触发。DMAREQ位只能在相应的DMA传输发生时清除,当通道解除准备工作状态时,DMAREQ位不被清除。 ④DMA配置参数 DMA运行的安装和控制由用户软件完成,本节描述了DMA通道能够使用之前,必须配置的参数。 这5个DMA通道每一个的行为通过下列参数配置: 源地址: DMA通道要读的数据的首地址 目标地址: DMA通道从源地址读出的要写数据的首地址。 用户必须确定该目标地址为可写 传送长度: 在DMA通过重新进入工作状态或解除工作状态之前,以及警告CPU即将有中断请求到来之前,要传送的长

您可能关注的文档

文档评论(0)

131****7710 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档