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

📄 maui_cal.h

📁 atheros ar5001 5002 driver
💻 H
📖 第 1 页 / 共 2 页
字号:
//	A_UINT32 cal_single_xpd[3];
	A_UINT32 cal_mult_xpd_gain_mask[3]; 

	A_UINT32 EARStartAddr;
	A_UINT32 TrgtPwrStartAddr;

	A_UINT32 numSensPackets[3];
	A_UINT32 txperBackoff;
	A_UINT32 Enable_32khz;  // indicates 32khz sleep crystal stuffed.
	A_UINT32 rxtx_margin[3];
	double   ofdm_cck_gain_delta;

	A_UINT32 instanceForMode[3];  // ART cmd line parameter. 1 based
	A_UINT32 modeMaskForRadio[2]; // mask for supported modes for all radios

	A_INT32  i_coeff_5G; // statistical avg iq_cal_coeffs
	A_INT32  q_coeff_5G; // statistical avg iq_cal_coeffs

	A_INT32  i_coeff_2G; // statistical avg iq_cal_coeffs
	A_INT32  q_coeff_2G; // statistical avg iq_cal_coeffs

} CAL_SETUP; 

typedef struct d_dataPerChannel {
	A_UINT16		channelValue;
	A_UINT16			pcdacMin;
	A_UINT16			pcdacMax;
	A_UINT16		numPcdacValues;
	A_UINT16		*pPcdacValues;
	double			*pPwrValues;		//power is a float
} dDATA_PER_CHANNEL;

typedef struct d_pcdacsEeprom {
	A_UINT16			*pChannels;
	A_UINT16			numChannels;
	dDATA_PER_CHANNEL	*pDataPerChannel;		//ptr to array of info held per channel
	A_BOOL				hadIdenticalPcdacs;
} dPCDACS_EEPROM;

typedef struct testChannelTargets {
	A_UINT16		channelValue;
	double			Target24 ;
	double			Target36 ;
	double			Target48 ;
	double			Target54 ;
} TARGET_CHANNEL ;

typedef struct targetsSet {
	A_UINT16	numTargetChannelsDefined ;
	TARGET_CHANNEL	*pTargetChannel ;
} TARGETS_SET ;

typedef struct testChannelMasks {
	A_UINT16		channelValue;
	A_BOOL			TEST_PER ;
	A_INT32			targetSensitivity;
	A_BOOL			LO_RATE_SEN;
	A_INT32			targetLoRateSensitivity;
	A_BOOL			TEST_TURBO;
	A_BOOL			TEST_HALF_RATE;
	A_BOOL			TEST_MASK;
	A_BOOL			TEST_OBW;
	A_UINT32		TEST_TGT_PWR;
	A_UINT32		TEST_TEMP_MARGIN;
} TEST_CHANNEL_MASKS ;

typedef struct testSet {
	A_UINT16	numTestChannelsDefined ;
	A_UINT16	maxTestChannels;
	TEST_CHANNEL_MASKS	*pTestChannel ;
} TEST_SET ;

typedef struct testGroupData {
	A_UINT16	TG_Code ;
	A_UINT16	numBandEdgesDefined ;
	A_UINT16	BandEdge[NUM_BAND_EDGES] ;
	double		maxEdgePower[NUM_BAND_EDGES];
	A_UINT16	inBandFlag[NUM_BAND_EDGES];
} TEST_GROUP_DATA ;

typedef struct testGroupSet {
	A_UINT16	numTestGroupsDefined ;
	TEST_GROUP_DATA	*pTestGroup ;
} TEST_GROUP_SET ;

typedef struct _tpVal 
{
	A_UINT16 channel_idx;
	double   val;
} TP_VAL ;

void topCalibrationEntry(A_UINT32 *pdevNum_inst1, A_UINT32 *pdevNum_inst2) ;
void calibrationMenu() ;
void dutBegin() ;
void dutCalibration( A_UINT32 devNum ) ;

void setupChannelLists() ;
void setupMaxPower() ;
void mapValues(double max, double mask[], A_UINT16 maskSize, double values[]) ;
void set_backoff_list_for_RD(A_UINT16 domain, double values[], A_UINT16 numvals) ;
void set_maxpwr_list_for_RD(A_UINT16 domain, double values[], A_UINT16 numvals) ;
void set_maxpwr_list_for_rate(A_UINT16 rate, double values[], A_UINT16 numvals);
void set_maxpwr_list_for_rate_for_domain(A_UINT16 rate, A_UINT16 domain, double values[], A_UINT16 numvals);
A_UINT16 get_domain_idx( A_UINT16	domain ) ;
A_UINT16 get_rate_idx( A_UINT16	rate ) ;
A_UINT16 get_rd_edge_idx( A_UINT16	rd_edge ) ;
void parseSetup(A_UINT32 devNum) ;
void Write_eeprom_Common_Data(A_UINT32 devNum, A_BOOL writeHeader) ;
void Write_eeprom_header_4K(A_UINT32 devNum) ;
void Write_eeprom_header(A_UINT32 devNum) ;

