By:GentlemanTsao
文章目录
- 紧急任务
- 1. 选择一个厨房(RF card)
- 在哪里看厨房(RF card)选项?
- 选哪个厨房(RF card)合适?
- 在哪里登记我选好的厨房(RF card)?
- 怎样登记呢?
- 2. 采购食材(配置物理设备列表)
- 采购清单(物理设备列表)写在哪里?
- 采购清单撰写注意事项:
- 3. 切配食材(配置逻辑设备列表)
- 食材在哪里切配(逻辑设备列表)?
- 切配食材注意事项
紧急任务
你是一位电子厨师,接到指挥官下达的紧急任务,要求在30分钟内为R星居民做出美食,否则R星将可能发生饥荒。
R星人以电磁波为食。
随即你收到了总部发来的美食图谱,如下:
这是R星语言。什么,没看懂?来来来,我搞到了一份带注释的图谱:
现在知道要做什么了吧?让我们动起来~
30分钟时间太紧张?别慌,30分钟=30X60=1800秒,足够电磁波从太阳到地球往返两个来回了。这样看还少吗?
1. 选择一个厨房(RF card)
做法式大餐和做中式大餐,对厨房配置的要求是不同的。因此,选择一个合适的厨房(RF card)可以让我们的烹饪得心应手。
在哪里看厨房(RF card)选项?
下面的文件列出了所有的备用厨房:
AMSS/modem_proc/rfc_jolokia/api/rfc_hwid.h
/* ------------------------------------------------------- ** The RF Card Id used in the target ** Note: The Id needs to be sequential ** ------------------------------------------------------- */
typedef enum {RF_HW_UNDEFINED = (uint8)0,RF_TARGET_NONE = RF_HW_UNDEFINED,RF_HW_WTR2965_CHN_ULCA_3P_APT = (uint8)3,RF_HW_WTR4905_NON_CA = (uint8)31,RF_HW_WTR2965_NON_CA_4360_CHIE_V2 = (uint8)75,RF_HW_WTR3925_QRD632_APT_QPA4361 = (uint8)87,RF_HW_WTR2965_DLCA_ULCA_4340 = (uint8)155,RF_HW_WTR2965_NON_CA_4373_V2 = (uint8)164,RF_HW_WTR2965_ULCA_QFE = (uint8)167,...} rf_hw_type;
选哪个厨房(RF card)合适?
如果不能确定,请咨询RF大厨。
在哪里登记我选好的厨房(RF card)?
请登记到nv1878。
modem开机初始化RF时,先读取nv1878,然后准备厨房必须的装备(lib等文件)。
nv1878的名字是rfhardwareconfiguration。
怎样登记呢?
使用QXDM tool修改nv1878;
或者,load已经修改好的qcn or efs文件。
2. 采购食材(配置物理设备列表)
现在,我们已经是有房的人的(厨房也是房~~)。但是,俗话说,巧妇难为无米之炊。有了厨房只是第一步,接下来还需采购食材(配置物理设备列表)。
看下我们需要哪些食材:
从上图看,我们需要准备5种食材:
粉丝(QM56020)——供应商:第三方
黑鱼(QM57016)——供应商:第三方
姜(QFE2101)——供应商:高通
食用油(WTR2965)——供应商:高通
葱(MXD86A0S)
好,下面列一个采购清单,让ARM去采购。
采购清单(物理设备列表)写在哪里?
请写在对应RF Card目录的xxx_cmn_ag.cpp文件中。
例如:
Rfc_wtr2965_non_ca_saw_4320_cmn_ag.cpp
(modem_proc\rfc_tabasco\rf_card\rfc_wtr2965_non_ca_saw_4320\common\src)
采购清单以下面的形式:
rfc_phy_device_info_type rfc_wtr2965_non_ca_saw_4320_phy_devices_list[] =
{{ /*Device: WTR2965 */ WTR2965, /* PHY_DEVICE_NAME */ 0, /* PHY_DEVICE_INSTANCE */ RFC_NO_ALTERNATE_PART, /* PHY_DEVICE_ALT_PART_NUM_OF_INSTANCE */ RFDEVICE_COMM_PROTO_RFFE, /* PHY_DEVICE_COMM_PROTOCOL */ RFDEVICE_COMM_PROTO_VERSION_DEFAULT, /* PHY_DEVICE_COMM_PROTOCOL_VERSION */ { 0,0 /* 0 not specified */,}, /* PHY_DEVICE_COMM_BUS */ 0x0217, /* PHY_DEVICE_MANUFACTURER_ID */ 0xCA, /* PHY_DEVICE_PRODUCT_ID */ 0, /* PHY_DEVICE_PRODUCT_REV */ 0x01, /* DEFAULT USID RANGE START */0x01, /* DEFAULT USID RANGE END */0x01, /* PHY_DEVICE_ASSIGNED_USID */ 0 /*Warning: Not specified*/, /* RFFE_GROUP_ID */ FALSE, /* INIT */ RFC_TX_MODEM_CHAIN_0, /* ASSOCIATED_DAC */ }, /* END - Device: WTR2965 */...
}
采购清单撰写注意事项:
PHY_DEVICE_INSTANCE:
食材的清单编号,从0开始依次递增。
PHY_DEVICE_COMM_BUS:
食材的包装编号——总线。有的食材可以包装在同一个盒子里。有的要独立打包。
如何确认?
看下上图的食材右侧标注的RFFE[n]_DATA/CLK。
n-1 即是该食材(物理设备)的包装编号。
PHY_DEVICE_MANUFACTURER_ID:
PHY_DEVICE_PRODUCT_ID:
PHY_DEVICE_PRODUCT_REV:
每份食材都有自己的说明书——SPEC。SPEC中标注了生产厂家(MANUFACTURER_ID)、产品名称(PRODUCT_ID),批次(PRODUCT_REV)。这些都需要填写到采购清单中。请仔细查看SPEC。
DEFAULT USID:
PHY_DEVICE_ASSIGNED_USID:
这两个是食材的标签。
DEFAULT USID是出厂默认的唯一标签;
PHY_DEVICE_ASSIGNED_USID是我们给它贴的唯一标签。注意这个标签必须不同于其他食材。
好了,采购清单完成。
3. 切配食材(配置逻辑设备列表)
看一下最开始的菜谱。
水煮鱼片要用的配料是黑鱼片(PA57016),剁椒鱼头要用的配料是鱼头(ASM57016)。而我们采购来的是黑鱼(QM57016)。该怎么做,不用我多解释了吧?切起来~
现在我们要把原始食材切配分割成可以直接使用的食材,这一步又称为(配置逻辑设备列表)。
食材在哪里切配(逻辑设备列表)?
同样在RF Card目录的xxx_cmn_ag.cpp文件中。
例如:
rfc_logical_device_info_type rfc_wtr2965_non_ca_saw_4320_logical_devices_list[] =
{{ /*Device: WTR2965 */ RFDEVICE_TRANSCEIVER, /* DEVICE_MODULE_TYPE */ WTR2965, /* DEVICE_MODULE_NAME */ 0, /* DEVICE_MODULE_TYPE_INSTANCE */ 0, /* ASSOCIATED_PHY_DEVICE_INSTANCE */ }, /* END - Device: WTR2965 */ { /*Device: QFE2101 */ RFDEVICE_PAPM, /* DEVICE_MODULE_TYPE */ QFE2101, /* DEVICE_MODULE_NAME */ 0, /* DEVICE_MODULE_TYPE_INSTANCE */ 1, /* ASSOCIATED_PHY_DEVICE_INSTANCE */ }, /* END - Device: QFE2101 */ { /*Device: QM56020 */ RFDEVICE_PA, /* DEVICE_MODULE_TYPE */ GEN_PA, /* DEVICE_MODULE_NAME */ 0, /* DEVICE_MODULE_TYPE_INSTANCE */ 2, /* ASSOCIATED_PHY_DEVICE_INSTANCE */ }, /* END - Device: QM56020 */ { /*Device: QM57016 pa */RFDEVICE_PA, /* DEVICE_MODULE_TYPE */GEN_PA, /* DEVICE_MODULE_NAME */1, /* DEVICE_MODULE_TYPE_INSTANCE */3, /* ASSOCIATED_PHY_DEVICE_INSTANCE */}, /* END*/{ /*Device: QM57016 asm */RFDEVICE_ASM, /* DEVICE_MODULE_TYPE */GEN_ASM, /* DEVICE_MODULE_NAME */0, /* DEVICE_MODULE_TYPE_INSTANCE */3, /* ASSOCIATED_PHY_DEVICE_INSTANCE */}, /*END*/
切配食材注意事项
DEVICE_MODULE_TYPE:
指的是食材种类。例如食用油(TRANSCEIVER),鱼片,粉丝等主料(PA),鱼头(ASM)等等。
DEVICE_MODULE_NAME:
切配后的食材名称。注意同一种原始食材,例如黑鱼(QM57016),切配后的名称可能会变成鱼片(PA)和鱼头(ASM)。
DEVICE_MODULE_TYPE_INSTANCE:
同一类食材的编号。从0开始。例如,假如有两种鱼片(PA QM56020 和PA QM57016),则第一个是0,第二个是1.
ASSOCIATED_PHY_DEVICE_INSTANCE:
指该食材是从哪个原始食材上切分的。填的是原始食材的编号(即对应的是物理设备列表的PHY_DEVICE_INSTANCE)。
好了,切配食材已经完成. 0(n_n)0
下一篇将继续我们的电子烹饪之旅:腌制和炒爆熘炸煎~
不要走开,马上回来。
作者:
GentlemanTsao, 资深Android大厨,带你探索舌尖之旅。
推荐菜单:
Java系列
Java并发和多线程教程2020版
Java函数式编程教程