文档章节

BCM RPIDMA

RoyceInWh
 RoyceInWh
发布于 2016/06/20 16:04
字数 296
阅读 1
收藏 0

只有 3 个可写的寄存器。

DMA Channel 0 is located at the address of 0x7E007000, Channel 1 at 0x7E007100, Channel
2 at 0x7E007200 and so on. Thus adjacent DMA Channels are offset by 0x100.
DMA Channel 15 however, is physically removed from the other DMA Channels and so has
a different address base of 0x7EE05000.

Base 地址偏移 8 位:

/* valid only for channels 0 - 14, 15 has its own base address */

#define BCM2708_DMA_CHAN(n) ((n)<<8) /* base address */ 

#define BCM2708_DMA_CHANIO(dma_base, n) \ 

((void __iomem *)((char *)(dma_base)+BCM2708_DMA_CHAN(n)))

static struct resource bcm2708_dmaman_resources[] = { 

.start = DMA_BASE, 

.end = DMA_BASE + SZ_4K - 1, 

.flags = IORESOURCE_MEM, 

}; 

static struct platform_device bcm2708_dmaman_device = { 

.name = BCM_DMAMAN_DRIVER_NAME, 

.id = 0,        /* first bcm2708_dma */

.resource = bcm2708_dmaman_resources, 

.num_resources = ARRAY_SIZE(bcm2708_dmaman_resources), 

};

#define BCM2708_PERI_BASE        0x20000000 

#define IC0_BASE                 (BCM2708_PERI_BASE + 0x2000) 

#define ST_BASE                  (BCM2708_PERI_BASE + 0x3000)   /* System Timer */ 

#define MPHI_BASE        (BCM2708_PERI_BASE + 0x6000)   /* Message -based Parallel Host Interface */ 

#define DMA_BASE         (BCM2708_PERI_BASE + 0x7000)   /* DMA controller */

  1. 启动 DMA

    Each DMA channel operates by loading a Control Block (CB) data structure from memory
    into internal registers. The Control Block defines the required DMA operation. Each Control
    Block can point to a further Control Block to be loaded and executed once the operation
    described in the current Control Block has completed. In this way a linked list of Control
    Blocks can be constructed in order to execute a sequence of DMA operations without
    software intervention.

    写入 CB 数据到 CB 地址寄存器,并设置 active 位就会启动对应的 DMA

    extern void

    bcm_dma_start(void __iomem *dma_chan_base, dma_addr_t control_block) 

    dsb();  /* ARM data synchronization (push) operation */

    writel(control_block,        dma_chan_base + BCM2708_DMA_ADDR); 

    writel(BCM2708_DMA_ACTIVE,   dma_chan_base + BCM2708_DMA_CS); 

    }

本文转载自:http://blog.csdn.net/jingxia2008/article/details/27538109

RoyceInWh

RoyceInWh

粉丝 5
博文 240
码字总数 1282
作品 0
武汉
程序员
私信 提问
linux下的蓝牙驱动程序详解

1、首先要做Bluez协议栈的移植,这样在开发板上才可以用hciconfig, hcitool等命令。关于bluez协议栈的移植步骤网上很多。 2、该驱动是USB蓝牙设备驱动,分析根据蓝牙驱动的写的顺序进行。因为...

天王盖地虎626
2018/12/28
10
0
后缀名为.BCM的文件,能否用C#编程实现读写操作

從網上搜尋到的關於BCM的解釋: 1.BCM:Business Contact Manager File; 2.BCM-->MS works communications file; 3.BCM-->通訊文件, .DBF FoxBASE或FoxPro數據庫索引。 之前.BCM文件用于存储......

t_kong
2015/03/20
232
2
【Raspberry PI + L298N】 小车一

小白一枚,瞎捣鼓 简介 L298N 是一种双H桥电机驱动芯片,可以通过树莓派的GPIO的高低电平来控制L298N的行为。 L298N: 接线 树莓派的引脚 L298N接口 12V:12V输入正极 GND:电源地,接电源负...

囚兔
2018/10/09
458
0
解决ubuntu连WIFI的解决方法

今天在笔记本刚装好ubutnu17,发现不能连接wifi,上网查了一下是因为没有装驱动。网上有很多源码安装的方法,但是那只时针对几款特别的网卡,对于bcm(一般都是这种)的网卡的话可以直接用apt...

学-无止境
2018/01/26
2.5K
0
ubuntu 联想e430 无线没驱动

看官网,英文太烂。。。 https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#b43 - Internet access wl - Proprietary Broadcom STA Wireless driver () Install either bcmwl-kern......

杰克穷死s
2014/10/18
31
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部