📄 led_dmled.h
字号:
/*==============================================================================
// TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
//
// Property of Texas Instruments. For Unrestricted Internal Use Only
// Unauthorized reproduction and/or distribution is strictly prohibited.
// This product is protected under copyright law and trade secret law
// as an unpublished work.
// Created 2004, (C) Copyright 2004 Texas Instruments. All rights reserved.
//
// Created : 31st of August, 2004, 10.20 am
// Filename : led_dmled.h
// Description : Header file for DMLED ARM926EJS assembler programs
// Project : Neptune, OMAP171x
// Author : Dayo Adeyeye
//
// FUNCTIONS PROVIDED :
//
// Available Functions:
// Common
// RES_SetDMLED - Sets a value in results table
// ARM11 only
// RES_SetLCTnDMLED - Sets the location in memory
* RES_Init_SimRes - Initialize simulated result space with BABE
* RES_ResComp - Compare the expected and simulated result.
// RES_EndDMLED - End spy simulation by writing 'illegal' value.
// RES_GetFinalStatus - Gets final error status
//
============================================================================= */
#ifndef _LED_DMLED__H
#define _LED_DMLED__H
/* ============================================================================
* PROJECT SPECIFIC INCLUDE FILES
* ========================================================================== */
#include "global_types.h"
/* ============================================================================
* EXPORTED DEFINITIONS
* ========================================================================== */
#define CTEDM_Space_RAM 0x20000010 // 4(TLB)+48Bytes(CTE)+256Bytes(Spy) in TestSRAM
// CTEDM Mapping, 24 x 16bits = 48bytes
#define CTEDM_ARM9_SRC_SIZE_LSB REG16(CTEDM_Space_RAM+0)
#define CTEDM_ARM9_SRC_SIZE_MSB REG16(CTEDM_Space_RAM+2)
#define CTEDM_LEAD3_SRC_SIZE_LSB REG16(CTEDM_Space_RAM+4)
#define CTEDM_LEAD3_SRC_SIZE_MSB REG16(CTEDM_Space_RAM+6)
#define CTEDM_DPLL1_BYPASS_VALUE REG16(CTEDM_Space_RAM+8)
#define CTEDM_ARM_CLK_CONTROL REG16(CTEDM_Space_RAM+10)
#define CTEDM_SYNC_BYPASS_MODE REG16(CTEDM_Space_RAM+12)
#define CTEDM_CLK_STDY_BYPASS REG16(CTEDM_Space_RAM+14)
#define CTEDM_SYNC_INTSRC_TESTCASE REG16(CTEDM_Space_RAM+16)
#define CTEDM_WAKE_INTSRC_TESTCASE REG16(CTEDM_Space_RAM+18)
#define CTEDM_GPIO_ADDR_LSB REG16(CTEDM_Space_RAM+20)
#define CTEDM_GPIO_ADDR_MSB REG16(CTEDM_Space_RAM+22)
#define CTEDM_GPIO_SYNC_PIN REG16(CTEDM_Space_RAM+24)
#define CTEDM_GPIO_EXEC_PIN REG16(CTEDM_Space_RAM+26)
#define CTEDM_GPIO_STAT_PIN REG16(CTEDM_Space_RAM+28)
#define CTEDM_GPIO2_ADDR_LSB REG16(CTEDM_Space_RAM+30)
#define CTEDM_GPIO2_ADDR_MSB REG16(CTEDM_Space_RAM+32)
#define CTEDM_ULPD_TIMEOUT_VALUE REG16(CTEDM_Space_RAM+34)
#define CTEDM_EXEC_TIMEOUT_VALUE REG16(CTEDM_Space_RAM+36)
#define CTEDM_NO_REPEAT REG16(CTEDM_Space_RAM+38)
#define CTEDM_NORESCOMP REG16(CTEDM_Space_RAM+40)
#define CTEDM_22 REG16(CTEDM_Space_RAM+44)
#define CTEDM_23 REG16(CTEDM_Space_RAM+48)
#define CTEDM_24 REG16(CTEDM_Space_RAM+50)
/* ----------------------------------------------------------------------------
* Definition: RES_*_BASE
* DESCRIPTION: Base Value (Upper Byte) for library components
* -------------------------------------------------------------------------- */
#define START_ARRAY_DATA 0xF001
#define END_ARRAY_DATA 0xF002
#define RESULT_SEPARATOR 0xAAAA
#define RES_TST_FAILED 0xDEAD
#define RES_TST_PASSED 0xACED
#define RET_OK 0x0
#define RET_FAIL 0x1
/* ----------------------------------------------------------------------------
* Definition: RES_MIN_*_VAL,RES_MAX_*_VAL
* DESCRIPTION: The ranges of PASS and FAIL values of lower byte that can written
* to results table spy
* -------------------------------------------------------------------------- */
/* range of good / OK result values */
#define RES_MIN_OK_VAL 0x0000
#define RES_MAX_OK_VAL 0x000F
/* range of bad / fail result values */
#define RES_MIN_BAD_VAL 0x0010
#define RES_MAX_BAD_VAL 0x00FE
/* ----------------------------------------------------------------------------
* Definition: RES_*_*
* DESCRIPTION: List of Good/Pass results values
* -----------------------------------------------------------------------------
*/
/* list of good / OK result values */
#define RES_TEST_PASSED 0x0000 + RES_MIN_OK_VAL
#define RES_SPY_INIT_OK 0x0001 + RES_MIN_OK_VAL
#define RES_INIT_OK 0x0002 + RES_MIN_OK_VAL
#define RES_FINISHED_OK 0x0003 + RES_MIN_OK_VAL
// #define RES_OK 0x0004 + RES_MIN_OK_VAL
#define RES_SEPERATOR 0x0005 + RES_MIN_OK_VAL
#define RES_RESET_VALUE_SEPARATOR 0x0006 + RES_MIN_OK_VAL
#define RES_MODULE_SEPARATOR 0x0007 + RES_MIN_OK_VAL
#define RES_GLOBAL_TEST_SEPARATOR 0x0008 + RES_MIN_OK_VAL
#define RES_START_ARRAY 0x000E + RES_MIN_OK_VAL
#define RES_NOP_VALUE 0x000F + RES_MIN_OK_VAL
/* ----------------------------------------------------------------------------
* Definition: RES_*_*
* DESCRIPTION: List of Bad/Fail results values
*
* -----------------------------------------------------------------------------
*/
/* list of bad / fail result values */
#define RES_TEST_FAILED 0x0000 + RES_MIN_BAD_VAL
#define RES_NOT_FINISHED 0x0001 + RES_MIN_BAD_VAL
#define RES_FINISHED_BAD 0x0002 + RES_MIN_BAD_VAL
#define RES_INIT_BAD 0x0003 + RES_MIN_BAD_VAL
#define RES_DEINIT_BAD 0x0004 + RES_MIN_BAD_VAL
// #define RES_BAD 0x0005 + RES_MIN_BAD_VAL
#define RES_TIMEOUT_ERR 0x0006 + RES_MIN_BAD_VAL
#define RES_BUSY 0x0007 + RES_MIN_BAD_VAL
#define RES_LIB_FAIL 0x0010 + RES_MIN_BAD_VAL
#define RES_READ_FAIL 0x0011 + RES_MIN_BAD_VAL
#define RES_WRITE_FAIL 0x0012 + RES_MIN_BAD_VAL
#define RES_RESET_FAIL 0x0013 + RES_MIN_BAD_VAL
#define RES_CLEAR_FAIL 0x0014 + RES_MIN_BAD_VAL
#define RES_SET_FAIL 0x0015 + RES_MIN_BAD_VAL
#define RES_GET_FAIL 0x0016 + RES_MIN_BAD_VAL
#define RES_ENABLE_FAIL 0x0017 + RES_MIN_BAD_VAL
#define RES_DISABLE_FAIL 0x0018 + RES_MIN_BAD_VAL
#define RES_OPEN_FAIL 0x0019 + RES_MIN_BAD_VAL
#define RES_CLOSE_FAIL 0x001A + RES_MIN_BAD_VAL
#define RES_START_FAIL 0x001B + RES_MIN_BAD_VAL
#define RES_STOP_FAIL 0x001C + RES_MIN_BAD_VAL
#define RES_INVALID_INPUT_PARAM 0x0020 + RES_MIN_BAD_VAL
#define RES_DATA_MISMATCH 0x0021 + RES_MIN_BAD_VAL
#define RES_INPUT_CHECK_FAIL 0x0022 + RES_MIN_BAD_VAL
#define RES_TABLE_FULL_FAIL 0x0023 + RES_MIN_BAD_VAL
#define RES_EXCPT_UNDEFINED 0x0030 + RES_MIN_BAD_VAL
#define RES_EXCPT_PREFETCH_ABORT 0x0031 + RES_MIN_BAD_VAL
#define RES_EXCPT_DATA_ABORT 0x0032 + RES_MIN_BAD_VAL
/* ============================================================================
* EXPORTED FUNCTIONS/MACROS
* ========================================================================== */
/* ----------------------------------------------------------------------------
* FUNCTION : DMLED_Init
* INPUTS : None
* RETURNS : None
* PURPOSE : Initialize
* METHOD :
* -------------------------------------------------------------------------- */
extern UWORD16 DMLED_Init(void);
/* ----------------------------------------------------------------------------
* FUNCTION : DMLED_DeInit
* INPUTS : None
* RETURNS : None
* PURPOSE : De-Initialize
* METHOD :
* -------------------------------------------------------------------------- */
extern UWORD16 DMLED_DeInit(void);
/* ============================================================================
* EXPORTED FUNCTIONS/MACROS
* ========================================================================== */
/* ----------------------------------------------------------------------------
* FUNCTION : RES_SetDMLED
* INPUTS:
* Identifier : status
* Type : const UWORD16
* Description : status result to be written
* RETURNS:
*
* Type : UWORD16
* Description : RET_OK No errors occured
* RET_FULL Not enough space to write result
* PURPOSE: : Set status to next available space in results table
* Note that the upper or lower byte should not have a value
* of OxFF as this will end simulation. If a user requires to
* store an unknown value in the results array then the
* function RES_SetVar() should be used.
* METHOD: : Check if enough space
* Set status in table at specified index
* -------------------------------------------------------------------------- */
extern UWORD16 RES_SetDMLED( const UWORD16 status);
/* ----------------------------------------------------------------------------
* FUNCTION : RES_ResComp
* INPUTS :
* Identifier : numArray
* Type : const UWORD16
* Description : number of elements in expected result array
* RETURNS :
* Type : UWORD16
* Description : RET_OK, Number errors occured
* PURPOSE: : Compares the simulated spy result with the expected
* : Expected spy result.
* ------------------------------------------------------------------------- */
extern UWORD16 RES_ResComp (const UWORD16 numArray);
/* ----------------------------------------------------------------------------
* FUNCTION : RES_Init_SimRes
* INPUTS : None
* RETURNS : None
* PURPOSE : Initialize internal Simulated Result SPY Memory Space Reset
* METHOD : Pointers, set global result to No Error and clear all spy
* halfwords to 0xBABE.
* -------------------------------------------------------------------------- */
extern UWORD16 RES_Init_SimRes(void);
/* ----------------------------------------------------------------------------
* FUNCTION : RES_SetLCTnDMLED
* INPUTS:
* Identifier : startAddress
* Type : const UWORD32
* Description : startAddress is Start Address of Result Area
* RETURNS:
* Type : UWORD16
* Description : RET_OK No errors occured
* PURPOSE: : Set the location address of the result area values
* METHOD: : Check input parameters
* Set start address of result area
* NOTE: : This function should in general not be called in test cases
* -------------------------------------------------------------------------- */
extern UWORD16 RES_SetLCTnDMLED(const UWORD32 startAddress);
/* ----------------------------------------------------------------------------
* FUNCTION : RES_GetFinalStatus
* OUTPUTS :
* Identifier : pFinalRes
* Type : UWORD16 *const
* Description : If error returns final error value
* RETURNS:
* Type : UWORD16
* Description : RET_OK No errors occured
* RET_FAIL If e bad result value has been written
* PURPOSE: : Checks to see if error value written to table.
* And PASS/FAIL written to first value in table
* METHOD: : Parses internal results array and checks to see if any of
* the results codes written indicate that the test failed.
* And PASS/FAIL written to first value in table.
* NOTE: : This function should in general not be called in test cases
* --------------------------------------------------------------------------- */
extern UWORD16 RES_GetFinalStatus(UWORD16 *const pFinalRes);
/* ----------------------------------------------------------------------------
* FUNCTION : RES_EndDMLED
* RETURNS:
* Type : UWORD16
* Description : RET_OK No errors occured
* PURPOSE: : This Function is called to indicate that a test case is finished.
* METHOD: : Write END test indicator to end of array
* NOTE: : This function should in general not be called in test cases
* --------------------------------------------------------------------------- */
extern UWORD16 RES_EndDMLED(void);
/* ----------------------------------------------------------------------------
* --------------------------------------------------------------------------- */
extern void DMLED_CLKCFG(void);
extern void DMLED_A9FLUSH(void);
extern void DMLED_Results(UWORD32 gpio2_base_addr,
UWORD32 gpio_execpin,
UWORD32 gpio_syncpin,
UWORD32 gpio_statpin,
UWORD32 gpio_base_addr);
#endif /* _LED_DMLED__H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -