ATHEROS: ART分区中的数据解析

|===================== Header Information ====================|
|  Major Version            3  |  Minor Version           3328  |
|-------------------------------------------------------------|
|  Checksum           0x007F   |  Length             0x0202   |
|  RegDomain 1        0x0030   |  RegDomain 2        0x3A30   |
|  TX Mask            0x003A   |  RX Mask            0x0034   |
|  rfSilent           0x3035   |  btOptions          0x3A30   |
|  deviceCap          0x3600   |                              |
|  MacAddress: 0x32:3A:30:33:3A:30                            |
|  OpFlags: [0x22] 11A 0, 11G 1                               |
|  OpFlags: Disable 5HT40 0, Disable 2HT40 0                     |
|  OpFlags: Disable 5HT20 0, Disable 2HT20 1                     |
|  eepMisc: [0x0a] endian 0                                   |
|  Cal Bin Maj Ver   0 Cal Bin Min Ver   0 Cal Bin Build   0  |
|  Device Type: UNKNOWN [0]                                       |
|  Customer Data in hex                                       |
|= 50 01 50 00 00 00 00 00 00 1C 00 A4 00 00 00 00           =|
|= FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D           =|
|= 0E 0E 03 00 2C E2 00 02 0E 1C 0C 00 E0 E0 00 00           =|
|= E0 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00           =|
|=============================================================|
|=========== 2GHz Modal Header ===========|
|  Ant Chain 0                0x34323230  |
|  Ant Chain 1                0x34323230  |
|  Ant Chain 2                0x34343432  |
|  Ant Chain common           0x32303432  |
|  Antenna Gain Chain 0               50  |
|  Antenna Gain Chain 1               48  |
|  Antenna Gain Chain 2               52  |
|  Switch Settling                    50  |
|  TxRxAttenuation Ch 0               50  |
|  TxRxAttenuation Ch 1               48  |
|  TxRxAttenuation Ch 2               52  |
|  RxTxMargin Chain 0                 52  |
|  RxTxMargin Chain 1                 52  |
|  RxTxMargin Chain 2                 50  |
|  adc desired size                   50  |
|  pga desired size                   48  |
|  xlna gain Chain 0                  52  |
|  xlna gain Chain 1                  50  |
|  xlna gain Chain 2                  50  |
|  tx end to xpa off                  48  |
|  tx end to rx on                    52  |
|  tx frame to xpa on                 50  |
|  thresh62                           50  |
|  noise floor thres 0                48  |
|  noise floor thres 1                52  |
|  noise floor thres 2                52  |
|  Xpd Gain Mask                    0x34  |
|  Xpd extern                         50  |
|  IQ Cal I, Q Chain 0           50,  50  |
|  IQ Cal I, Q Chain 1           48,  50  |
|  IQ Cal I, Q Chain 2           52,  48  |
|  pdGain Overlap                26.0 dB  |
|  Analog Output Bias (ob)            50  |
|  Analog Driver Bias (db)            50  |
|  Xpa bias level                     48  |
|  Xpa bias level freq 0          0X3230  |
|  Xpa bias level freq 1          0X3432  |
|  Xpa bias level freq 2          0X3230  |
|  pwr dec 2 chain               26.0 dB  |
|  pwr dec 3 chain               26.0 dB  |
|  txFrameToDataStart                 52  |
|  txFrameToPaOn                      50  |
|  ht40PowerIncForPdadc               50  |
|  bswAtten Chain 0                   48  |
|  bswAtten Chain 1                   52  |
|  bswAtten Chain 2                   50  |
|  bswMargin Chain 0                  50  |
|  bswMargin Chain 1                  48  |
|  bswMargin Chain 2                  52  |
|  switch settling HT40               50  |
|=========================================|
|========================== Spur Information =========================|
|      11G Spurs in MHz (Range of 0 defaults to channel width)        |
|    4073.5   |    3662.3   |    6721.6   |    6721.6   |    6721.6   |
|< 4.9-=- 5.0>|<11.2-=-11.7>|<11.2-=-11.7>|<11.2-=-11.7>|<11.2-=-11.7>|
|=====================================================================|
|================== Power Calibration Information Chain 1 =================|
|==================             pdadc pwr(dBm)            =================|
|     2472     |     2484     |     2412     |     2417     |              |
|==============|==============|==============|==============|==============|
|              |              |              |              |              |
| PD_Gain  2   |              |              |              |              |
|   0    0.00  |   0    0.00  |   0    0.00  |   0    0.00  |              |
|   0    0.00  |   0    0.00  |   0    0.00  |   0    0.00  |              |
|   0    0.00  |   0    0.00  |   0    0.00  |   0    0.00  |              |
|   0    0.00  |   0    0.00  |   0    0.00  |   0    0.00  |              |
|   0    0.00  |   0    0.00  |   0    0.00  |   0    0.00  |              |
|              |              |              |              |              |
|==============|==============|==============|==============|==============|
============================Target Power Info===============================
|   2G CCK     |     2300     |     2300     |     2300     |
|==============|==============|==============|==============|==============|
|       1      |      0.0     |      0.0     |      0.0     |
|       2      |      0.0     |      0.0     |      0.0     |
|     5.5      |      0.0     |      0.0     |      0.0     |
|      11      |      0.0     |      0.0     |      0.0     |
|==============|==============|==============|==============|==============|
============================Target Power Info===============================
|   2G OFDM    |     2300     |     2300     |     2300     |     2300     |
|==============|==============|==============|==============|==============|
|     6-24     |      0.0     |      0.0     |      0.0     |      0.0     |
|      36      |      0.0     |      0.0     |      0.0     |      0.0     |
|      48      |      0.0     |      0.0     |      0.0     |      0.0     |
|      54      |      0.0     |      0.0     |      0.0     |      0.0     |
|==============|==============|==============|==============|==============|
============================Target Power Info===============================
|   2G HT20    |     2300     |     2300     |     2300     |     2300     |
|==============|==============|==============|==============|==============|
|   HT MCS0    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS1    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS2    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS3    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS4    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS5    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS6    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS7    |      0.0     |      0.0     |      0.0     |      0.0     |
|==============|==============|==============|==============|==============|
============================Target Power Info===============================
|   2G HT40    |     2300     |     2300     |     2300     |     2300     |
|==============|==============|==============|==============|==============|
|   HT MCS0    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS1    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS2    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS3    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS4    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS5    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS6    |      0.0     |      0.0     |      0.0     |      0.0     |
|   HT MCS7    |      0.0     |      0.0     |      0.0     |      0.0     |
|==============|==============|==============|==============|==============|

=======================Test Group Band Edge Power========================

上面的数据是读取驱动的数据而来;其代码为:

ar9300EepromDumpSupport(struct ath_hal *ah, void **ppE)
{
printk("ar9300EepromDumpSupport \n");
    *ppE = &(AH9300(ah)->ah_eeprom);
    return sizeof(ar9300_eeprom_t);
}

上面的可以知道,获取的是结构体

[cpp] view plaincopyprint?

  1. typedef struct ospreyEeprom {
  2. u_int8_t  eepromVersion;
  3. u_int8_t  templateVersion;
  4. u_int8_t  macAddr[6];
  5. u_int8_t  custData[OSPREY_CUSTOMER_DATA_SIZE];
  6. OSPREY_BASE_EEP_HEADER    baseEepHeader;
  7. OSPREY_MODAL_EEP_HEADER   modalHeader2G;
  8. OSPREY_BASE_EXTENSION_1 base_ext1;
  9. u_int8_t            calFreqPier2G[OSPREY_NUM_2G_CAL_PIERS];
  10. OSP_CAL_DATA_PER_FREQ_OP_LOOP calPierData2G[OSPREY_MAX_CHAINS][OSPREY_NUM_2G_CAL_PIERS];
  11. u_int8_t calTarget_freqbin_Cck[OSPREY_NUM_2G_CCK_TARGET_POWERS];
  12. u_int8_t calTarget_freqbin_2G[OSPREY_NUM_2G_20_TARGET_POWERS];
  13. u_int8_t calTarget_freqbin_2GHT20[OSPREY_NUM_2G_20_TARGET_POWERS];
  14. u_int8_t calTarget_freqbin_2GHT40[OSPREY_NUM_2G_40_TARGET_POWERS];
  15. CAL_TARGET_POWER_LEG calTargetPowerCck[OSPREY_NUM_2G_CCK_TARGET_POWERS];
  16. CAL_TARGET_POWER_LEG calTargetPower2G[OSPREY_NUM_2G_20_TARGET_POWERS];
  17. OSP_CAL_TARGET_POWER_HT  calTargetPower2GHT20[OSPREY_NUM_2G_20_TARGET_POWERS];
  18. OSP_CAL_TARGET_POWER_HT  calTargetPower2GHT40[OSPREY_NUM_2G_40_TARGET_POWERS];
  19. u_int8_t   ctlIndex_2G[OSPREY_NUM_CTLS_2G];
  20. u_int8_t   ctl_freqbin_2G[OSPREY_NUM_CTLS_2G][OSPREY_NUM_BAND_EDGES_2G];
  21. OSP_CAL_CTL_DATA_2G   ctlPowerData_2G[OSPREY_NUM_CTLS_2G];
  22. OSPREY_MODAL_EEP_HEADER   modalHeader5G;
  23. OSPREY_BASE_EXTENSION_2 base_ext2;
  24. u_int8_t            calFreqPier5G[OSPREY_NUM_5G_CAL_PIERS];
  25. OSP_CAL_DATA_PER_FREQ_OP_LOOP calPierData5G[OSPREY_MAX_CHAINS][OSPREY_NUM_5G_CAL_PIERS];
  26. u_int_t calTarget_freqbin_5G[OSPREY_NUM_5G_20_TARGET_POWERS];
  27. u_int8_t calTarget_freqbin_5GHT20[OSPREY_NUM_5G_20_TARGET_POWERS];
  28. u_int8_t calTarget_freqbin_5GHT40[OSPREY_NUM_5G_40_TARGET_POWERS];
  29. CAL_TARGET_POWER_LEG calTargetPower5G[OSPREY_NUM_5G_20_TARGET_POWERS];
  30. OSP_CAL_TARGET_POWER_HT  calTargetPower5GHT20[OSPREY_NUM_5G_20_TARGET_POWERS];
  31. OSP_CAL_TARGET_POWER_HT  calTargetPower5GHT40[OSPREY_NUM_5G_40_TARGET_POWERS];
  32. u_int8_t   ctlIndex_5G[OSPREY_NUM_CTLS_5G];
  33. u_int8_t   ctl_freqbin_5G[OSPREY_NUM_CTLS_5G][OSPREY_NUM_BAND_EDGES_5G];
  34. OSP_CAL_CTL_DATA_5G   ctlPowerData_5G[OSPREY_NUM_CTLS_5G];
  35. } __packed ar9300_eeprom_t;

其中这个&(AH9300(ah)->ah_eeprom 地址的值是怎么来的了,这里要加一个打印信息来看看代码的执行流程,目前有一点可以确认的是,WiFi的MAC地址的值来自于上面的macAddr 这个字段。

2:分区数据格式

有上面的可以知道,在此分区的最前面的字节可以用来定义MAC地址,为Atheros  Ethernet的MAC地址。在其代码

默认的MAC地址从地址:CONFIG_ATHR_GMAC_LOCATION 处来进行获取,CONFIG_ATHR_GMAC_LOCATION的定义如下:

#define CONFIG_AG7240_MAC_LOCATION 0xbfff0000

时间: 2024-08-27 21:18:38

ATHEROS: ART分区中的数据解析的相关文章

Android中XML数据解析

转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38296207 XML初步 今天我们来学习另一种非常重要的数据交换格式-XML.XML(Extensible Markup Language的缩写,意为可扩展的标记语言),它是一种元标记语言,即定义了用于定义其他特定领域有关语义的.结构化的标记语言,这些标记语言将文档分成许多部件并对这些部件加以标识.XML 文档定义方式有:文档类型定义(DTD)和XML Schema.DTD定义了文

iOS中的数据解析(XML,JSON),SAX解析,DOM解析

第三方 SAT解析 #import "SAXTableViewController.h" #import "Student.h" @interface SAXTableViewController ()<NSXMLParserDelegate> @property (nonatomic, retain) NSMutableArray *dataSourse; // 存储学生对象 @property (nonatomic, retain) Student

SpringMVC导入Excule并解析Excule中的数据以及下载Excule模板

把Excule导入,并把Excule中的数据解析出来,包装成对象的属性,保存在数据库中: Excule中的数据: 1.web.xml的配置: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/java

IOS中JSON数据的解析

IOS中JSON数据解析 官方为我们提供的解析JSON数据的类是NSJSONSerialization,首先我们先来看下这个类的几个方法: + (BOOL)isValidJSONObject:(id)obj; 判断一个数据对象是否可以转化为JSON数据 + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error; 将JSON数据写为NSData数据,其中opt参数

如何恢复NTFS分区中丢失的数据呢?

作为Windows NT系列的默认文件系统,NTFS文件系统格式自然成为人们的首选,到目前为止,NTFS被广泛使用.一些用户会发现,越来越多的分区习惯用NTFS的文件系统格式而非FAT,甚至一些FAT用户也选择将分区从FAT转换为NTFS.所以在今天的文章中,我们将向您展示如何在各种情况下从NTFS分区恢复数据.一. NTFS文件系统中数据丢失的原因由于某些原因,NTFS分区中的数据可能会直接丢失:1.错误删除有用的文件:当您发现您误删除文件时,某些情况下(文件仅通过"删除"删除,而不

iOS-数据持久化基础-JSON与XML数据解析

解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.XML数据结构 解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 XML数据结构 XML解析SAX?方式解析从上往下,?一点?一点读取性能好苹果推荐使?用DO

iOS边练边学--AFNetWorking框架GET、Post、Download、Upload,数据解析模式以及监控联网状态

一.AFNETWorking简单使用 get请求 get请求,以后经常用NSURLSession底层的写的部分 简单的post请求 用post请求下载文件,方法很多,还可以通过upload任务来执行 download任务 二.框架中的数据解析,默认是将数据按照json来解析,设置方法 三.AFN框架监控联网状态

XML数据解析 Dom方式解析

这是一份XML数据,与上一篇文章的JSON数据内容是相同的,上一篇是JSON格式,这篇文章使用的是XML格式的数据 本文以上篇文章的代码为基础修改: 1>数据形式变为XML数据,所以要修改文件的路径 2>因为数据格式不同,所以解析方式不同先采用GData方式解析XML文档 需求:将此XML文档中的数据解析出来,通过tableView展示出来,上一篇文章的需求相同,只是数据与解析方法不同 此处只给出解析本分代码,即JSON解析2文章中代码部分,61--89行部分,开始部分修改文件路径. 使用GD

25-2 三种数据解析方式

引言:回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指定数据解析.因为大多数情况下的需求,我们都会指定去使用聚焦爬虫,也就是爬取页面中指定部分的数据值,而不是整个页面的数据.因此,本次课程中会给大家详细介绍讲解三种聚焦爬虫中的数据解析方式.至此,我们的数据爬取的流程可以修改为: 指定url 基于requests模块发起请求 获取响应中的数据 数据解析