1. #include <cdefBF533.h>
  2. #include <sys\exception.h>
  3.  
  4. #define POLC 0x00004000
  5. #define PORT_CFG_2_3_EXT_FS 0x00000020
  6. #define XFR_TYPE_NON_ITU656 0x0000000C
  7. #define SLEN_32 0x001f
  8. #define FLOW_1 0x1000
  9.  
  10. unsigned char iTxBuffer[];
  11. unsigned char iRxBuffer[];
  12.  
  13. EX_INTERRUPT_HANDLER(Sport0_RX_ISR);
  14. EX_INTERRUPT_HANDLER(Sport0_TX_ISR);
  15.  
  16. void Init_Sport1_TX(int TCLKDIV,int TFSDIV)
  17. {
  18.  
  19. *pSPORT0_TCLKDIV = TCLKDIV;
  20. *pSPORT0_TFSDIV = TFSDIV;
  21. *pSPORT0_TCR1 = ITFS|TFSR|ITCLK;
  22. *pSPORT0_TCR2 = ;
  23. }
  24.  
  25. void Init_Sport1_RX(int RCLKDIV,int RFSDIV)
  26. {
  27.  
  28. *pSPORT0_RCLKDIV = RCLKDIV;
  29. *pSPORT0_RFSDIV = RFSDIV;
  30. *pSPORT0_RCR1 = IRFS|RFSR|IRCLK;
  31. *pSPORT0_RCR2 = ;
  32. }
  33.  
  34. void Init_DMA(void)
  35. {
  36. *pDMA1_PERIPHERAL_MAP = 0x1000;
  37. *pDMA1_CONFIG = WNR | WDSIZE_32 | DI_EN | FLOW_1;
  38. *pDMA1_START_ADDR = (void *)iRxBuffer;
  39. *pDMA1_X_COUNT = ;
  40. *pDMA1_X_MODIFY = ;
  41.  
  42. *pDMA2_PERIPHERAL_MAP = 0x2000;
  43. *pDMA2_CONFIG = WDSIZE_32 | DI_EN |FLOW_1;
  44. *pDMA2_START_ADDR = (void *)iTxBuffer;
  45. *pDMA2_X_COUNT = ;
  46. *pDMA2_X_MODIFY = ;
  47. }
  48.  
  49. void Enable_DMA_Sport0_TX(void)
  50. {
  51. *pDMA2_CONFIG = (*pDMA2_CONFIG | DMAEN);
  52. *pSPORT0_TCR1 = (*pSPORT0_TCR1 | TSPEN);
  53. }
  54.  
  55. void Enable_DMA_Sport0_RX(void)
  56. {
  57. *pDMA1_CONFIG = (*pDMA1_CONFIG | DMAEN);
  58. *pSPORT0_RCR1 = (*pSPORT0_RCR1 | RSPEN);;
  59. }
  60.  
  61. void Init_Interrupts(void)
  62. {
  63. *pSIC_IAR0 = 0xffffffff;
  64. *pSIC_IAR1 = 0xfffff32f;
  65. *pSIC_IAR2 = 0xffffffff;
  66.  
  67. register_handler(ik_ivg9, Sport0_RX_ISR);
  68. register_handler(ik_ivg10, Sport0_TX_ISR);
  69.  
  70. *pSIC_IMASK = 0x00000600;
  71.  
  72. }
  73.  
  74. EX_INTERRUPT_HANDLER(Sport0_RX_ISR)
  75. {
  76. *pDMA1_IRQ_STATUS = 0x0001;
  77.  
  78. printf("SPORT RX DMA Done!\n");
  79.  
  80. *pSIC_IMASK &= ~0x00000200;
  81.  
  82. }
  83.  
  84. EX_INTERRUPT_HANDLER(Sport0_TX_ISR)
  85. {
  86. *pDMA2_IRQ_STATUS = 0x0001;
  87.  
  88. printf("SPORT TX DMA Done!\n");
  89.  
  90. *pSIC_IMASK &= ~0x00000400;
  91. }
  92.  
  93. main()
  94. {
  95. int i;
  96. Set_PLL(,);
  97. Init_EBIU();
  98. Init_SDRAM();
  99.  
  100. for(i=;i<;i++)
  101. iTxBuffer[i]=i;
  102.  
  103. Init_Sport1_TX(,);
  104. Init_Sport1_RX(,);
  105. Init_Interrupts();
  106. Init_DMA();
  107. Enable_DMA_Sport0_TX();
  108. Enable_DMA_Sport0_RX();
  109. while();
  110. }

Blackfin DSP(八):BF533的DMA的更多相关文章

  1. Blackfin DSP(八):1D DMA与音频处理模板

    1.DMA产生的背景 在许多需要使用DSP 的场合,一般都需要大量的数据搬移工作,而如果每次数据搬移都由DSP 内核来参与完成,将大大占用DSP 内核的处理时间,从而严重影响其信号处理能力.因此,Bl ...

  2. Blackfin DSP(二):寄存器操作与GPIO

    BlackfinDSP的寄存器是通过指针操作的,与51.ARM等MCU一样,通过“或”操作来置1,通过“与”操作清零. 在DSP上最简单的外设非IO口莫属,但是由于其功能强大,远非一般IO口可比,因此 ...

  3. Blackfin DSP(五):BF533的SPI接口

    533SPI的特性 最高速度可达SCLK/4: 支持主模式和从模式: 可使用8个GPIO口作为从选择线: 1 slave select input pins 7 slave select output ...

  4. Blackfin DSP(三):BF533 的EBIU接口之flash

    上一节谈了GPIO问题,是用BF561 ezkit进行说明的,这是因为561 ezkit上的GPIO是与LED直连的,讲解GPIO时不会涉及到其它问题,降低了复杂性.对于533,也采取同样的操作即可. ...

  5. Blackfin DSP(四):BF533 EBIU之SDRAM

    BF533的SDRAM控制器最大支持128M bytes的SDRAM空间:总线宽度可以配置为4位.8位.16位.处理器与SDRAM的连线包括数据总线D[0:15].地址总线A[1:19].SDRAM刷 ...

  6. Blackfin DSP(六):BF533的SPORT接口

    1.特性 bf533有两个SPORT口(synchronous serial Port),即同步串行接口.完全独立的接收和发送通道,且每个通道都具有缓冲,最高速度可达SCLK/2.最大支持32bit字 ...

  7. Blackfin DSP(七):用SPORT口模拟SPI

    1.问题的提出 当系统从SPI device启动时,若SCLK = 133M,则SPI的最大速度为33M.然而,有一些串行的flash设备能更快的运行,因此,如果我们使用SPORT口,它的最大速度为S ...

  8. WS2812B彩灯详细讲解篇(STM32 PWM+DMA控制 STM32 HAL库编程 循环延时控制多种控制方式)

    一.效果展示 观看演示效果:https://www.bilibili.com/video/BV1JT4y1P72Q 二. 基础认识 (一)  小理论 WS2812B是一种智能控制LED光源,将控制电路 ...

  9. Android原生(Native)C开发之四:SDL移植笔记

    http://www.apkbus.com/forum.php?mod=viewthread&tid=1989 SDL(Simple DirectMedia Layer)是一套开放源码的跨平台 ...

随机推荐

  1. cocos2d-x 的两大基类

    cocos2d-x 有两个重要的基类,一个管理引用计数的 Ref,别一个则定义许多基本属性的 Node. 在 cocos2d-x 中的基本概念 说到 create 函数的时候提到 cocos2d-x ...

  2. 使用python 提取网页的特定数据转

    http://blog.csdn.net/nwpulei/article/details/7272832

  3. 64位Win7系统下vs2010调试无法连接oracle

    64位win7系统的Program Files (x86)路径中有括号,oracle不认识这样的路径,所以就出现不能连接数据库的问题.所以我们可以将vs2010的内部调试web服务器WebDev.We ...

  4. Android SQLiteOpenHelper(二)

    上一篇我们已经了解了SQLiteOpenHelper 和 构造函数. 现在我们就来掌握一下:onCreate( )  onUpgrade( )  onDowngrade( ) public void ...

  5. 2016 - 1 - 23 xml解析 -- 语法简介

    一: XML的概念 1. 一种可拓展标记语言 2. 与json一样,也是一种常用的数据交互格式 3. 一般也叫XML文档---XML Document 二: XML语法   1.一个完整的XML文档一 ...

  6. SQL Analysis Services MDX 查询超时 解决办法

    当页面有很多MDX语句查询的时候,会发生超时的情况. 解决办法: SQL Analysis Services所在的服务器(OLAP的文件夹下) 找到: msmdpump.ini 将: <Conf ...

  7. cocos2dx 3.0 之 lua 创建类

    利用3.0里面封装好的模板类来写,不罗嗦,直接上例子(消除星星小游戏中 星星类) require "extern" StarSprite = class("StarSpr ...

  8. 使用OpenXML操作Office文档

    使用OpenXML类库, 以编程的方式来访问PowerPoint, Word, Excel等文档, 有时能够为我们批量编辑文档提供方便. 最近项目中遇到的两个任务是: 1. 替换文档中的图片的Alt ...

  9. Largest Number

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  10. ArrayBlockingQueue-我们到底能走多远系列(42)

    我们到底能走多远系列(42) 扯淡: 乘着有空,读些juc的源码学习下.后续把juc大致走一边,反正以后肯定要再来. 主题: BlockingQueue 是什么 A java.util.Queue t ...