This header file contains identifiers and register-level driver functions (or macros), range macros, structure typedefs that can be used to access the Xilinx Color Correction Matrix (CCM) core instance.
The Color Correction Matrix core offers a 3x3 matrix multiplication for a variety of color correction applications. CCM core provides following features:
Initialization & Configuration
The device driver enables higher layer software (e.g., an application) to communicate to the CCM core.
XCcm_CfgInitialize() API is used to initialize the CCM core. The user needs to first call the XCcm_LookupConfig() API which returns the Configuration structure pointer which is passed as a parameter to the XCcm_CfgInitialize() API.
Interrupts
The driver provides an interrupt handler XCcm_IntrHandler for handling the interrupt from the CCM core. The users of this driver have to register this handler with the interrupt system and provide the callback functions by using XCcm_SetCallBack API.
Virtual Memory
This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.
Threads
This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.
Asserts
Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.
Building the driver
The XCcm driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.
MODIFICATION HISTORY:
Ver Who Date Changes ----- ------ -------- --------------------------------------------------- 2.00a jo 05/1/10 Updated for CCM V2.0. 3.00a ren 09/11/11 Updated for CCM V3.0. 4.00a jj 12/18/12 Converted from xio.h to xil_io.h,translating basic types,MB cache functions, exceptions and assertions to xil_io format. 5.0 adk 19/12/13 Updated as per the New Tcl API's. 6.0 adk 03/06/14 Changed file name ccm.h to xccm.h. Moved register offsets and bit definitions to xccm_hw.h file. Defined the following handler types as enum values: XCCM_HANDLER_PROCSTART ,XCCM_HANDLER_FRAMEDONE and XCCM_HANDLER_ERROR.
Added the following range macros: XCCM_VSIZE_FIRST, XCCM_VSIZE_LAST XCCM_HSIZE_FIRST, XCCM_HSIZE_LAST XCCM_COEF_FIRST,XCCM_COEF_LAST XCCM_OFFSET_FIRST,XCCM_OFFSET_LAST XCCM_CLAMP_FIRST,XCCM_CLAMP_LAST XCCM_CLIP_FIRST,XCCM_CLIP_LAST.
Added the following structure type definitions: XCcm_Config and XCcm.
Removed the following functional macros: CCM_Enable, CCM_Disable, CCM_RegUpdateEnable CCM_RegUpdateDisable, CCM_Reset, CCM_AutoSyncReset CCM_ClearReset.
Added the following macros: XCcm_Enable, XCcm_Disable,XCcm_RegUpdateEnable, XCcm_SyncReset, XCcm_Reset, XCcm_IntrGetPending, XCcm_IntrEnable, XCcm_IntrDisable, XCcm_StatusGetPending, XCcm_IntrClear, XCcm_Start, XCcm_Stop.
Modification history from xccm_hw.h First release. Added the register offsets and bit masks for the registers. Added backward compatibility macros.
Modifications in the file xccm.c are: Changed filename ccm to xccm.c. Implemented the following functions: XCcm_CfgInitialize, XCcm_Setup, XCcm_GetVersion, XCcm_EnableDbgByPass, XCcm_IsDbgByPassEnabled, XCcm_DisableDbgByPass, XCcm_EnableDbgTestPattern, XCcm_IsDbgTestPatternEnabled, XCcm_DisableDbgTestPattern, XCcm_GetDbgFrameCount, XCcm_GetDbgLineCount, XCcm_GetDbgPixelCount, XCcm_SetActiveSize, XCcm_GetActiveSize, XCcm_SetCoefMatrix, XCcm_GetCoefMatrix, XCcm_SetRgbOffset, XCcm_GetRgbOffset, XCcm_SetClip, XCcm_GetClip, XCcm_SetClamp XCcm_GetClamp XCcm_FloatToFixedConv, and XCcm_FixedToFloatConv.
Modifications in the file xccm_selftest.c are: Implemented XCcm_SelfTest function.
Modifications in the file xccm_sinit.c are: Implemented XCcm_LookupConfig function.
Modifications in the file xccm_intr.c are: Implemented the following functions: XCcm_IntrHandler XCcm_SetCallBack
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.