A_BOOL setup_raw_datasets() ;
A_BOOL	d_allocateEepromStruct(dPCDACS_EEPROM  *pEepromStruct, A_UINT16	numChannels, A_UINT16 numPcdacs ) ;
void measure_all_channels(A_UINT32 devNum, A_UINT16 debug) ;
A_UINT32 dump_a2_pc_out(A_UINT32 devNum) ;
A_UINT32 read_gainf_twice(A_UINT32 devNum) ;
A_UINT32 read_gainf_with_probe_packet(A_UINT32 devNum, A_UINT32 power);

void dump_rectangular_grid_to_file( dPCDACS_EEPROM  *pEepromData, char *filename );
void dump_nonrectangular_grid_to_file( dPCDACS_EEPROM  *pEepromData, char *filename );
void make_cal_dataset_from_raw_dataset();
void find_optimal_pier_locations(A_UINT16 *turning_points, A_UINT16 numTPsToPick, double filter_size, A_UINT16 data_ceiling, A_UINT16 debug);
void filter_hash(dPCDACS_EEPROM *pDataset, double filter_size, double data_ceiling);
void truncate_hash_subzero(dPCDACS_EEPROM *pDataset);
void differentiate_hash(dPCDACS_EEPROM *srcStruct, dPCDACS_EEPROM *destStruct);
void build_turning_points(dPCDACS_EEPROM *pDataset, dPCDACS_EEPROM *pDerivDataset, A_UINT16 *TPlist, A_UINT16 *totalTPs, A_UINT16 debug);
void addUniqueElementToList(A_UINT16 *list, A_UINT16 element, A_UINT16 *listSize);
int numerical_compare( const void *arg1, const void *arg2 );
void pick_local_extrema(dPCDACS_EEPROM *pDataset, A_UINT16 pcd_idx, A_UINT16 *retList, A_UINT16 *listSize);
void consolidate_turning_points(A_UINT16 **tpList, A_UINT16 *sizeList, A_UINT16 debug);
void build_turningpoint_totempole(dPCDACS_EEPROM *pDataset, TP_VAL **totempole, A_UINT16 sizeTotempole, A_UINT16 *tpList, A_UINT16 debug);
int totempole_compare( const void *arg1, const void *arg2 );


void dMapGrid(dPCDACS_EEPROM *pSrcStruct, dPCDACS_EEPROM *pDestStruct);
double getPowerAt( A_UINT16 channel, A_UINT16	pcdacValue, dPCDACS_EEPROM *pSrcStruct);
A_BOOL dFindValueInList( A_UINT16 channel, A_UINT16 pcdacValue, dPCDACS_EEPROM *pSrcStruct, double *powerValue);
void iGetLowerUpperValues (A_UINT16	value, A_UINT16	*pList,	A_UINT16 listSize, 
						   A_UINT16	*pLowerValue, A_UINT16	*pUpperValue );
void dGetLeftRightChannels( A_UINT16 channel, dPCDACS_EEPROM *pSrcStruct, A_UINT16 *pLowerChannel,
						    A_UINT16 *pUpperChannel);
void dGetLowerUpperPcdacs( A_UINT16 pcdac, A_UINT16 channel, dPCDACS_EEPROM *pSrcStruct,
						   A_UINT16 *pLowerPcdac, A_UINT16 *pUpperPcdac);
double dGetInterpolatedValue(A_UINT32 target, A_UINT32 srcLeft, A_UINT32 srcRight, 
							 double targetLeft, double targetRight);
void build_cal_dataset_skeleton(dPCDACS_EEPROM *srcDataset, dPCDACS_EEPROM *destDataset, 
								A_UINT16 *pPercentages, A_UINT16 numIntercepts, 
								A_UINT16 *tpList, A_UINT16 numTPs);
void quantize_hash(dPCDACS_EEPROM *pDataSet);


A_UINT32 eeprom_get_checksum(A_UINT32 devNum, A_UINT16 startAddr, A_UINT16 numWords) ;





void dutTest(A_UINT32 *devNum);
void dutTestSpecMask(A_UINT32 devNum);
void ResetSA(const int ud, const double center, const double span, 
			  const double ref_level, const double scale, const double rbw, const double vbw) ;
void dutTestOBW(A_UINT32 devNum) ;
void goldenTestRXSEN(A_UINT32 devNum);
void dutTestRXSEN(A_UINT32 devNum);
void goldenTestTXPER(A_UINT32 devNum);
void dutTestTXPER(A_UINT32 devNum);
//void goldenWait4WakeupCall(A_UINT32 devNum);
//void dutSendWakeupCall(A_UINT32 devNum);
void ProgramMACID(A_UINT32 devNum);
void reset_on_off(A_UINT32 devNum);
char *qq( char *format, ...);

void read_dataset_from_file(dPCDACS_EEPROM *pDataSet, char *filename);
void goldenTest();

void copyDomainName(A_UINT32 country, char **domainName);
char *getDomainName(A_UINT32 country);

void new_goldenWait4WakeupCall(A_UINT32 devNum);
void new_dutSendWakeupCall(A_UINT32 devNum);

A_UINT16 parseTargets(void);
void showTargets (void);
A_UINT16 fbin2freq(A_UINT16 fbin);
A_UINT16 freq2fbin(A_UINT16 freq);
void program_eeprom(A_UINT32 devNum);
void fill_words_for_eeprom(A_UINT32 *word, A_UINT16 numWords, A_UINT16 *fbin, 
							 A_UINT16 dbmmask, A_UINT16 pcdmask, A_UINT16 freqmask);

void fill_Target_Power_and_Test_Groups(A_UINT32 *word, A_UINT16 numWords,  
							 A_UINT16 dbmmask, A_UINT16 pcdmask, A_UINT16 freqmask);
void program_Target_Power_and_Test_Groups(A_UINT32 devNum);
void set_appropriate_OBDB(A_UINT32 devNum, A_UINT16 channel);

void dutCalibration_2p4(A_UINT32 devNum, A_UINT32 mode);
void measure_all_channels_2p4(A_UINT32 devNum, A_UINT16 debug, A_UINT32 mode) ;
A_BOOL setup_raw_datasets_2p4(A_UINT32 mode) ;

A_UINT16 fbin2freq_2p4(A_UINT16 fbin);

void dutTest_2p4(A_UINT32 devNum,  A_UINT32 mode);
void dutTestSpecMask_2p4(A_UINT32 devNum, A_UINT32 mode);
void dutSendWakeupCall_2p4(A_UINT32 devNum, A_UINT32 mode);
void goldenWait4WakeupCall_2p4(A_UINT32 devNum);
void dutTestTXPER_2p4(A_UINT32 devNum, A_UINT32 mode);
void goldenTestTXPER_2p4(A_UINT32 devNum, A_UINT32 mode);
void goldenTestRXSEN_2p4(A_UINT32 devNum, A_UINT32 mode);
void dutTestRXSEN_2p4(A_UINT32 devNum, A_UINT32 mode);
void goldenTestRXSEN_2p4(A_UINT32 devNum, A_UINT32 mode);
void goldenTest_2p4(A_UINT32 devNum, A_UINT32 mode);

A_UINT16 getSubsystemIDfromCardType(A_CHAR *pLine, A_BOOL quiet);

extern CAL_SETUP CalSetup;
extern A_UINT16 eepromType;
extern TEST_GROUP_SET TG_Set ;
extern TEST_GROUP_SET *pTestGroupSet;

void dutTestTargetPower(A_UINT32 devNum, A_UINT32 mode);
A_BOOL isUNI3OddChannel(A_UINT16 channel);

void load_calsetup_vals(void); 
void load_eep_vals(A_UINT32 devNum) ;
void load_cal_section(void);

//void cornerCal(A_UINT32 devNum);
double getTargetPower (A_UINT32 mode, A_UINT32 ch, A_UINT32 rate);
//void setCornerFixBits(A_UINT32 devnum, A_UINT16 channel);

void build_cal_dataset_skeleton_old(dPCDACS_EEPROM *srcDataset, dPCDACS_EEPROM *destDataset, 
								A_UINT16 *pPercentages, A_UINT16 numIntercepts, 
								A_UINT16 *tpList, A_UINT16 numTPs);

void getDutTargetPowerFilename ();

void dutTestTXRX(A_UINT32 devNum, A_UINT32 mode);
void goldenTestTXRX(A_UINT32 devNum, A_UINT32 mode);
void report_timing_summary();


A_UINT32 sendSync (A_UINT32 devNum, char *machineName, A_UINT32 debug);
A_UINT32 waitForSync (A_UINT32 debug);
A_UINT32 sendAck (A_UINT32 devNum, char *message, A_INT32 par1, A_INT32 par2, A_INT32 par3, A_UINT32 debug);
A_UINT32 waitForAck (A_UINT32 debug);
A_BOOL verifyAckStr (char *message);

void setup_raw_pcdacs();

A_BOOL eeprom_verify_checksum (A_UINT32 devNum);
A_UINT32 parseTestChannels(FILE *fStream, char *pLine, A_UINT32 mode);
void test_for_temp_margin(A_UINT32 devNum, A_UINT32 mode);

A_BOOL	d_freeEepromStruct(dPCDACS_EEPROM  *pEepromStruct);
void free_all_eeprom_structs();
A_BOOL prepare_for_next_card (A_UINT32 *p_devNum);

void copy_11g_cal_to_11b(dPCDACS_EEPROM *pSrcStruct, dPCDACS_EEPROM *pDestStruct);
void report_fail_summary();
A_UINT32 optimal_fixed_gain(A_UINT32 devNum, GAIN_OPTIMIZATION_LADDER *ladder, A_UINT32 mode) ;
A_BOOL test_sleep_crystal(A_UINT32 devNum) ;

void goldenVerifyDataTXRX(A_UINT32 devNum, A_UINT32 mode, A_UINT32 turbo, A_UINT16 rate, A_UINT16 frameLen);
void dutVerifyDataTXRX(A_UINT32 devNum, A_UINT32 mode, A_UINT32 turbo, A_UINT16 rate, A_UINT16 frameLen);

#ifdef __cplusplus
}
#endif

#endif //__INCmauicalh








⌨️ 快捷键说明

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