亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? xsdmaapi.h

?? 嵌入式系統(tǒng)關(guān)于串口傳輸、觸摸屏、定時(shí)器、控制器、中斷處理、音頻控制等實(shí)驗(yàn)代碼
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/******************************************************************************
**
**  COPYRIGHT (C) 2000, 2001 Intel Corporation.
**
**  This software as well as the software described in it is furnished under 
**  license and may only be used or copied in accordance with the terms of the 
**  license. The information in this file is furnished for informational use 
**  only, is subject to change without notice, and should not be construed as 
**  a commitment by Intel Corporation. Intel Corporation assumes no 
**  responsibility or liability for any errors or inaccuracies that may appear 
**  in this document or any software that may be provided in association with 
**  this document. 
**  Except as permitted by such license, no part of this document may be 
**  reproduced, stored in a retrieval system, or transmitted in any form or by 
**  any means without the express written consent of Intel Corporation. 
**
**  FILENAME:      XsDmaApi.h
**
**  PURPOSE:       Contains register defs and the external API for the 
**                 DMA controller.
**
**  LAST MODIFIED: $Modtime: 7/09/01 2:34p $
******************************************************************************/


#ifndef C_DMA_CONTROLLER_API
#define C_DMA_CONTROLLER_API

/*
*******************************************************************************
    Miscellaneous constants
*******************************************************************************
*/

#define XSDMA_CHANNEL_MAX        15
#define XSDMA_CHANNEL_NUM   (XSDMA_CHANNEL_MAX + 1)
#define XSDMA_CHANNEL_UNAVAILABLE    -1


#define XSDMA_MAX_BUF_SIZE  ((1u<<13)-1) // Max the DMA HW can process

/*
*******************************************************************************
Mask version of the DMA Control/Status register bits
*******************************************************************************
*/
        // The first four are also used as Interrupt Reasons in various
        //   contexts.
#define DCSR_BUSERRINTR     (0x1U << 0)  // Bus error status bit
#define DCSR_STARTINTR      (0x1U << 1)  // Descriptor fetch status 
#define DCSR_ENDINTR        (0x1U << 2)  // finish status
#define DCSR_STOPINTR       (0x1U << 3)  // stopped status

#define DCSR_REQPEND        (0x1U << 8)  // Request Pending (read-only)
#define DCSR_STOPIRQEN      (0x1U << 29) // Enable the stopped interrupt
#define DCSR_NOFETCH        (0x1U << 30) // Descriptor fetch mode, 0 = fetch
#define DCSR_RUN            (0x1U << 31) // run, 1=start

        // Mask of all writable bits in DCSR; others must be written as 0
#define DCSR_WRITABLES_MSK  (DCSR_BUSERRINTR |\
                             DCSR_STARTINTR  |\
                             DCSR_ENDINTR    |\
                             DCSR_STOPIRQEN  |\
                             DCSR_NOFETCH    |\
                             DCSR_RUN         )

        // Mask to clear all interrupt reasons in DCSR
#define DCSR_CLEAR_INTS_MSK (DCSR_BUSERRINTR |\
                             DCSR_STARTINTR  |\
                             DCSR_ENDINTR    )

/*
*******************************************************************************
 Mask version of the DMA interrupt register (read-only)
*******************************************************************************
*/

#define DINT_CH0            (0x1U << 0)  // channel 0 interrupt
#define DINT_CH1            (0x1U << 1)  // channel 1 interrupt
#define DINT_CH2            (0x1U << 2)  // channel 2 interrupt
#define DINT_CH3            (0x1U << 3)  // channel 3 interrupt
#define DINT_CH4            (0x1U << 4)  // channel 4 interrupt
#define DINT_CH5            (0x1U << 5)  // channel 5 interrupt
#define DINT_CH6            (0x1U << 6)  // channel 6 interrupt
#define DINT_CH7            (0x1U << 7)  // channel 7 interrupt
#define DINT_CH8            (0x1U << 8)  // channel 8 interrupt
#define DINT_CH9            (0x1U << 9)  // channel 9 interrupt
#define DINT_CH10           (0x1U << 10) // channel 10 interrupt
#define DINT_CH11           (0x1U << 11) // channel 11 interrupt
#define DINT_CH12           (0x1U << 12) // channel 12 interrupt
#define DINT_CH13           (0x1U << 13) // channel 13 interrupt
#define DINT_CH14           (0x1U << 14) // channel 14 interrupt
#define DINT_CH15           (0x1U << 15) // channel 15 interrupt

