⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mx27_prp.h

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 H
📖 第 1 页 / 共 2 页
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//------------------------------------------------------------------------------
//
// Copyright (C) 2004,  MOTOROLA, INC. All Rights Reserved
// THIS SOURCE  CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
// BE USED  OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
// MOTOROLA, INC.
//
//------------------------------------------------------------------------------
//
// Copyright (C) 2004-2006, Freescale Semiconductor, Inc. All Rights Reserved.
// THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
// AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
//
//------------------------------------------------------------------------------
//
// File: mx27_prp.h
//
// Definitions for Pre-Processor of eMMA module
//
//------------------------------------------------------------------------------
#ifndef __MX27_PRP_H__
#define __MX27_PRP_H__

#ifdef __cplusplus
extern "C" {
#endif


//------------------------------------------------------------------------------
// GENERAL MODULE CONSTANTS
//------------------------------------------------------------------------------
#define PRP_REG_OFFSET                  0x400
#define CSP_BASE_REG_PA_EMMA_PRP        (CSP_BASE_REG_PA_EMMA + PRP_REG_OFFSET)

//------------------------------------------------------------------------------
// REGISTER LAYOUT
//------------------------------------------------------------------------------
//
// Pre-Processing resize registers
typedef struct {
    REG32 PRP_RZ_COEF1;
    REG32 PRP_RZ_COEF2;
    REG32 PRP_RZ_VALID;
} CSP_PRP_RESIZE_REGS, *PCSP_PRP_RESIZE_REGS;

// Pre-Processing registers
typedef struct {
    REG32 PRP_CNTL;                             // 0x00
    REG32 PRP_INTRCNTL;                         // 0x04
    REG32 PRP_INTRSTATUS;                       // 0x08
    REG32 PRP_SOURCE_Y_PTR;                     // 0x0C
    REG32 PRP_SOURCE_CB_PTR;                    // 0x10
    REG32 PRP_SOURCE_CR_PTR;                    // 0x14
    REG32 PRP_DEST_RGB1_PTR;                    // 0x18
    REG32 PRP_DEST_RGB2_PTR;                    // 0x1C
    REG32 PRP_DEST_Y_PTR;                       // 0x20
    REG32 PRP_DEST_CB_PTR;                      // 0x24
    REG32 PRP_DEST_CR_PTR;                      // 0x28
    REG32 PRP_SOURCE_FRAME_SIZE;                // 0x2C
    REG32 PRP_CH1_LINE_STRIDE;                  // 0x30
    REG32 PRP_SOURCE_PIXEL_FORMAT_CNTL;         // 0x34
    REG32 PRP_CH1_PIXEL_FORMAT_CNTL;            // 0x38
    REG32 PRP_CH1_OUT_IMAGE_SIZE;               // 0x3C
    REG32 PRP_CH2_OUT_IMAGE_SIZE;               // 0x40
    REG32 PRP_SOURCE_LINE_STRIDE;               // 0x44
    REG32 PRP_CSC_COEF_012;                     // 0x48
    REG32 PRP_CSC_COEF_345;                     // 0x4C
    REG32 PRP_CSC_COEF_678;                     // 0x50
    /*-------------------------------------------
       PrP has 4 groups of resize registers

       Group 0 ([prpResize_Ch1 + prpResize_Horizontal])
       REG32 CH1_RZ_HORI_COEF1;                 // 0x54
       REG32 CH1_RZ_HORI_COEF2;                 // 0x58
       REG32 CH1_RZ_HORI_VALID;                 // 0x5C 

       Group 1 ([prpResize_Ch1 + prpResize_Vertical])
       REG32 CH1_RZ_VERT_COEF1;                 // 0x60
       REG32 CH1_RZ_VERT_COEF2;                 // 0x64
       REG32 CH1_RZ_VERT_VALID;                 // 0x68 

       Group 2 ([prpResize_Ch2 + prpResize_Horizontal])
       REG32 CH2_RZ_HORI_COEF1;                 // 0x6C
       REG32 CH2_RZ_HORI_COEF2;                 // 0x70
       REG32 CH2_RZ_HORI_VALID;                 // 0x74

       Group 3 ([prpResize_Ch2 + prpResize_Vertical])
       REG32 CH2_RZ_VERT_COEF1;                 // 0x78
       REG32 CH2_RZ_VERT_COEF2;                 // 0x7C
       REG32 CH2_RZ_VERT_VALID;                 // 0x80 
       
       Therefore we can reference the register as
       PRP_RESIZE[prpChannel*2 + dimension]
    *-------------------------------------------*/
    CSP_PRP_RESIZE_REGS PRP_RESIZE[4];               
} CSP_PRP_REGS, *PCSP_PRP_REGS;


//------------------------------------------------------------------------------
// REGISTER OFFSETS
//------------------------------------------------------------------------------
#define PRP_CNTL_OFFSET                         0x0000
#define PRP_INTRCNTL_OFFSET                     0x0004
#define PRP_INTRSTATUS_OFFSET                   0x0008
#define PRP_SOURCE_Y_PTR_OFFSET                 0x000C
#define PRP_SOURCE_CB_PTR_OFFSET                0x0010
#define PRP_SOURCE_CR_PTR_OFFSET                0x0014
#define PRP_DEST_RGB1_PTR_OFFSET                0x0018
#define PRP_DEST_RGB2_PTR_OFFSET                0x001C
#define PRP_DEST_Y_PTR_OFFSET                   0x0020
#define PRP_DEST_CB_PTR_OFFSET                  0x0024
#define PRP_DEST_CR_PTR_OFFSET                  0x0028
#define PRP_SOURCE_FRAME_SIZE_OFFSET            0x002C
#define PRP_CH1_LINE_STRIDE_OFFSET              0x0030
#define PRP_SOURCE_PIXEL_FORMAT_CNTL_OFFSET     0x0034
#define PRP_CH1_PIXEL_FORMAT_CNTL_OFFSET        0x0038
#define PRP_CH1_OUT_IMAGE_SIZE_OFFSET           0x003C
#define PRP_CH2_OUT_IMAGE_SIZE_OFFSET           0x0040
#define PRP_SOURCE_LINE_STRIDE_OFFSET           0x0044
#define PRP_CSC_COEF_012_OFFSET                 0x0048
#define PRP_CSC_COEF_345_OFFSET                 0x004C
#define PRP_CSC_COEF_678_OFFSET                 0x0050


//------------------------------------------------------------------------------
// REGISTER BIT FIELD POSITIONS (LEFT SHIFT)
//------------------------------------------------------------------------------
//
// PRP_CNTL
#define PRP_CNTL_CH1EN_LSH                                  0
#define PRP_CNTL_CH2EN_LSH                                  1
#define PRP_CNTL_CSIEN_LSH                                  2
#define PRP_CNTL_DATA_IN_MODE_LSH                           3
#define PRP_CNTL_CH1_OUT_MODE_LSH                           5
#define PRP_CNTL_CH2_OUT_MODE_LSH                           7
#define PRP_CNTL_CH1_LEN_LSH                                9
#define PRP_CNTL_CH2_LEN_LSH                                10
#define PRP_CNTL_SKIP_FRAME_LSH                             11
#define PRP_CNTL_SWRST_LSH                                  12
#define PRP_CNTL_CLKEN_LSH                                  13
#define PRP_CNTL_WEN_LSH                                    14
#define PRP_CNTL_CH1BYP_LSH                                 15
#define PRP_CNTL_IN_TSKIP_LSH                               16
#define PRP_CNTL_CH1_TSKIP_LSH                              19
#define PRP_CNTL_CH2_TSKIP_LSH                              22
#define PRP_CNTL_INPUT_FIFO_LEVEL_LSH                       25
#define PRP_CNTL_RZ_FIFO_LEVEL_LSH                          27
#define PRP_CNTL_CH2B1EN_LSH                                29
#define PRP_CNTL_CH2B2EN_LSH                                30
#define PRP_CNTL_CH2FEN_LSH                                 31

// PRP_INTRCNTL
#define PRP_INTRCNTL_RDERRIE_LSH                            0
#define PRP_INTRCNTL_CH1WERRIE_LSH                          1
#define PRP_INTRCNTL_CH2WERRIE_LSH                          2
#define PRP_INTRCNTL_CH1FCIE_LSH                            3
#define PRP_INTRCNTL_CH2FCIE_LSH                            5
#define PRP_INTRCNTL_LBOVFIE_LSH                            7
#define PRP_INTRCNTL_CH2OVFIE_LSH                           8

// PRP_INTRSTATUS
#define PRP_INTRSTATUS_READERR_LSH                          0
#define PRP_INTRSTATUS_CH1WRERR_LSH                         1
#define PRP_INTRSTATUS_CH2WRERR_LSH                         2
#define PRP_INTRSTATUS_CH2B2CI_LSH                          3
#define PRP_INTRSTATUS_CH2B1CI_LSH                          4
#define PRP_INTRSTATUS_CH1B2CI_LSH                          5
#define PRP_INTRSTATUS_CH1B1CI_LSH                          6
#define PRP_INTRSTATUS_LBOVF_LSH                            7
#define PRP_INTRSTATUS_CH2OVF_LSH                           8

// PRP_SOURCE_Y_PTR
#define PRP_SOURCE_Y_PTR_PRP_SOURCE_Y_PTR_LSH               0

// PRP_SOURCE_CB_PTR
#define PRP_SOURCE_CB_PTR_PRP_SOURCE_CB_PTR_LSH             0

// PRP_SOURCE_CR_PTR
#define PRP_SOURCE_CR_PTR_PRP_SOURCE_CR_PTR_LSH             0

// PRP_DEST_RGB1_PTR
#define PRP_DEST_RGB1_PTR_PRP_DEST_RGB1_PTR_LSH             0

// PRP_DEST_RGB2_PTR
#define PRP_DEST_RGB2_PTR_PRP_DEST_RGB2_PTR_LSH             0

// PRP_DEST_Y_PTR
#define PRP_DEST_Y_PTR_PRP_Y_DEST_LSH                       0

// PRP_DEST_CB_PTR
#define PRP_DEST_CB_PTR_PRP_CB_DEST_LSH                     0

// PRP_DEST_CR_PTR
#define PRP_DEST_CR_PTR_PRP_CR_DEST_LSH                     0

// PRP_SOURCE_FRAME_SIZE
#define PRP_SOURCE_FRAME_SIZE_PICTURE_Y_SIZE_LSH            0
#define PRP_SOURCE_FRAME_SIZE_PICTURE_X_SIZE_LSH            16

// PRP_CH1_LINE_STRIDE
#define PRP_CH1_LINE_STRIDE_CH1_OUT_LINE_STRIDE_LSH         0

// PRP_SOURCE_PIXEL_FORMAT_CNTL
#define PRP_SOURCE_PIXEL_FORMAT_CNTL_BLUE_WIDTH_LSH         0
#define PRP_SOURCE_PIXEL_FORMAT_CNTL_GREEN_WIDTH_LSH        4
#define PRP_SOURCE_PIXEL_FORMAT_CNTL_RED_WIDTH_LSH          8
#define PRP_SOURCE_PIXEL_FORMAT_CNTL_BLUE_V_CR_OFFSET_LSH   16
#define PRP_SOURCE_PIXEL_FORMAT_CNTL_GREEN_U_CB_OFFSET_LSH  21
#define PRP_SOURCE_PIXEL_FORMAT_CNTL_RED_Y_OFFSET_LSH       26

// PRP_CH1_PIXEL_FORMAT_CNTL
#define PRP_CH1_PIXEL_FORMAT_CNTL_BLUE_WIDTH_LSH            0
#define PRP_CH1_PIXEL_FORMAT_CNTL_GREEN_WIDTH_LSH           4
#define PRP_CH1_PIXEL_FORMAT_CNTL_RED_WIDTH_LSH             8
#define PRP_CH1_PIXEL_FORMAT_CNTL_BLUE_OFFSET_LSH           16
#define PRP_CH1_PIXEL_FORMAT_CNTL_GREEN_OFFSET_LSH          21
#define PRP_CH1_PIXEL_FORMAT_CNTL_RED_OFFSET_LSH            26

// PRP_CH1_OUT_IMAGE_SIZE
#define PRP_CH1_OUT_IMAGE_SIZE_CH1_OUT_IMAGE_HEIGHT_LSH     0
#define PRP_CH1_OUT_IMAGE_SIZE_CH1_OUT_IMAGE_WIDTH_LSH      16

// PRP_CH2_OUT_IMAGE_SIZE
#define PRP_CH2_OUT_IMAGE_SIZE_CH2_OUT_IMAGE_HEIGHT_LSH     0
#define PRP_CH2_OUT_IMAGE_SIZE_CH2_OUT_IMAGE_WIDTH_LSH      16

// PRP_SOURCE_LINE_STRIDE
#define PRP_SOURCE_LINE_STRIDE_SOURCE_LINE_STRIDE_LSH       0
#define PRP_SOURCE_LINE_STRIDE_CSI_LINE_SKIP_LSH            16

// PRP_CSC_COEF_012
#define PRP_CSC_COEF_012_C2_LSH                             0
#define PRP_CSC_COEF_012_C1_LSH                             11
#define PRP_CSC_COEF_012_C0_LSH                             21

// PRP_CSC_COEF_345
#define PRP_CSC_COEF_345_C5_LSH                             0
#define PRP_CSC_COEF_345_C4_LSH                             11
#define PRP_CSC_COEF_345_C3_LSH                             21

// PRP_CSC_COEF_678
#define PRP_CSC_COEF_678_C8_LSH                             0
#define PRP_CSC_COEF_678_C7_LSH                             11
#define PRP_CSC_COEF_678_C6_LSH                             21
#define PRP_CSC_COEF_678_X0_LSH                             31

// PRP_XXX_RZ_XXXX_VALID
#define PRP_RZ_VALID_OV_LSH                                 0
#define PRP_RZ_VALID_TBL_LEN_LSH                            24
#define PRP_RZ_VALID_AVG_BIL_LSH                            31

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -