Blackfin DSP(八):BF533的DMA
#include <cdefBF533.h>
#include <sys\exception.h> #define POLC 0x00004000
#define PORT_CFG_2_3_EXT_FS 0x00000020
#define XFR_TYPE_NON_ITU656 0x0000000C
#define SLEN_32 0x001f
#define FLOW_1 0x1000 unsigned char iTxBuffer[];
unsigned char iRxBuffer[]; EX_INTERRUPT_HANDLER(Sport0_RX_ISR);
EX_INTERRUPT_HANDLER(Sport0_TX_ISR); void Init_Sport1_TX(int TCLKDIV,int TFSDIV)
{ *pSPORT0_TCLKDIV = TCLKDIV;
*pSPORT0_TFSDIV = TFSDIV;
*pSPORT0_TCR1 = ITFS|TFSR|ITCLK;
*pSPORT0_TCR2 = ;
} void Init_Sport1_RX(int RCLKDIV,int RFSDIV)
{ *pSPORT0_RCLKDIV = RCLKDIV;
*pSPORT0_RFSDIV = RFSDIV;
*pSPORT0_RCR1 = IRFS|RFSR|IRCLK;
*pSPORT0_RCR2 = ;
} void Init_DMA(void)
{
*pDMA1_PERIPHERAL_MAP = 0x1000;
*pDMA1_CONFIG = WNR | WDSIZE_32 | DI_EN | FLOW_1;
*pDMA1_START_ADDR = (void *)iRxBuffer;
*pDMA1_X_COUNT = ;
*pDMA1_X_MODIFY = ; *pDMA2_PERIPHERAL_MAP = 0x2000;
*pDMA2_CONFIG = WDSIZE_32 | DI_EN |FLOW_1;
*pDMA2_START_ADDR = (void *)iTxBuffer;
*pDMA2_X_COUNT = ;
*pDMA2_X_MODIFY = ;
} void Enable_DMA_Sport0_TX(void)
{
*pDMA2_CONFIG = (*pDMA2_CONFIG | DMAEN);
*pSPORT0_TCR1 = (*pSPORT0_TCR1 | TSPEN);
} void Enable_DMA_Sport0_RX(void)
{
*pDMA1_CONFIG = (*pDMA1_CONFIG | DMAEN);
*pSPORT0_RCR1 = (*pSPORT0_RCR1 | RSPEN);;
} void Init_Interrupts(void)
{
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xfffff32f;
*pSIC_IAR2 = 0xffffffff; register_handler(ik_ivg9, Sport0_RX_ISR);
register_handler(ik_ivg10, Sport0_TX_ISR); *pSIC_IMASK = 0x00000600; } EX_INTERRUPT_HANDLER(Sport0_RX_ISR)
{
*pDMA1_IRQ_STATUS = 0x0001; printf("SPORT RX DMA Done!\n"); *pSIC_IMASK &= ~0x00000200; } EX_INTERRUPT_HANDLER(Sport0_TX_ISR)
{
*pDMA2_IRQ_STATUS = 0x0001; printf("SPORT TX DMA Done!\n"); *pSIC_IMASK &= ~0x00000400;
} main()
{
int i;
Set_PLL(,);
Init_EBIU();
Init_SDRAM(); for(i=;i<;i++)
iTxBuffer[i]=i; Init_Sport1_TX(,);
Init_Sport1_RX(,);
Init_Interrupts();
Init_DMA();
Enable_DMA_Sport0_TX();
Enable_DMA_Sport0_RX();
while();
}
Blackfin DSP(八):BF533的DMA的更多相关文章
- Blackfin DSP(八):1D DMA与音频处理模板
1.DMA产生的背景 在许多需要使用DSP 的场合,一般都需要大量的数据搬移工作,而如果每次数据搬移都由DSP 内核来参与完成,将大大占用DSP 内核的处理时间,从而严重影响其信号处理能力.因此,Bl ...
- Blackfin DSP(二):寄存器操作与GPIO
BlackfinDSP的寄存器是通过指针操作的,与51.ARM等MCU一样,通过“或”操作来置1,通过“与”操作清零. 在DSP上最简单的外设非IO口莫属,但是由于其功能强大,远非一般IO口可比,因此 ...
- Blackfin DSP(五):BF533的SPI接口
533SPI的特性 最高速度可达SCLK/4: 支持主模式和从模式: 可使用8个GPIO口作为从选择线: 1 slave select input pins 7 slave select output ...
- Blackfin DSP(三):BF533 的EBIU接口之flash
上一节谈了GPIO问题,是用BF561 ezkit进行说明的,这是因为561 ezkit上的GPIO是与LED直连的,讲解GPIO时不会涉及到其它问题,降低了复杂性.对于533,也采取同样的操作即可. ...
- Blackfin DSP(四):BF533 EBIU之SDRAM
BF533的SDRAM控制器最大支持128M bytes的SDRAM空间:总线宽度可以配置为4位.8位.16位.处理器与SDRAM的连线包括数据总线D[0:15].地址总线A[1:19].SDRAM刷 ...
- Blackfin DSP(六):BF533的SPORT接口
1.特性 bf533有两个SPORT口(synchronous serial Port),即同步串行接口.完全独立的接收和发送通道,且每个通道都具有缓冲,最高速度可达SCLK/2.最大支持32bit字 ...
- Blackfin DSP(七):用SPORT口模拟SPI
1.问题的提出 当系统从SPI device启动时,若SCLK = 133M,则SPI的最大速度为33M.然而,有一些串行的flash设备能更快的运行,因此,如果我们使用SPORT口,它的最大速度为S ...
- WS2812B彩灯详细讲解篇(STM32 PWM+DMA控制 STM32 HAL库编程 循环延时控制多种控制方式)
一.效果展示 观看演示效果:https://www.bilibili.com/video/BV1JT4y1P72Q 二. 基础认识 (一) 小理论 WS2812B是一种智能控制LED光源,将控制电路 ...
- Android原生(Native)C开发之四:SDL移植笔记
http://www.apkbus.com/forum.php?mod=viewthread&tid=1989 SDL(Simple DirectMedia Layer)是一套开放源码的跨平台 ...
随机推荐
- String类实现
String类是应用框架中不可或缺的类 重载运算符实现字符串的操作 #idndef IOTECK_STRING_H_#define IOTECK_STRING_H_namespace iotek{ c ...
- 当powershell遇上mysql引发的血案
------------------[故事来由]------------------ 起因:群友问:把cmd.exe /c a:\mysql5.6\bin\mysql.exe -uroot < ...
- 实现手机扫描二维码页面登录,类似web微信-第二篇,关于二维码的自动生成
转自:http://www.cnblogs.com/fengyun99/p/3541251.html 接上一章,我们已经基本把业务逻辑分析清楚了 下面我们第一步,实现二维码的web动态生成. 页面的二 ...
- Linux提供两个格式化错误信息的函数
#include “stdio.h” Void perror(__const char *__s); 其中__s是出现错误的地方,函数向标准错误输出设备输出如下:s:错误的详细信息. Eg.perro ...
- JVM-并发-线程安全与锁优化
线程安全与锁优化 1.线程安全 (1)当多个线程访问一个对象时,如果不考虑这些线程在执行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获 ...
- Java类与对象——几个课堂例子的总结及作业
作业:使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”. 源代码: import java.util.Scanner; ...
- 自己动手编译apache-tomcat-6.0.41-src源码
第一步:下载apache-tomcat-6.0.41-src 第二步:阅读BUILDING.txt.了解所需要的步骤. In order to build a binary distribution ...
- good books
- C++ Daily 《3》----构造函数可否是虚函数
C++ 中构造函数可否是虚函数? 绝不要!! 而且,在构造函数中调用虚函数也是不提倡的行为,因为会引发预想不到的结果. 因为,在 derived class 对象构造的过程中,首先调用的是基类的构造函 ...
- Java常量字符串String理解
Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用 "eq ...