/*
*******************************************************************************
Mask version of the DMA request to channel map register
*******************************************************************************
*/

#define DRCMR_CHLNUM_SHIFT  0           // channel number register shift
#define DRCMR_CHLNUM_MSK    0x0F         // channel number mask within register
#define DRCMR_MAPVLD        (0x1U << 7)  // request mapped to valid channel


/*
*******************************************************************************
Mask version of the DMA descriptor address register
*******************************************************************************
*/

#define DDADR_STOP          (0x1U << 0)          // stop after processing
#define DDADR_ADDR_SHIFT    4                   // address shift 
#define DDADR_ADDR_MASK     (0xFFFFFFFU << DDADR_ADDR_SHIFT) // address of next

/*
*******************************************************************************
Mask version of the DMA source address register
*******************************************************************************
*/

#define DSADR_PERIPHERAL    (0x1U << 2)          // memory or peripheral, 0=mem
#define DSADR_ADDR_SHIFT    3                   // address shift
#define DSADR_ADDR_MASK     (0xFFFFFFF8U << DSADR_ADDR_SHIFT)  // Source address

/*
*******************************************************************************
Mask version of the DMA target address register
*******************************************************************************
*/

#define DTADR_PERIPHERAL    (0x1U << 2)          // memory or peripheral
#define DTADR_ADDR_SHIFT    3                   // address shift in register
#define DTADR_ADDR_MASK     (0xFFFFFFF8U << DTADR_ADDR_SHIFT)  // target address

/*
*******************************************************************************
Mask version of the DMA command register
*******************************************************************************
*/

#define DCMD_LEN_SHIFT      0               // length shift
#define DCMD_LEN_MASK       (0x1FFFU << 0)   // length of transfer in bytes

#define DCMD_WIDTH_SHIFT    14              // width shift in register
#define DCMD_WIDTH_MASK     (0x3U << DCMD_WIDTH_SHIFT)  // width of peripheral
#define DCMD_WIDTH_RSVD     (0x0U << DCMD_WIDTH_SHIFT)  // reserved value
#define DCMD_WIDTH_1        (0x1U << DCMD_WIDTH_SHIFT)  // 1 byte
#define DCMD_WIDTH_2        (0x2U << DCMD_WIDTH_SHIFT)  // 2 bytes
#define DCMD_WIDTH_4        (0x3U << DCMD_WIDTH_SHIFT)  // 4 bytes

#define DCMD_SIZE_SHIFT     16
#define DCMD_SIZE_MASK      (0x3U << DCMD_SIZE_SHIFT)   // burst size
#define DCMD_SIZE_RSVD      (0x0U << DCMD_SIZE_SHIFT)   // reserved
#define DCMD_SIZE_8         (0x1U << DCMD_SIZE_SHIFT)   // 8 bytes
#define DCMD_SIZE_16        (0x2U << DCMD_SIZE_SHIFT)   // 16 bytes
#define DCMD_SIZE_32        (0x3U << DCMD_SIZE_SHIFT)   // 32 bytes

#define DCMD_BIG_ENDIAN     (0x1U << 18)     // 0=little endian
#define DCMD_FLYBYT         (0x1U << 19)     // fly-by target
#define DCMD_FLYBYS         (0x1U << 20)     // fly-by source
#define DCMD_ENDIRQEN       (0x1U << 21)     // end interupt enable
#define DCMD_STARTIRQEN     (0x1U << 22)     // start interrupt enable
#define DCMD_FLOWTRG        (0x1U << 28)     // target flow control
#define DCMD_FLOWSRC        (0x1U << 29)     // source flow control
#define DCMD_INCTRGADDR     (0x1U << 30)     // increment target address
#define DCMD_INCSRCADDR     (0x1U << 31)     // increment source address



/*
*******************************************************************************
Note: DMA registers are defined in real memory, and in the case of this 
system, virtual memory is set to physical memory for the DMA registers
*******************************************************************************
*/

#define DMA_REGISTER_BASE   0x40000000
#define NUM_OF_PERIPHERALS  22          // number of DMA supported peripherals

#define XSDMA_DESC_SIGNATURE  0x44657363  // ASCII code for "Desc"
#define XSDMA_DMA_TIMEOUT     100           // Timeout on DMA run bit set


//#define PERIPH_TYPE     0x50657269  // ASCII code for "Peri"
//#define MEM_TYPE        0x4D656D6F  // ASCII code for "Memo"

typedef enum XsDmaDeviceTypeE
{
    XSDMA_DT_PERIPH_TYPE    = 0x50657269,  // ASCII code for "Peri"
    XSDMA_DT_MEM_TYPE       = 0x4D656D6F  // ASCII code for "Memo"
    
} XsDmaDeviceTypeT;


/*
*******************************************************************************
The following structure is used for the DMA specific data for each of the 
peripheral devices.
*******************************************************************************
*/

typedef struct XsDmatoDeviceS
{
    UINT32 name;
    UINT32 rec_addr;   
    UINT32 trans_addr;
    UINT32 data_width;
    UINT32 best_burst;
}XsDmaToDeviceT;


/*
*******************************************************************************
A structure to define a DMA descriptor
*******************************************************************************
*/

typedef struct XsDmaDescriptorElementsS * XsDmaDescriptorElementsTPT;


typedef struct XsDmaDescriptorElementsS 
{
    UINT32 nextPhysicalAddr;        // actual physical address of next descriptor
    UINT32 sourcePhysicalAddr;      // actual physical address of the source 
    UINT32 targetPhysicalAddr;      // actual physical address of the target
    UINT32 commandRegister;
    
    // elements used for software access
    XsDmaDescriptorElementsTPT nextVirtualAddr;
    PVOID  sourceVirtualAddr;
    PVOID  targetVirtualAddr;
    PVOID  branchedVirtualAddr;
        
    // The next element must be fixed at 32 bytes offset from the top of this 
    // structure. It contains the address of the descriptor that the system 
    // will branch to if a source/target compare bit is set. Not used in 
    // this version of the processor. It is here in preparation for the next 
    // version. 
    UINT32 branchedPhysicalAddr;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va韩国va欧美va精品 | 欧美日韩国产美女| 91麻豆精东视频| 91在线国内视频| 91片在线免费观看| 一本色道久久综合亚洲91| 91在线精品一区二区三区| 色综合天天狠狠| 欧美性生活久久| 欧美嫩在线观看| 日韩一区二区三| 久久久久亚洲综合| 亚洲国产高清在线观看视频| 日韩毛片精品高清免费| 亚洲综合色噜噜狠狠| 天天av天天翘天天综合网色鬼国产| 亚洲一区二区黄色| 日产国产欧美视频一区精品| 久久国产精品免费| 粉嫩绯色av一区二区在线观看| 成人国产在线观看| 色综合久久久久网| 欧美精品久久一区| 亚洲成人精品一区| 免费日韩伦理电影| 亚洲视频网在线直播| 一区二区三区在线影院| 亚洲aⅴ怡春院| 麻豆成人91精品二区三区| 久久99深爱久久99精品| 春色校园综合激情亚洲| 在线观看视频欧美| 日韩免费高清av| 久久久91精品国产一区二区三区| 17c精品麻豆一区二区免费| 一区二区三区免费观看| 麻豆国产欧美日韩综合精品二区| 国产成人免费在线| 色婷婷久久99综合精品jk白丝| 欧美日韩国产一级片| 精品日韩99亚洲| 亚洲欧美偷拍另类a∨色屁股| 偷拍一区二区三区四区| 国产精品69久久久久水密桃| 色香蕉久久蜜桃| 欧美xxxxxxxxx| 亚洲欧美日韩久久| 国产真实乱子伦精品视频| 91在线观看地址| 亚洲精品一区二区三区精华液| 一色屋精品亚洲香蕉网站| 日本不卡的三区四区五区| 成人av在线播放网址| 欧美美女bb生活片| 国产精品久久一级| 日韩在线卡一卡二| 97久久超碰国产精品电影| 欧美一区二区免费观在线| 亚洲图片你懂的| 国产一区久久久| 欧美日韩国产片| 亚洲欧美偷拍卡通变态| 国产九九视频一区二区三区| 91国产视频在线观看| 久久久久国产精品人| 午夜欧美视频在线观看| 99r精品视频| 精品国产一区二区三区久久影院 | 欧美精品成人一区二区三区四区| 国产午夜三级一区二区三| 人妖欧美一区二区| 欧美日韩另类一区| 亚洲猫色日本管| 不卡的av电影在线观看| 2024国产精品| 日本午夜一区二区| 欧美吻胸吃奶大尺度电影| 国产精品久久久久久久久搜平片 | 91精品国产日韩91久久久久久| 《视频一区视频二区| 国产精品一区二区三区四区| 欧美一级艳片视频免费观看| 亚洲综合精品久久| 色婷婷亚洲综合| 国产精品久久777777| 国产电影一区二区三区| 精品黑人一区二区三区久久 | av网站一区二区三区| 欧美国产视频在线| 国产不卡在线一区| 久久久一区二区| 精品一区二区免费| 欧美va亚洲va在线观看蝴蝶网| 肉色丝袜一区二区| 欧美美女网站色| 日韩激情av在线| 欧美丰满少妇xxxxx高潮对白| 亚洲超碰97人人做人人爱| 欧美亚一区二区| 香蕉av福利精品导航| 欧美日本免费一区二区三区| 亚洲国产精品一区二区久久| 18涩涩午夜精品.www| 成人黄页在线观看| 中文字幕亚洲精品在线观看 | 精品国产乱码久久久久久牛牛| 日本一区中文字幕| 日韩亚洲欧美成人一区| 美女视频一区二区| 精品免费日韩av| 国产精品综合网| 国产精品入口麻豆九色| 99久久99久久精品国产片果冻| 亚洲精品视频在线观看网站| 一本大道av一区二区在线播放| 亚洲一本大道在线| 日韩一级在线观看| 麻豆91免费观看| 久久精品免视看| caoporn国产精品| 一级女性全黄久久生活片免费| 欧洲人成人精品| 日韩高清不卡一区| 久久精品网站免费观看| 成人久久久精品乱码一区二区三区| 国产精品久久久久精k8| 欧美视频日韩视频在线观看| 麻豆一区二区三区| 欧美国产视频在线| 欧美怡红院视频| 九色综合狠狠综合久久| 欧美高清在线一区二区| 91成人在线精品| 蜜桃91丨九色丨蝌蚪91桃色| 久久久久亚洲综合| 91成人在线精品| 免费视频一区二区| 一区二区中文字幕在线| 欧美精品三级在线观看| 国产成人免费在线观看不卡| 一区二区三区在线免费播放| 91精品国产一区二区三区蜜臀| 国产一区二区三区蝌蚪| 艳妇臀荡乳欲伦亚洲一区| 日韩欧美一区电影| 91免费视频网址| 日本成人中文字幕在线视频| 国产欧美精品一区二区三区四区 | 日韩女同互慰一区二区| 成人av动漫在线| 日韩vs国产vs欧美| 中文字幕日本不卡| 日韩一区二区在线播放| 99久久免费精品高清特色大片| 日韩电影在线一区二区| 国产精品视频麻豆| 制服丝袜日韩国产| 97se亚洲国产综合在线| 美女视频免费一区| 一区二区三区四区亚洲| 久久久久久久国产精品影院| 欧美日韩国产综合一区二区| 成人免费毛片片v| 老司机精品视频在线| 亚洲国产精品尤物yw在线观看| 国产色91在线| 欧美一级片在线观看| 91麻豆国产福利在线观看| 国产呦精品一区二区三区网站| 亚洲精品国产视频| 日本一区二区三区高清不卡 | 亚洲精品欧美二区三区中文字幕| 精品欧美一区二区三区精品久久| 欧美亚洲免费在线一区| 成人黄页毛片网站| 国产麻豆精品在线| 免费高清不卡av| 丝袜亚洲另类丝袜在线| 一区二区三区在线观看动漫| 国产精品美女久久福利网站| 日韩欧美在线1卡| 在线观看91av| 欧美色涩在线第一页| 91日韩在线专区| 99精品欧美一区二区三区综合在线| 黄页网站大全一区二区| 日本视频中文字幕一区二区三区 | 色婷婷综合久色| 成人午夜私人影院| 国产成人超碰人人澡人人澡| 激情小说亚洲一区| 久久99久久久久久久久久久| 日韩av不卡一区二区| 午夜电影久久久| 亚洲.国产.中文慕字在线| 亚洲国产成人av| 午夜成人免费视频| 日韩av中文在线观看| 亚洲va欧美va人人爽| 午夜欧美大尺度福利影院在线看|