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

📄 test.c

📁 Atheros AP Test with Agilent N4010A source code
💻 C
📖 第 1 页 / 共 5 页
字号:
/* test.c - contians an example test harness using the manufacturing library *//* Copyright (c) 2000 Atheros Communications, Inc., All Rights Reserved */#ident  "ACI $Id: //depot/sw/branches/ART_V53_dragon/sw/src/dk/mdk/devmld/test.c#21 $, $Header: //depot/sw/branches/ART_V53_dragon/sw/src/dk/mdk/devmld/test.c#21 $"#ifdef __ATH_DJGPPDOS__#include <unistd.h>#ifndef EILSEQ	#define EILSEQ EIO#endif    // EILSEQ #define __int64    long long #define HANDLE long typedef unsigned long DWORD; #define Sleep    delay #include <bios.h> #include <dir.h>#endif    // #ifdef __ATH_DJGPPDOS__#ifndef REGULATORY_REL#ifdef _WINDOWS #include <windows.h>#endif#include "common_hw.h"#ifdef JUNGO#include "mld.h"#endif#ifdef LINUX#include "linux_ansi.h"#endif#include <stdio.h>#include <time.h>#include <stdlib.h>#ifndef LINUX#include <conio.h>#include <io.h>#endif#include <string.h>#include <ctype.h>#include "wlantype.h"#include "wlanproto.h"#include "athreg.h"#include "manlib.h"     /* The Manufacturing Library */#include "manlibInst.h" /* The Manufacturing Library Instrument Library extension */#include "art_if.h"#include "pci.h"        /* PCI Config Space definitions */#include "art_ani.h"#include "test.h"#include "cmdTest.h"#include "parse.h"#include "dynamic_optimizations.h"#include "maui_cal.h"#include "ar5523defs.h"#include "ar2413reg.h"#include "rate_constants.h"#include "stats_routines.h"#ifndef __ATH_DJGPPDOS__#include "MLIBif.h"     /* Manufacturing Library low level driver support functions */#include "dk_cmds.h"#else#include "mlibif_dos.h"#endif#ifdef LINUX#include <unistd.h>#endif#define EEPROM_BLOCK_SIZE 256#define OFDM_11G_IDX        20#define CCK_11G_IDX            5#define OFDM_CCK_DEF_IDX    0#include "ear_externs.h"//** the following added by ccshiang#define __ART_53B53__#define __ART_VERSION__		0x5311#define __module_test__#include "..\..\..\..\AgN4010WSODrv\AgN4010WSOAPI.h"#include "..\..\..\..\ART.Common\AgiGlobalDefs.h"#include "..\..\..\..\ART.Common\load_AgN4010_ini_vals.h"unsigned char sysDESC_ANT_A = DESC_ANT_A;unsigned char sysDESC_ANT_B = DESC_ANT_B;#define __version__			"A.01.67"#define __released_date__	"2006/04/16"//** the above added by ccshiang A_UINT32 sent_bytes=0, received_bytes=0;extern A_UINT16 curr_pwr_index_offset;extern GAIN_OPTIMIZATION_LADDER gainLadder;extern GAIN_OPTIMIZATION_LADDER gainLadder_derby2;extern GAIN_OPTIMIZATION_LADDER gainLadder_derby1;GAIN_OPTIMIZATION_LADDER *pCurrGainLadder;extern A_BOOL printLocalInfo;// extern declarations for dut-golden syncextern ART_SOCK_INFO *artSockInfo;extern ART_SOCK_INFO *pArtPrimarySock;extern ART_SOCK_INFO *pArtSecondarySock;extern A_UINT32 **EEPROM_DATA_BUFFER;/* === Functional Declarations === */static A_BOOL parseCmdLine(A_INT32 argc,A_CHAR *argv[]);static void contMenu(A_UINT32 devNum);static void contRxMenu(A_UINT32 devNum);static void linkMenu(A_UINT32 devNum);static void utilityMenu(A_UINT32 devNum);static void changeDomain(A_UINT32 devNum);static A_BOOL parseConfig(void);static A_BOOL    processCommonOptions( A_UINT32 devNum, A_INT16 inputKey);static A_BOOL setRxGain(A_UINT32 devNum);static A_BOOL setRxGain_11bg(A_UINT32 devNum);static void setRegistersFromConfig(A_UINT32 devNum);static void updateConfigFromRegValues(A_UINT32 devNum);static A_BOOL initTest(A_UINT32 devNum);static A_BOOL setupMode(void);static void printDeviceInfo(A_UINT32 devNum);A_BOOL EEPROM_Routine(A_UINT32 devNum);static void eraseBlock(A_UINT32 devNum);void Display_EEPROM_menu(void);static A_UINT16 promptForCardType(A_UINT16 *pSubSystemID);static A_BOOL parseCmdChannelList(A_CHAR *listString);static A_BOOL updateStructFromLabel(void);#ifndef __ATH_DJGPPDOS__void progBlankEEPROM(A_UINT32 devNum);A_BOOL setEepFile(A_UINT32 devNum);A_BOOL addToCfgTable(A_UINT16 subSystemID,A_CHAR *pFilename, A_CHAR *pEarFilename);#endif //__ATH_DJGPPDOS__void printConfigSettings(A_UINT32 devNum);A_BOOL supportMultiModes(SUPPORTED_MODES *pModes);void throughputMenu(A_UINT32 devNum);void compute_EEPROM_Checksum(A_UINT32 devNum,A_UINT32 location);void getSupportedModes (A_UINT32 devNum, SUPPORTED_MODES *pModes);A_UINT32 getNextMode (SUPPORTED_MODES *pModes);A_UINT32 getFirstMode (SUPPORTED_MODES *pModes);extern void topCalibrationEntry(A_UINT32 *pdevNum_inst1, A_UINT32 *pdevNum_inst2) ;extern void displayDomain(A_UINT32 domain);extern void writeAr6000Label(A_UINT32 devNum);extern YIELD_LOG_STRUCT yldStruct;#ifdef __ATH_DJGPPDOS__#define _makepath(path,drive,dir,name,ext)\	fnmerge(path,drive,dir,name,ext)#endif//TONY char *BORDID_ARGV;char *MAC_ARGV;char *WRITE_MAC_ADDRESS;char READ_MAC[13];int checkConnection(char *ip){	FILE *fStream;	char var[50];		memset(var, '\0',sizeof(var));	strcat(var,".\\fping ");	strcat(var,ip);	strcat(var," -l -n 1 > pingLOG");	system(var); 	fStream = fopen("pingLOG", "r");		if ('R' == (char)fgetc(fStream))		return 1;	else		return 0;}//TONYstatic A_UCHAR  bssID[6]     = {0x50, 0x55, 0x55, 0x55, 0x55, 0x05};static A_UCHAR  rxStation[6] = {0x10, 0x11, 0x11, 0x11, 0x11, 0x01};    // DUTstatic A_UCHAR  txStation[6] = {0x20, 0x22, 0x22, 0x22, 0x22, 0x02};    // Golden//                                                     1L    2L    2S   5.5L  5.5S  11L   11SA_UCHAR  DataRate[] =  {6, 9, 12, 18, 24, 36, 48, 54, 0xb1, 0xb2, 0xd2, 0xb5, 0xd5, 0xbb, 0xdb,//                        XR0.25  XR0.5  XR1   XR2   XR3							0xea, 0xeb,  0xe1, 0xe2, 0xe3};//                                                     1L    2L    2S   5.5L  5.5S  11L   11Sconst A_UCHAR DataRateCode[] = {11, 15, 10, 14, 9, 13, 8, 12,//                       1L   2L   2S   5.5L 5.5S 11L  11S						 0x1b,0x1a,0x1e,0x19,0x1d,0x18,0x1c,//                         0.25 0.5 1  2  3						 3,   7,  2, 6, 1};const A_CHAR  *DataRateStr[] = {" 6 Mbps", " 9 Mbps", "12 Mbps",			"18 Mbps", "24 Mbps", "36 Mbps", "48 Mbps", "54 Mbps",			"1 Mbps long", "2 Mbps long", "2 Mbps short",			"5.5 Mbps long", "5.5 Mbps short", "11 Mbps long", "11 Mbps short",			"XR 0.25 Mbps", "XR 0.5 Mbps", "XR 1 Mbps", "XR 2 Mbps", "XR 3 Mbps"};const A_CHAR  *DataRateStrTurbo[] = {" 12 Mbps", " 18 Mbps", "24 Mbps",			"36 Mbps", "48 Mbps", "72 Mbps", "96 Mbps", "108 Mbps",			"1 Mbps long", "2 Mbps long", "2 Mbps short",			"5.5 Mbps long", "5.5 Mbps short", "11 Mbps long", "11 Mbps short",//            "2 Mbps long", "4 Mbps long", "4 Mbps short",//            "11 Mbps long", "11 Mbps short", "22 Mbps long", "22 Mbps short",			"XR 0.5 Mbps", "XR 1 Mbps", "XR 2 Mbps", "XR 4 Mbps", "XR 6 Mbps"};const A_CHAR  *DataRateStrHalf[] = {" 3 Mbps", " 4.5 Mbps", "6 Mbps",			"9 Mbps", "12 Mbps", "18 Mbps", "24 Mbps", "27 Mbps",			"0.5 Mbps long", "1 Mbps long", "1 Mbps short",			"2.75 Mbps long", "2.75 Mbps short", "5.5 Mbps long", "5.5 Mbps short",			"XR 0.125 Mbps", "XR 0.25 Mbps", "XR 0.5 Mbps", "XR 1 Mbps", "XR 1.5 Mbps"};const A_CHAR  *DataRateStrQuarter[] = {" 1.5 Mbps", " 2.75 Mbps", "3 Mbps",			"4.5 Mbps", "6 Mbps", "9 Mbps", "12 Mbps", "13.5 Mbps",			"0.25 Mbps long", ".5 Mbps long", ".5 Mbps short",			"1.375 Mbps long", "1.375 Mbps short", "2.75 Mbps long", "2.75 Mbps short",			"XR 0.065 Mbps", "XR 0.125 Mbps", "XR 0.25 Mbps", "XR .5 Mbps", "XR .75 Mbps"};const A_CHAR  *DataRate_11b[] =  {"1 Mbps long", "1 Mbps long",									"2 Mbps long", "2 Mbps short",									"5.5 Mbps long", "5.5 Mbps short",									"11 Mbps long", "11 Mbps short"};A_UINT32 swDeviceID;A_UINT32 hwDeviceID;A_UINT32 subSystemID;A_UINT32 macRev;A_UINT32 bbRev;A_UINT32 analogProdRev;WLAN_MACADDR  macAddr;A_BOOL printLocalInfo;A_BOOL progProm = 0;A_UINT16 gainIMax = GAINI_MAX;A_UINT16 gainIMin = GAINI_MIN;A_BOOL thin_client = FALSE;A_BOOL usb_client = FALSE;A_BOOL sdio_client = FALSE;A_UINT32 userEepromSize = 0x400;A_BOOL sizeWarning;A_CHAR  calsetupFileName[128] = "";char *machName = NULL;A_UINT32 checkSumLength=0x400; //default to 16kA_UINT32 eepromSize=0;A_UINT32 glbl_devNum=0;//Arrays needed for calculating the rx gain//static double antennaArr[] = {4.7, -6.3};//static double rfvgaGaindBArr[] = {2.73, -9.15, 19.32, 18.57}; // [rfgain1,rfatten0]//static double ifvgaGaindBArr[] = {-1.66, 2.42, 7.23, 11.9, 16.3, 16.3, 16.3, -6.09};//static A_INT32 pga1GainArr[]  = {0, 6, 12, 18};//static A_INT32 pga2GainArr[]  = {0, 6, 12, 18};//static A_INT32 pga3GainArr[]  = {0, 1, 2, 3, 4, 5};//defaults for initial configuration, although a lot of these will be overwritten//based on the contents of the external configuration file and the register file.MLD_CONFIG configSetup ={	5360,                        //channel	0,                            //eeprom load	0,                            //eeprom load override	0,                            //eeprom Header load	"",                            //create fez config file	"",                            //maui sombrero config file	"",                            //maui sombrero beanie config file	"",                            //oahu sombrero config file	"",                            //venice sombrero config file	NULL,                        //pointer to current config file	MAX_SOM_CHANNEL,            //max channel 5G	MIN_CHANNEL,                //min channel 5G	MAX_2G_CHANNEL,                //Max channel 2G	MIN_2G_CHANNEL,                //Min channel 2G	0,                            //power override on or off	0,                            //external power on or off	0,                            //xpdGainIndex//    3,                            //xpdGainIndex2	0,                            //xpdGainIndex2	1,                            //applyXpdGain	0,                            //data rate index	6,                            //data rate index throughput	USE_REG_FILE,                //pcdac value, initially use values in reg file	NO_PWR_CTL,                    //power control method. start with none.	1,                            //ob	1,                            //db	1,                            //b_ob	1,                            //b_db	50,                            //gainI	CONT_TX99,                    //continuous mode	USE_DESC_ANT | DESC_ANT_A,    //antenna	PN9_PATTERN,                //data pattern	1,                            //turbo	USE_REG_FILE,                //rxGain	0,                            //rf_gainBoost	0,                            //overwriteRxGain	0,                            //remote	1,                            //remote_exec	".",                        //machname	1,                            //instance	0,                            //user instance override	1,                            //validInstance	MODE_11A,                    //mode	0,                          //use_init	5360,                        //channel5	2412,                        //channel2_4	USE_REG_FILE,                //power output	USE_REG_FILE,                //rxGain 5GHz	USE_REG_FILE,                //rxGain 2.4GHz	1,                            //packet interleave	0,                            //logging	"",                            //log file	0x0000,                        // dut SSID. an illegal value as default.//    "BLANK",                    //dut card type//    "BLANK",                    //cmd line dut card type	0,                            //don't open all 2GHz channels	0xff,                        //rate mask	"",                            //eep File Directory	0,                            //cfg table num elements	NULL,                        //cfg table ptr current	NULL,                        //cfg table ptr elements	0,                            //blank eep subsystemID	0,                            //cmd line subsystemID	0,                            //cmd line subsystemID	1500,                        //packet size for throughput	MIN_NUM_RETRIES,            //num retries for throughput	MAX_NUM_PKTS,                //num packets for throughput	0,                            //use unicast packets for throughput	0,                            //init primary ART to not AP	1,                            //enablePrint	0,                            //num slots	0,                            //eeprom contains valid calibration data	0,                            // use target powers	FALSE,                        //cmd line Test	0,                            //cmd line test mask	NULL,                        //test channel list	0,                            //Num test channels	ANTENNA_A_MASK,                //antenna Mask	ANTENNA_A_MASK,                //gold antenna mask	0,                            //iterations	"",                            //beacon bssid	0,                            //range Logging	"",                            //range Logfile	1000,                        //link packet size	100,                        //link num packets	100,                        //Signal generator number of packet	100,                        //SIgnal generetor number of Loopcount	REF_CLK_DYNAMIC,            //default refClock	0,                            //beanie2928Mode	5,                            //5gChannelStep size	0,                            //enable XR	0,                            //load ear	0,                            //eep file version	0,                          //ear file version	0,                          //ear file identifier <filename_1.ear ==> 1>	DO_OFSET_CAL | DO_NF_CAL,   //hw calibration//    ART_ANI_ENABLED,            //ART ANI enabled by default	ART_ANI_DISABLED,            //ART ANI disabled initially	ART_ANI_REUSE_ON,            //ART ANI levels reuse on by default	{0,0,0},                    //ART ANI levels	100,                        // max RX gain	0,                            // min RX gain	FALSE,                        // userDutIdOverride	0x00,                       // eeprom2StartLocation	0,                          // computeCalsetupName	"",                            // eep backup filename	"",                            // eep restore filename	0,                            // compare single value	0,                            // apply ctl limit	0,                            // ctl to apply	0,                            // debugInfo flag	"INVALID",                     // manufName	"",                         // yieldLogFile	0,                            // enable label scheme	0,                      // Scramble mode on by default	0,                            // print pci writes	0,                            //quarter channel	"atheros-eep.txt",            // EEP file for cb/mb cards.	"atheros-usb-eep.txt",        // EEP file for UB cards.	"atheros-express-eep.txt",   // EEP file for PCI_express	0,                            // override pll value	0,                            // pll value	0,                            // no eeprom unlock (ie default to allow write).};//lookup table for when mapping the the pci config space first timeEEPROM_PCICONFIG_MAP fullMapping[] = {	0x00, 0x00, 0x01,    //deviceID, vendorID	0x08, 0x02, 0x03,    //23:8 of class code, 7:0 of class code and revisionID	0x28, 0x06, 0x05,     //bits 31:16 of cis_ptr, bits 15:0 cis_ptr	0x2c, 0x07, 0x08,    //subsystemID, subvendorID	0x3c, 0x09, 0x0a,    //max_lat and min_gnt, int_pin, reserved	0x40, 0x0c, READ_CONFIG, //pm_capabilities, keep default config value};A_UINT32 numMappings = sizeof(fullMapping)/sizeof(EEPROM_PCICONFIG_MAP);typedef struct {	A_CHAR        cardName[20];	A_UINT32    chipID;	A_UINT32    productID;	A_UINT32    subsystemID;	A_UINT32    numEthMacs;	A_UINT32    numWlanMacs;} LABEL_INFO_STRUCT;//for now create a static array of card label lookups.  Need to replace this with//an array parsed from the label.txt fileLABEL_INFO_STRUCT labelTable[] = {	"CB32", NO_CHIP_IDENTIFIER, 0, 0x1031, 0, 1,	"CB31", NO_CHIP_IDENTIFIER, 1, 0x1030, 0, 1,

⌨️ 快捷键说明

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