[NFC]NFC 客户 Support 流程

2023-05-16

    • 驱动部分问题
      • 测试程序用法
      • 再还未移植上层内容前执行测试程序后 NoACK
      • 不慎移植了上层后但还未确认底层是否移植成功需要先删除移植上层所产生的内容
      • 设备节点权限
      • 海思平台的驱动问题
      • 64位平台问题
      • 想用 NXP CLK 控制 PMIC 的 CLK
      • 安全模块
    • 移植上层部分
      • 固件和配置文件的问题
      • NFC APP 中需要修改的地方
      • MTK 平台上层会遇到的问题
      • 测试 APK
    • NFC 菜单
      • 可以出现可以正常切换但是无法刷卡
    • 硬件知识与其他
      • 硬件
        • CLK_REQ 和 XTAL 区别
      • PN65T
        • 只做读卡功能需要 UICC 么
        • SPI 引脚作用
      • 固件下载失败
    • 常见 AndroidLog 分析
      • NxpHal phTmlNfc_Init Failed
      • nfcManager_doInitialize verNFCDROID-AOSP_L_0001 nfaNFA_PI_10366 NCI_VERSION0x10
      • DBrcmNfcJni 6290 NAME_NXP_DEFAULT_NFCEE_DISC_TIMEOUT not found
      • E HAL load idnfc_ncipn54x hmi-idnfc_nci_pn547
      • ENfcAdaptation 4800 NfcAdaptationInitializeHalDeviceContext fail hw_get_module

注:因为有不少同学私信我一些问题。关于 NPC100、PN54x、PN65T、PN66T 之类的。
由于我现在已经没有做 NFC 了,所以难免解答的有些欠缺。
大家有问题/需求,可以向我私信索要我前公司(大联大世平)的业务的联系方式。
前公司有专门的 NXP NFC 团队负责不同平台下 NFC 的技术研发和支持。
业务端会为大家分配对应的工程师解决具体的问题。
谢谢。 — 2017.9.01 Younix

WPI ATU Younix @ 2016.7.25

驱动部分问题

测试程序用法

Pn547_i2c_test 为测试程序
测试程序的使用方法如下
1.  将 pn547_i2c_test.rar 解压到 external 目录下 mm 编译
2.  将生成的 pn547_i2c_test push 到 system/bin
执行 adb shell
cd system/bin
chmod 777 pn547_i2c_test
./pn547_i2c_test 
利用本工具确认 KERNEL 部分正常通信后,再按文档《NFC_NCIHALx_ARF.3.3.0_L_FW08.01.26_FW10.01.14.rar》中的步骤移植上层部分

再还未移植上层内容前,执行测试程序后 NoACK

1.       从原理图上看 I2C 的地址是 0x28,这组 I2C 上是否有其他设备是冲突的,请检查 DTS 中 I2C 的地址是否配置正确
2.       请问是系统时钟还是晶振,采用外部晶振请保证是 27.12MHZ
3.       请抓取 I2C 的波形,并请看确认一下 IRQ 管脚的状态
4.       Dev/pn544 是否生成了
5.       检查供电、固件下载管脚电平高低是否正常

不慎移植了上层后,但还未确认底层是否移植成功,需要先删除移植上层所产生的内容

请务必删除移植的上层内容后再使用测试程序
因为移植了上层代码后,在开机过程中,上层代码会去调用设备节点,所以此时运行 i2c_test 工具肯定是会失败的。
请删除上层编译结果后,再用 测试工具 进行测试:
1. 备份版本后并作如下修改:
删除 system/lib 下的 libnfc-nci.so 和 libnfc_nci_jni.so
删除 system/lib/hw 下的nfc_nci.pn54x.default.so 文件
删除 system/app/NfcNci 整个文件夹
删除 system 下 frameworks/native/data/etc/com.nxp.mifare.xml:system/etc/permissions/com.nxp.mifare.xml
frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml
frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml
frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml
删除system/vendor/firmware/libpn547ad_fw.so
删除 system/etc/libnfc-brcm.conf
删除 system/etc/libnfc-nxp.conf
重新编译后,烧录 system.img
2. 重启机器
3. 利用 I2C_test 工具测试 I2C 现在是否能够正常通信,并将测试工具显示的信息发送给我。

设备节点权限

设备节点没权限,加一下权限 
请在平台的 rc 文件中添加
on boot 
# NFC 
   setprop ro.nfc.port "I2C" 
   chmod 0660 /dev/pn544 
chown nfc nfc /dev/pn544 

海思平台的驱动问题

  1. 修改 I2C 的驱动实现
diff -Naru new/i2c-drv/std_i2c/drv_i2c.c old/i2c-drv/std_i2c/drv_i2c.c 
       --- new/i2c-drv/std_i2c/drv_i2c.c2016-05-17 14:31:06.269986000 +0800 
       +++ old/i2c-drv/std_i2c/drv_i2c.c 2016-05-11 16:41:40.000000000 +0800 
       @@ -1040,7 +1040,7 @@ 
            u32Len = g_astI2CBuff[I2cNum].u32Len; 
            g_astI2CBuff[I2cNum].stDataExchange[u32Len].u32Direction = 1; 
            g_astI2CBuff[I2cNum].stDataExchange[u32Len].u8Data = I2cDevAddr & WRITE_OPERATION; 
       -    g_astI2CBuff[I2cNum].stDataExchange[u32Len].u32Command = I2C_WRITE; 
       +    g_astI2CBuff[I2cNum].stDataExchange[u32Len].u32Command = I2C_WRITE | I2C_START; 
            g_astI2CBuff[I2cNum].u32Len++;

64位平台问题

64 bit 编译,按如下修改后进行编译
1.       添加编译选项 
#ifeq (&(TARGET_ARCH),arm64) 
    LOCAL_MULTLIB :=64 
#endif 
2.  LOCAL_MODULE_PATH :=$(TARGET_OUT_SHARED_LIBRARIES)/hw 改成 LOCAL_MODULE_RELATIVE_PATH := hw

想用 NXP CLK 控制 PMIC 的 CLK

现在想用NXP CLK REQ信号去控制PMIC CLK,但测量不到NXP CLK REQ的信号,一直是低电平,请问这个需要怎么设置吗?
解决方法: 
驱动将 CLK REQ 设成输入即可,之前提供给贵司的驱动已经有做这个 
另外 libnfc-nxp.conf 里 
NXP_CORE_CONF_EXTN={20, 02, 43, 10,  
        A0, 02, 01, 01, 使能CLK REQ 
        A0, 07, 01, 03,           

安全模块

安全模块部分, 首先 是需要第三方的厂商来协助完成 绑卡以及发卡 APP 的制作 (参考 三星pay 的 NFC 软件)。
另外,安全模块有两种, TEE 和 REE。
REE 指的 是在 RichOS(Android) 中实现的 安全保护措施。
TEE 指的 是 与 RichOS 并 行 的运行环境,为 OS 提供安全服务。
详细的可以参 考:http://blog.csdn.net/braveheart95/article/details/8882322
两种都是实现 安全 模块的方式,区别在于 TEE 安 全级别更高。
从移植过程中来看,
REE 基于 我们 的代码还需要添加 .so 的 库文件。
TEE 还需 要调 通 SPI 总 线。
但是无论是哪 一种 都需要先将我们的上层移植完毕。

#

移植上层部分

固件和配置文件的问题

conf 文件需要对应硬件修改一些配置。
请问
1. 采用的是 系统时钟 还是 外部晶振?如果采用的是系统时钟的话请问频率是多少?
2. 平台是 64bit 还是 32bit 的呢?
请将附件中的 .so 文件放到 /system/vendor/firmware目录下。

NFC APP 中需要修改的地方

packages\apps\Nfc\nci\jni\Android.mk  
#### Select the CHIP ####  
NXP_CHIP_TYPE :=$(PN547C2)  

external\libnfc-nci\Android.mk  
#### Select the CHIP #### 
D_CFLAGS += -DNFC_NXP_CHIP_TYPE=PN547C2  

external\libnfc-nci\halimpl\pn54x\Android.mk  
#### Select the CHIP #### 
LOCAL_CFLAGS += -DNFC_NXP_CHIP_TYPE=PN547C2  
packages\apps\Nfc\nci\jni 
NFC_NXP_ESE:= FALSE 
packages\apps\Nfc\nci\jni\NativeNfcAla.cpp做了如下修改: 
修改前: 
extern "C" 
{ 
#if (NFC_NXP_ESE == TRUE) 
#include "AlaLib.h" 
#include "IChannel.h" 
#include "phNxpConfig.h" 
#endif 
} 
修改后 
extern "C" 
{ 
#if (NFC_NXP_ESE == TRUE) 
#include "AlaLib.h" 
#include "IChannel.h" 
#else 
#include "phNxpConfig.h" 
#endif 
} 
另 libpn547_fw.so 需要放到 system/vendor/firmware 目录下 

MTK 平台上层会遇到的问题

  1. 看这个“PN547 ON  MTK 移植文档.pdf”里面的的一些目录结构,这个文档是针对android 6.0以下版本的指导说明书。里面一些路径跟android6.0的无法对应 ?
    需要关掉平台原生的 NFC 相关的代码。具体请参考附件《MTK平台修改配置.txt》。

  2. MTK 平台新老版本代码有差异:请确认务必修改如下代码

external\libnfc-nci\halimpl\pn547\dnld\ 目录 下的  phDnldNfc_Internal.h
#define PHDNLDNFC_CMDRESP_MAX_BUFF_SIZE (0x100U)   ==> **(0xF0U)**
  1. MTK 平台报错 Not Found
    MTK 由于 package 里的文件系统,相册,设置 等应用使用了 MTK P2P 的接口,主要是这个接口没定义而导致报错,替换后会出现编译到时根据提示一个一个注释即可,
    因为MTK 平台有自己的一套 NFC 实现,我们的移植是删掉后并采用 NXP 的这一套。
    但是由于 MTK 平台的 其他 app 中(比如 setting) 会调用到这些他们自己实现的接口。
    所以报错 cannot find 的时候需要对应去报错的文件中将该接口注释掉就可以了。

测试 APK

有一款用于测试的 APK(TagInfo),见附件,可以在完成上层代码移植后用于测试。
语句注释掉就可以了。

NFC 菜单

可以出现,可以正常切换,但是无法刷卡

确认时钟是晶振还是系统,固件是否最新,天线匹配。调出波形为13.56M 附近。

硬件知识与其他

硬件

CLK_REQ 和 XTAL 区别

CLK_REQ和XTAL1引脚都是时钟相关的引脚,在使用上有什么区别呢?
一般在使用 BB 输出的时钟信号,会使用CLK REQ  这个脚,直接接到 PMIC 上 使能 GPIO ,用于控制时钟的开关
一般 XTAL1 接的是 BB 端输出的时钟,需要使用 CLK_REQ 这个脚。
XTAL1 接的是晶体的话,CLK_REQ 脚悬空。

PN65T

只做读卡功能需要 UICC 么

PN65T本身集成一个安全单元,可以做卡模拟,也可以外接一个 UICC SIM 卡做卡模拟。
只做读卡不需要 UICC。

SPI 引脚作用

用于主控和 SE 之间的通信及 SE OS 的升级

固件下载失败

在pn544_dev_read 函数中添加 
if (copy_to_user(buf, tmp, ret)) { 
printk("%s : failed to copy to user space\n", __func__); 
return -EFAULT; 
} 
++   printk("IFD->PC:"); 
++   for(i = 0; i < ret; i++){ 
++       printk(" %02X", tmp[i]); 
++   } 
++   printk("\n"); 
wake_lock_timeout(&pn544_dev->read_wake, 2*HZ); 
return ret; 
fail: 
  
在 pn544_dev_write函数中添加 
  
/* Write data */ 
     ret = i2c_master_send(pn544_dev->client, tmp, count); 
     if (ret != count) { 
     printk("%s : i2c_master_send returned %d\n", __func__, ret); 
     ret = -EIO; 
     goto exit; 
} 
++     printk("PC->IFD:"); 
++     for(i = 0; i < count; i++){ 
++              printk(" %02X", tmp[i]); 
++     } 
++     printk("\n"); 

exit:

然后根据 Log 观察,固件下载失败。 
20 01 00 为下载固件的指令, 
正常应该下载到 8.1.26版本的固件,实际上固件版本为 8.1.8 

解决方法: 
提供 Android Log,并分析配置文件。 
固件版本采用错了,换成 32位固件后,解决问题。

常见 AndroidLog 分析

NxpHal : phTmlNfc_Init Failed

//节点未生成
检查名字是否正确
检查节点权限——> adb 直接看/dev/pn54x 的节点权限

nfcManager_doInitialize; ver=NFCDROID-AOSP_L_00.01 nfa=NFA_PI_1.03.66+ NCI_VERSION=0x10

I/NfcService( 1640): Enabling NFC // App 的 NFC 打开
D/BrcmNfcJni( 1640): nfcManager_doInitialize: enter; ver=NFCDROID-AOSP_L_00.01 nfa=NFA_PI_1.03.66+ NCI_VERSION=0x10
//ver=NFCDROID-AOSP 指的是 Android 5.0或者5.1 NFC_VERSION = 0x10 指的是 PN547 或者 65T 0x11 指的是 PN548 或者 66T

D/BrcmNfcJni( 6290): NAME_NXP_DEFAULT_NFCEE_DISC_TIMEOUT not found

跟踪代码
/etc/libnfc_brcm.conf 没有找到

E HAL : load: id=nfc_nci.pn54x != hmi->id=nfc_nci_pn547

HAL 层 id 与 HMI id 不对应
修改 HAL 层 id 是在
libhardware\include\hardware\nfc.h   #define NFC_NCI_NXP_PN54X_HARDWARE_MODULE_ID “nfc_nci.pn54x”  
修改 HMI id 是在 配置文件 libnfc-brcm.conf

# NCI Hal Module name 
NCI_HAL_MODULE 宏是否为"nfc_nci.pn54x"  

E/NfcAdaptation( 4800): NfcAdaptation::InitializeHalDeviceContext: fail hw_get_module

应该是HAL 层的一个 nfc_nci.default.so 没编译出来
external\libnfc-nci\halimpl\pn547\Android.mk 里
LOCAL_MODULE := nfc_nci_pn547.$(HAL_SUFFIX)
改成
LOCAL_MODULE := nfc_nci_pn547.default
PRODUCT_PACKAGES += \
    NfcNci \
    libnfc-nci \
    libnfc_nci_jni \
   nfc_nci_pn547.default \
    com.android.nfc_extras
请确认这两处保持一致,在system/lib/hw 会有nfc_nci_pn547.default.so 生成,现在应该没生成 。

最后 谢谢 Benson.Liang 师兄的耐心指导和大力支持~ :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[NFC]NFC 客户 Support 流程 的相关文章

  • 如何在root手机上获取NFCEE_ADMIN权限?

    NFCEE ADMIN 权限是签名级别 但是 是否有可能在已root的手机上 作弊 以获得此权限 也许使用类似的技术ClockSync 的工作方式 我正在尝试使用反射技术来访问 NFCExtras mAdapter NfcAdapter g
  • 自android API级别29以来如何替换NfcAdapter.CreateNdefMessageCallback?

    在Apple Developer的官方文档中 我发现 自API级别29起不再支持NfcAdapter CreateNdefMessageCallback接口 https developer android com reference and
  • Android 11 - Kiosk 模式锁屏 NFC 问题

    我有一个使用 Android Management API 作为信息亭运行的应用程序 我的一些客户更喜欢使用 MDM 平台 例如 Intune 和 Airwatch 我们将 Samsung XCover 系列用于我们的专用设备 Androi
  • 在特定任务中使用 NFC 启动 Activity

    我的应用程序包含许多活动 其中一项活动响应 NFC 意图过滤器以及标准意图 但是 该活动在其自己的任务中启动 而不是在与应用程序相同的任务中启动 当 NFC 意图启动时 应用程序不一定正在运行 但如果是 我希望该活动在同一任务中启动 以确保
  • 如何通过扫描NDEF NFC标签启动应用程序?

    我正在尝试通过扫描 NFC 标签来启动我的应用程序 我有两个标签要测试 具有一种 URI 数据类型的一个 我们称之为 标签 A http panasonic net http panasonic net and 另一个 我们称之为 标签 B
  • 如何访问NTAG213 NFC交互计数器?

    我正在开发一个 Android 应用程序 我需要查找 NFC 标签被读取的次数 我已经浏览了 NFC 论坛上的文档 对于 NTAG213 有一个名为 MIRROR CONF 的字段 使用该字段可以确定交互计数器是否启用 禁用以及计数器的值
  • Android NFC <技术列表> - 问题

    我想在 Android 上编写我的第一个 NFC 应用程序 为此 我使用 Android 开发人员链接 http developer android com guide topics nfc index html http develope
  • 使用 PPSE 而不是 PSE 读取 EMV 卡

    我正在尝试读取非接触式 Visa Paywave 卡上的数据 对于 Paywave 我必须使用 PPSE 2PAY SYS DDF01 而不是 PSE 1PAY SYS DDF01 提交 SELECT EMV 书籍 1 第 11 3 4 节
  • 在 iOS 13 中连接到 NFCTagReaderSession NFCISO7816Tag 标签并发送命令

    我正在研究 iOS 13 中新提供的 NFCTagReaderSession 我突然连接了会话标签并发送 apdu 命令进行通信 当我调用 connect 属性时 在连接时 发出蜂鸣声 它看起来需要 15 秒才能连接 它会显示一条错误消息
  • 如何调试Android的NFC实现?

    这个问题可以分解成多个更小的问题 最终结果是能够使用 gdb 等调试器在 Galaxy Nexus Android 4 1 设备的 C C NFC 实现中设置断点 以检查其内部状态 是否可以将 Galaxy Nexus 设备上的库替换为包含
  • HTML5可以访问手机上的NFC芯片吗

    我对 HTML5 不太熟悉 所以有人知道 HTML5 是否能够访问移动设备内置的 NFC 芯片吗 或者 有人可以建议另一种方法来使用其他方法来做到这一点吗 我的目标是制作一个跨平台 HTML5 Web 应用程序 可以在配备 NFC 的手机上
  • NFCTagReaderSession“缺少所需的权利”

    我正在深入研究 iOS 13 的新 CoreNFC 功能 并且正在努力让 NFCTagReaderSession 正常工作 设置我的权利并实例化 NFCTagReaderSession 和委托后 我尝试通过调用来启动会话nfcTagRead
  • NTAG212 Mifare Ultralight 带身份验证

    我是 NFC Android 新手 我已经被困了好几天试图获取第 4 页到第 7 页NTAG212 Mifare Ultralight 带身份验证 我已经有了 PWD 和 PACK 来做PWD AUTH基于NTAG212 Docs 我采用这
  • 使用额外数据从 NFC 标签启动 Android 应用程序

    我只需将手机放在 NFC 标签上即可启动我的应用程序 但我想将这个想法更进一步 想象一个带有两个 NFC 标签的简单时间跟踪应用程序 第一个将启动 并下载 应用程序并注册启动时间 另一个也将启动 并下载 应用程序 但注册一个停止时间 我想解
  • 使用 ACR122U 作为读取器/写入器在 Windows 窗体应用程序 C# 中将 Ndef 写入 NFC 标签

    我正在尝试使用 ACR122U NFC 读取器创建 NDEF 消息并将其写入 Windows 窗体应用程序 用 C 编写 中的 NFC 标签 我使用 Andreas Jakl 创建了 NDEF 消息的原始字节NDEF库 https gith
  • “直接传输命令”(ACR122U) 和“PC_to_RDR_Escape”(ACR1251U) 之间的区别

    对于 ACR122U 我知道您可以使用直接传输命令将直接消息传输到 NFC 控制器 PN532 0xff 0x00 0x00 0x00 当我阅读 ACR1251U 的手册时 它说 读写器的外设控制命令通过PC to RDR Escape实现
  • 两个 NFC 标签分别链接到项目中的两个不同活动?

    我正在做一个 NFC 应用程序 想知道这种情况是否可能 假设我在一个项目中有 2 个 NFC 标签和 2 个活动 写入NFC A以打开Activity A 方法是将NFC A中的MIME类型写入为 application com examp
  • javax.smartcardio 传输到 NFC USB 读卡器,无需卡

    是否可以在没有实际卡 连接 的情况下使用 javax smartcardio 将 APDU 发送到 NFC 读卡器 例如 ACR1222L 根据我的 API 调查 您只能使用从 Card 获取的 CardChannel 以及从 CardTe
  • 如何将 ISO7816 选择命令与 DESfire Ev1 卡一起使用?

    我有一张 DESfire Ev1 版本 1 3 卡 我正在尝试使用 ISO7816 apdu 样式选择一个文件 我有一份文件 需要帮助A0 A1 A2我可以使用本机或包装模式选择它 Native gt 5A A0 A1 A2 lt 00 W
  • ACR122 - 卡模拟

    如何让 NFC 非接触式读卡器 ACR122U 充当标签 卡模拟模式 招股说明书声称该设备可以进行卡模拟 但 SDK 似乎没有提供此功能的示例或文档 有人知道怎么做这个吗 是否需要额外的软件 请注意 我的目标平台是 MS Windows 提

随机推荐

  • SubClassWindow详解

    许多Windows程序员都是跳过SDK直接进行RAD开发工具 或VC xff0c 我想VC应不属于RAD 的学习 xff0c 有些人可能对子类化机制比较陌生 我们先看看什么是Windows的子类化 Windows给我们或是说给它自己定义了许
  • stl upper_bound函数实现

    写了一个upper bound的实现 其中递归使用二分法求解最上界 xff0c 虽然写的完全不像STL的风格 xff0c 但是练手还是可以的 view plaincopy to clipboardprint 01 include lt io
  • 关于TrackMouseEvent用法总结

    对于这个函数我也是最近想研究控件自绘才知道它真正怎么用 以前只是见到过 嗯 废话不多说 我先说下我的问题 如何响应鼠标离开某个窗体 控件 事件 先大概讲下步骤 然后再集中对 TrackMouseEvent 进行详解 为按钮添加以下几个函数
  • 关于CComboBox的自绘

    我想 如果大家学过一些控件的自绘的话 CComboBox算是很难的一种了 首先是它本身的复杂度 它由三个控件组成 CEdit CListBox CButton 我想但就CEdit来讲 就够你受得了 还要想想他们之间的消息传递 不禁让人无从下
  • 内部链接与外部链接

    在说内部连接与外部连接前 xff0c 先说明一些概念 1 声明 一个声明将一个名称引入一个作用域 在c 43 43 中 xff0c 在一个作用域中重复一个声明是合法的 以下都是声明 xff1a int foo int int 函数前置声明
  • partition/stable_partition详解

    Partition 将满足条件的元素向前移动 TEMPLATE FUNCTION partition template lt class BidIt class Pr gt inline BidIt Partition BidIt Firs
  • jsoncpp解析拼装数组

    int main 数组创建与分析 例子一 string strValue 61 34 34 ldh 34 34 001 34 34 gfc 34 34 002 34 34 yyj 34 34 003 34 34 andy 34 34 005
  • 查看静态库(.lib)和动态库(.dll)的导出函数的信息

    一般情况下 xff0c 我们需要查看一个DLL或EXE中的包含的函数或是依赖的函数之类的信息 xff0c 可以使用VS自带的工具dumpbin xff1b 可以直接在命令行下输入dumpbin就可以查看他的使用说明 xff0c 如果未显示
  • do {...} while (0) 在宏定义中的作用

    http www cnblogs com lanxuezaipiao p 3535674 html 如果你是一名C程序员 xff0c 你肯定很熟悉宏 xff0c 它们非常强大 xff0c 如果正确使用可以让你的工作事半功倍 然而 xff0c
  • Nginx 代理服务器10k文件无法上传

    在我们使用Nginx作为代理服务器的时候 xff0c 在进行文件上传时 xff0c 大于10k的文件上传失败 xff0c 因为此时后台服务并没有接收到请求 xff0c 所以在Nginx配置中进行排错 xff0c 终于找到了问题所在 1 修改
  • 即插即用型设备驱动的加载过程

    现假设驱动程序已被正确安装 xff1a 1 某种PnP总线驱动发现了即插即用设备的存在 xff1a 对于热插拔设备 xff0c 则发现过程发生于插入设备的瞬间 xff1b 如果是非热插拔设备 xff0c 则发现过程发生于系统启动时 2 Pn
  • EXCEL 基于合并计算工具实现相似表格汇总和求平均值

    1 表格汇总合并 在处理大量表格时 xff0c 有时候需要将很多相思内容的表格 xff0c 合并到一张表里 xff0c 那么就需要用到 合并计算工具 了 如下表所示为某公司南京分部的BCD产品的销售额 通过下表可以知道还有海口 上海 珠海三
  • ZYNQ7020AMP使用方法总结

    本人使用的sdk版本为2015 4本人的方法适用于15 4之后的版本 Zynq开发双核分为两种方法 xff0c 第一种双核裸跑 xff0c 第二种linux 43 裸跑 双核裸跑 xff1a 先使用Debug调试器调试 xff0c 通过SD
  • 试用了5款BI分析工具,终于找到了上手最快的那一个!

    前几天 xff0c 领导甩给我一个任务 xff0c 考察几个BI工具 xff0c 下季度立项用 潜心做ETL的我 xff0c 对BI只是略懂 之前上的BO xff0c 由于开发模式不适应 人员用不惯 xff0c 再加上负责这块的同事走的走
  • RNA-seq流程——使用hisat2进行序列比对(不利用循环&利用循环)(未完待续)

    RNA seq流程 使用hisat2进行序列比对 xff08 不利用循环 xff06 利用循环 xff09 xff08 未完待续 xff09 本次使用ky老师的文件进行序列比对 xff0c 比对时使用双端比对 xff0c 1 clean f
  • JavaWeb学习jsp中,单击验证码图片进行替换

    lt td gt 验证码 lt td gt lt td class 61 34 inputs 34 gt lt input name 61 34 checkCode 34 type 61 34 text 34 id 61 34 checkC
  • Linux的FTP安装、使用和配置(FTP客户端管理工具)

    一 FTP服务介绍 1 什么是HTP服务 FTP xff08 File Transfer Protocol xff09 是一种应用非常广泛并且古老的一个互联网文件传输协议 FTP主要用户互联网中文件的双向传输 xff08 上传 下载 xff
  • 详解警告“unreferenced local variable”

    在编译C 43 43 程序时 xff0c 我们有时候遇到这样的警告 warning C4101 39 x1 39 unreferenced local variable 下面是一个会出现上述警告的简单例子 xff1a using names
  • 为Github page绑定自定义域名并实现https访问

    欢迎参观我的网站 gt Yuci s Blog 实现目标 获取自定义域名yucichueng me 将上述域名 及www域名 解析到yucichueng github ioIP地址 将域名解析服务托管于CloudFlare 获取SSL证书
  • [NFC]NFC 客户 Support 流程

    驱动部分问题 测试程序用法再还未移植上层内容前执行测试程序后 NoACK不慎移植了上层后但还未确认底层是否移植成功需要先删除移植上层所产生的内容设备节点权限海思平台的驱动问题64位平台问题想用 NXP CLK 控制 PMIC 的 CLK安全