1 15 DMA的原理和應用

2021-07-22 13:28:08 字數 1708 閱讀 3023

(詳細的實驗**,請參看

一、  dma原理分析

1.  dma(direct memory access)直接記憶體儲存,用於記憶體到記憶體,或者記憶體到外設(介面、晶元暫存器等)

2.  dma控制器:2440為4通道;6410為四控制器,每個控制器8通道;210分為dma_mem、dma0以及dma1

二、  基於s3c2440的dma程式設計(touch dma.c   丟到dev目錄下,修改dev/makefile)

1.  dma初始化函式:void dma_init( )

先設定要傳輸的字串:char  *buf = "hello world!";

disrc0  r/w  0x4b00 0000

disrc0 = buf;

disrcc0    r/w    0x4b00 0004

loc[1]

0ahb

inc[0]

0increment    指標變化

increment

1.2  初始化目的位址

didst0    r/w    0x4b00 0008

didstc0    r/w    0x4b00 0000

loc[1]

1apb

inc[0]

1fixed    指標不變化

1.3  初始化控制暫存器

pcon0    r/w    0x4b00 0010

hwsrcsel

[26:24]

001uart0

swhw-sel

[23]

1by[26:24]operation

reload

[22]

1turn off when becomes

tc[19:0]

12資料位數

2.  開啟dma開始傳送——void dma_start()

dmasktrig0    r/w    0x4b00 0020

on_off

[1]1on

3.  dma.c的**如下:

char *buf = "hello ****u!";

#define disrc0     (*(volatile unsigned long *)0x4b000000)

#define disrcc0    (*(volatile unsigned long *)0x4b000004)

#define didst0     (*(volatile unsigned long *)0x4b000008)

#define didstc0    (*(volatile unsigned long *)0x4b00000c)

#define dcon0      (*(volatile unsigned long *)0x4b000010)

#define dmasktrig0 (*(volatile unsigned long *)0x4b000020)

#define utxh0      (volatile unsigned long *)0x50000020

void dma_init(void)

void dma_start(void)

loc[1]0:ahb

inc[0]

0:increment

指標變化

loc[1]1:apb

inc[0]

1:fixed

指標不變化

《嵌入式系統原理與應用》 (八)DMA 知識梳理

目錄 dma的定義及傳輸要素 dma的傳輸過程 dma的優缺點及其適用場景 stm32中dma的特點 stm32中dma的優先順序機制 stm32中dma的傳輸模式 stm32中dma的常用初始化過程 dma的常用庫函式 主要在初始化時結構體變數的設定 dma的引入 讓cpu做更有意義的工作 cpu...

CHIPSeq的原理和應用

染色質免疫共沉澱技術 chipseq,也稱結合位點分析法,是研究體內蛋白質與相互作用的有力工具,通常用於轉錄因子結合位點或組蛋白特異性修飾位點的研究。將與第二代測序技術相結合的技術,能夠高效地在全基因組範圍內檢測與組蛋白 轉錄因子等互作的區段。chipseq的原理是 首先通過染色質免疫共沉澱技術 特...

mybaits的原理和應用

是乙個orm框架。建立 物件 protected t newinstance public class implements invocationhandler serializable override public object invoke object proxy,method method...