AN13971
PN7220 – Pandhuan porting Android
Wahyu 1.0 - 18 September 2023
Cathetan aplikasi
PN7220 Compliant NFC Controller
Informasi dokumen
Informasi | Isi |
Tembung kunci | PN7220, NCI, EMVCo, NFC Forum, Android, NFC |
Abstrak | Dokumen iki nerangake carane port release middleware PN7220 menyang Android. |
NXP Semikonduktor
Riwayat revisi
Riwayat revisi
Pdt | Tanggal | Katrangan |
v.1.0 | 20230818 | Versi wiwitan |
Pambuka
Dokumen iki menehi pedoman kanggo nggabungake pengontrol NFC berbasis PN7220 NXP NCI menyang platform Android saka perspektif piranti lunak.
Kaping pisanan nerangake carane nginstal driver kernel sing dibutuhake, banjur nerangake langkah-langkah carane ngatur sumber AOSP kanggo nambah dhukungan kanggo pengontrol NFC PN7220. Gambar 1 nuduhake arsitektur kabeh tumpukan Android NFC.
Gambar 1. Tumpukan NFC Android
PN7220 dipisahake dadi siji-host lan dual-host skenario. Umumé, tumpukan padha kanggo host dual, kita nambah SMCU.
- NXP I2C Driver minangka modul kernel sing nyedhiyakake akses menyang sumber daya hardware PN7220.
- Modul HAL minangka implementasi lapisan abstraksi HW khusus saka pengontrol NXP NFC.
- LibNfc-nci minangka perpustakaan asli sing nyedhiyakake fungsi NFC.
- NFC JNI minangka kode lem antarane kelas Jawa lan Native.
- NFC lan EMVCo Framework minangka modul kerangka aplikasi sing nyedhiyakake akses menyang fungsi NFC lan EMVCo.
Pembalap kernel
Tumpukan Android NFC nggunakake driver kernel nxpnfc kanggo komunikasi karo PN7220. Iku kasedhiya ing kene.
2.1 Rincian driver
Driver kernel nxpnfc nawakake komunikasi karo PN7220 liwat antarmuka fisik I2C.
Nalika dimuat menyang kernel, pembalap iki mbukak antarmuka menyang PN7220 liwat simpul piranti sing jenenge /dev/ nxpnfc.
2.2 Njupuk kode sumber
Klone repositori driver PN7220 menyang direktori kernel, ngganti implementasine sing wis ana:
$rm -rf drivers/nfc
$git klon"https://github.com/NXPNFCLinux/nxpnfc.git"-b PN7220-Driver driver/
Iki rampung karo driver folder / nfc sing ngemot ing ngisor iki files:
- README.md: informasi repositori
- Gawe file: sopir judhul nggawe file
- Kcon anjir: konfigurasi driver file
- Lisensi: syarat lisensi driver
- nfc subfolder ngemot:
- commoc. c: implementasi driver umum
– umum. h: definisi antarmuka driver umum
– i2c_drv.c: implementasi driver khusus i2c
- i2c_drv.h: definisi antarmuka driver khusus i2c
– Gawefile: gawefile sing kalebu ing gawefile saka sopir
– Kbuild => mbangun file
– Kconfig => konfigurasi driver file
2.3 Nggawe driver
Kalebu driver menyang kernel lan nggawe mbukak nalika boot piranti rampung thanks kanggo devicetree.
Sawise nganyari definisi wit piranti, wit piranti sing gegandhengan karo platform kudu dibangun maneh. NXP nyaranake nggunakake versi kernel 5.10, amarga ing versi iki validasi lengkap wis rampung.
- Ngundhuh kernel
- Entuk kode sumber driver.
- Ngganti definisi wit piranti (khusus kanggo piranti sing digunakake).
- Mbangun driver.
a. Liwat prosedur menuconfig, kalebu driver target ing mbangun.
Sawise mbangun maneh kernel lengkap, driver bakal kalebu ing gambar kernel. Kita kudu nggawe manawa kabeh gambar kernel anyar disalin menyang mbangun AOSP.
adaptasi AOSP
NXP nyedhiyakake patch ing ndhuwur kode AOSP. Tegese pangguna bisa entuk kode AOSP lan ngetrapake patch saka NXP. Bagean iki nerangake carane ngrampungake iki. AOSP saiki tag sing kita gunakake yaiku [1].
3.1 AOSP mbangun
- Kita kudu njaluk kode sumber AOSP. Iki bisa kita lakoni karo:
$ repo init -u https://android.googlesource.com/platform/manifest-b android-13.0.0_r3
sinkronisasi $ repo
Cathetan: Alat repo kudu diinstal ing sistem. Tindakake pituduh [2]. - Nalika kita duwe kode sumber, kita bisa ngetik direktori lan mbangun:
$cd Android_AROOT
$sumber mbangun/envsetup.sh
$nedha awan select_target #target punika DH kita arep digunakake kanggo Example: db845c-userdebug $ nggawe -j - Nalika AOSP kasil dibangun, kita kudu njaluk patch NXP. Iki bisa kita lakoni karo:
$git klon"https://github.com/NXPNFCLinux/PN7220_Android13.git" vendor / nxp / - Ing wektu iki, kita kudu ngetrapake patch kanggo dhukungan PN7220. Kita bisa ngetrapake patch kanthi mbukak skrip install_NFC.sh.
$chmod +x /vendor/nxp/nfc/install_NFC.sh #kadang kita kudu nambah hak eksekusi kanggo skrip
$./vendor/nxp/nfc/install_NFC.sh
Cathetan: Priksa output sawise mbukak install_NFC.sh. Yen perlu, kita kudu nggawe sawetara owah-owahan kanthi tangan. - Kita uga bisa nambah binari FW:
$git kloning xxxxxxx
$cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/64-bit/libpn72xx_fw.so AROOT/vendor/nxp/pn7220/firmware/lib64/libpn72xx_fw.so
$cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/32-bit/libpn72xx_fw.so AROOT/vendor/nxp/pn7220/firmware/lib/libpn72xx_fw.so - Nambahake NFC kanggo mbangun
Ing piranti.mk nggawefile (kanggo example, piranti / merek / platform / piranti.mk), kalebu nggawe tartamtufiles:
$(telpon inherit-product, vendor/nxp/nfc/device-nfc.mk)
Ing BoardConfig.mk nggawefile (kanggo example, piranti/brand/platform/BoardConfig.mk), kalebu make tartamtufile:
-kalebu vendor / nxp / nfc / BoardConfigNfc.mk - Nambahake aplikasi DTA
$git clone https://github.com/NXPNFCProject/NXPAndroidDTA.git $git checkout NFC_DTA_v13.02_OpnSrc $patch -p1 AROOT_system_nfc-dta.patch
$ cp -r nfc-dta /system/nfc-dta
$/system/nfc-dta/$ mm -j - Saiki kita bisa mbangun AOSP maneh kanthi kabeh owah-owahan sing digawe:
$cd kerangka/basis
$mm
$cd../..
$cd vendor/nxp/frameworks
$mm #sawise iki, kita kudu ndeleng com.nxp.emvco.jar nang njaba/target/product/xxxx/system/framwework/
$cd ../../..
$cd hardware/nxp/nfc
$mm
$cd ../../..
$gawe -j
Saiki, kita bisa kerlip host piranti kita nganggo gambar Android sing kalebu fitur NFC.
3.2 Aplikasi Android NFC lan Lib ing target
Ing bagean iki, kita njlèntrèhaké ngendi tartamtu dikompilasi files di-push. Yen ana owah-owahan, kita bisa ngganti mung sing file. Tabel 1 nuduhake kabeh lokasi.
Tabel 1. Disusun files karo target piranti
Lokasi proyek | Disusun Files | Lokasi ing piranti target |
"$ANDROID_ROOT"/packages/apps/Nfc | lib/NfcNci.apk oat/libnfc_nci_jni.so |
/system/app/NfcNci/ /system/lib64/ |
"$ANDROID_ROOT"/system/nfc | libnfc_nci.so | /system/lib64/ |
"$ANDROID_ROOT"/hardware/nxp/nfc | nfc_nci_nxp_pn72xx.so android.hardware.nfc_72xx@1.2-service android.hardware.nfc_72xx@1.2-service.rc android.hardware.nfc@1.0.so android.hardware.nfc@1.1.so android.hardware.nfc@1.2.so |
/vendor/lib64 /vendor/bin/hw/ /vendor/etc/init sistem/lib64/ sistem/lib64/ sistem/lib64/ |
"$ANDROID_ROOT"/hardware/nxp/nfc | vendor.nxp.nxpnfc@2.0.so | /system/lib64 |
"$ANDROID_ROOT"/vendor/nxp/frameworks | com.nxp.emvco.jar | /system/framework /vendor/framework |
"$ANDROID_ROOT"/hardware/nxp/emvco | emvco_poller.so android.hardware.emvco-service android.hardware.emvco-service.rc android.hardware.emvco-V1-ndk.so android.hardware.emvco-V2-ndk.so |
/vendor/lib64 /vendor/bin/hw/ /vendor/etc/init sistem/lib64/ sistem/lib64/ |
3.3 Pemetaan patch
Saben tembelan kudu ditrapake ing lokasi tartamtu. Tabel 2 nuduhake jeneng tembelan lan lokasi ngendi kita kudu aplikasi lan jeneng pemblokiran, kang nuduhake kita ngendi ing tumpukan NFC (Figure 1).
Tabel 2. Patch lokasi ing NFC Stack
Jeneng blok | Jeneng patch | Lokasi kanggo nglamar |
NFC HAL lan EMVCo HAL | AROOT_hardware_interfaces.patch | hardware/antarmuka/ |
Tumpukan NFC | AROOT_hardware_nxp_nfc.patch | hardware/nxp/nfc/ |
EMVCo L1 Data Exchange Layer = EMVCo Stack | AROOT_hardware_nxp_emvco.patch | hardware/nxp/emvco/ |
LibNfc-Nci | AROOT_system_nfc.patch | sistem/nfc/ |
NFC JNI | AROOT_packages_apps_Nfc.patch | paket/aplikasi/nfc/ |
Layanan NFC | AROOT_packages_apps_Nfc.patch | paket/aplikasi/nfc/ |
NFC Framework | AROOT_frameworks_base.patch | kerangka/dasar/ |
Kerangka EMVCo | AROOT_vendor_nxp_frameworks.patch | vendor/nxp/frameworks/ |
3.4 Gambar sing sumunar
Gambar bisa ditemokake ing /out/target/product/{selected_DH}. Kanggo kerlip gambar sistem, kita kudu mbukak printah ing ngisor iki (dites ing Dragonboard 845c).
$ adb reboot bootloader
$ fastboot flash boot boot_uefi.img
$ fastboot flash vendor_boot vendor_boot.img
$ fastboot flash super super.img
$ fastboot flash userdata userdata.img
$ format fastboot: metadata ext4 $fastboot reboot
Sawise gambar flashed, kita kudu nindakake sawetara MW ngresiki dening mlaku printah ing ngisor iki (dites ing Dragonboard 845c).
$ adb ngenteni-kanggo-piranti
$adb root
$ adb ngenteni-kanggo-piranti
$ adb remount
$ adb shell rm -rf vendor/etc/init/android.hardware.nfc@1.1-service.rc
$ adb shell rm -rf vendor/etc/init/android.hardware.nfc@1.2-service.rc
$ adb push Test_APK/EMVCoAidlHalComplianceTest/EMVCoAidlHalComplianceTestsystem/etc
$ adb shell chmod 0777 /system/etc/EMVCoAidlHalComplianceTest
$ adb push Test_APK/EMVCoAidlHalDesfireTest/EMVCoAidlHalDesfireTest system/etc
$ adb shell chmod 0777 /system/etc/EMVCoAidlHalDesfireTest
$ adb push Test_APK/EMVCoModeSwitchApp/EMVCoModeSwitchApp.apk system/app/EMVCoModeSwitchApp/EMVCoModeSwitchApp.apk
$ adb shell sync
$ adb urip maneh
$ adb ngenteni-kanggo-piranti
3.5 Konfigurasi files
Ing PN7220, kita duwe papat konfigurasi sing beda files.
- libemvco-nxp.conf
- libnfc-nci.conf
- libnfc-nxp.conf
- libnfc-nxp-eeprom.conf
Cathetan: Pay manungsa waé sing konfigurasi files kasedhiya ing example hubungane karo Papan demo controller NFC. Iki files kudu diadopsi miturut integrasi diangkah.
Kabeh papat files kudu di-push menyang lokasi tartamtu.
Tabel 3. Lokasi konfigurasi files
Jeneng konfigurasi file | Lokasi ing piranti |
libemvco-nxp.conf | vendor / lsp |
libnfc-nci.conf | vendor / lsp |
libnfc-nxp.conf | sistem / lsp |
libnfc-nxp-eeprom.conf | vendor / lsp |
libnfc-nxp-eeprom.conf
Tabel 4. libnfc-nxp-eeprom.conf panjelasan
jeneng | Panjelasan | Nilai standar |
NXP_SYS_CLK_ SRC_SEL |
Konfigurasi pilihan sumber jam sistem | 0x01 |
NXP_SYS_CLK_ FREQ_SEL |
Konfigurasi pilihan frekuensi jam sistem | 0x08 |
NXP_ENABLE_ DISABLE_STANBY |
Pilihan kanggo ngaktifake utawa mateni mode Siyaga | 0x00 |
NXP_ENABLE_ DISABLE_LPCD |
Pilihan kanggo ngaktifake utawa mateni LPCD. | 0x00 |
Cathetan: Yen ora ana jam sing dikonfigurasi, PLL utawa Xtal, tumpukan MW bakal nyoba maneh ing daur ulang kanggo entuk jam kasebut lan sukses. libnfc-nci.conf
Tabel 5. libnfc-nci.conf panjelasan
jeneng | Panjelasan | Nilai standar |
APPL_TRACE_LEVEL | Tingkat log kanggo libnfc-nci | 0xff |
PROTOCOL_TRACE_LEVEL | Tingkat log kanggo libnfc-nci | 0xFFFFFFFF |
NFC_DEBUG_ENABLED | NFC debug ngaktifake setelan | 0x01 |
NFA_STORAGE | Setel direktori target kanggo NFC file panyimpenan | /data/vendor/nfc |
HOST_LISTEN_TECH_MASK | Konfigurasi fitur ngrungokake host | 0x07 |
NCI_HAL_MODULE | NCI HAL Modul jeneng | nfc_nci.pn54x |
POLLING_TECH_MASK | Konfigurasi teknologi polling | 0x0f |
Tabel 5. libnfc-nci.conf panjelasan…lajengipun
jeneng | Panjelasan | Nilai standar |
P2P_LISTEN_TECH_MASK | P2P ora didhukung ing PN7220 | 0xC5 |
PRESERVE_STORAGE | Verifikasi isi kabeh toko nonvolatile. | 0x01 |
AID_MATCHING_MODE | Nyedhiyakake macem-macem cara kanggo cocog karo AID | 0x03 |
NFA_MAX_EE_SUPPORTED | Nomer maksimal EE sing didhukung | 0x01 |
OFFHOST_AID_ROUTE_PWR_STATE | Setel negara sing didhukung OffHost AID | 0x3b |
Tabel 6. libnfc-nxp.conf panjelasan
jeneng | Panjelasan | Nilai standar |
NXPLOG_EXTNS_LOGLEVEL | Konfigurasi kanggo tingkat logging extns | 0x03 |
NXPLOG_NCIHAL_LOGLEVEL | Konfigurasi kanggo ngaktifake logging HAL | 0x03 |
NXPLOG_NCIX_LOGLEVEL | Konfigurasi kanggo ngaktifake logging paket NCI TX | 0x03 |
NXPLOG_NCIR_LOGLEVEL | Konfigurasi kanggo ngaktifake logging paket NCI RX | 0x03 |
NXPLOG_FWDNLD_LOGLEVEL | Konfigurasi kanggo ngaktifake logging fungsi download FW | 0x03 |
NXPLOG_TML_LOGLEVEL | Konfigurasi kanggo ngaktifake logging TM | 0x03 |
NXP_NFC_DEV_NODE | Jeneng Node Piranti NFC | idev/rixpnfc” |
MIFARE_READER_ENABLE | Ekstensi kanggo maca NFC kanggo MIFARE ngaktifake | Sapi01 |
NXP_FW_TYPE | Firmware file jinis | Sapi01 |
NXP_I2C_FRAGMENTATION_ AKTIF | Konfigurasi fragmentasi 12C | 0x00 |
NFA_PROPRIETARY_CFG | Setel konfigurasi proprietary Vendor | {05, FF, FF, 06, 81, 80, 70, FF, FF} |
NXP_EXT_TVDD_CFG | Setel mode konfigurasi TVDD | 0x02 |
NXP_EXT TVDD_CFG_1 | Konfigurasi setelan TVDD miturut mode TVDD sing dipilih | Priksa konfigurasi file |
NXP_EXT_TVDD_CFG_2 | Konfigurasi setelan TVDD miturut mode TVDD sing dipilih | Priksa konfigurasi file |
NXP_CORE_CONF | Ngatur bagean standar saka controller NFC | { 20, 02, 07, 02, 21, 01, 01, 18, 01, 02} |
NXP_CORE_CONF_EXTN | Ngatur bagean proprietary saka controller NFC | {00, 00, 00, 00} |
NXP_SET_CONFIG_ALWAYS | Kirimi CORE_CONF lan CORE_CONF_EXTN (ora dianjurake kanggo ngaktifake.) | Sapi00 |
NXP_RF_CONF_BLK_1 | setelan RF | Priksa konfigurasi file |
ISO_DEP_MAX_TRANSCEIVE | Netepake maksimum ISO-DEP lengkap dawa APDU | OxFEFF |
PRESENCE_CHECK_ALGORITHM | Setel algoritma sing digunakake kanggo prosedur mriksa ngarsane T4T | 2 |
NXP_FLASH_CONFIG | Flashing Pilihan Konfigurasi | 0x02 |
Tabel 7. libemvco-nxp.conf panjelasan
jeneng | Panjelasan | Nilai standar |
NXP LOG EXTNS LOGLEVEL | Konfigurasi kanggo tingkat logging extns | 0x03 |
NXP LOG NCIHAL LOGLEVEL | Konfigurasi kanggo ngaktifake logging HAL | 0x03 |
NXP LOG NCIX LOGLEVEL | Konfigurasi kanggo ngaktifake logging paket NCI TX | 0x03 |
NXP LOG NCIR LOGLEVEL | Konfigurasi kanggo ngaktifake logging paket NCI RX | 0x03 |
NXP LOG TML LOGLEVEL | Konfigurasi kanggo ngaktifake logging TML | 0x03 |
NXP_EMVCO_DEBUG_ENABLED | Aktifake debugging | 0x03 |
NXP EMVCO DEV NODE | Jeneng Node Piranti EMVCo | "/dev/nxpnfc" |
NXP PCD SETTINGS | Konfigurasi kanggo nyetel wektu tundha polling antarane 2 fase | (20, 02, 07, 01, A0, 64, 03, EC, 13, 06) |
NXP SET KONFIG | Pilihan kanggo nyetel printah config kanggo tujuan debugging | Priksa konfigurasi file |
NXP GET KONFIG | Pilihan kanggo njaluk printah config kanggo tujuan debugging | Priksa konfigurasi file |
3.6 APLIKASI DTA
Kanggo ngidini tes sertifikasi Forum NFC, aplikasi tes piranti diwenehake. Iku dumadi saka sawetara komponen ing lapisan Android beda, kang kudu dibangun lan klebu ing gambar Android.
Kanggo push aplikasi DTA, kita kudu tindakake langkah ing ngisor iki:
- Nyalin kabeh DTA files menyang siji lokasi
$cp -rf "out/target/product/hikey960/system/lib64/libosal.so" /DTA-PN7220
$cp -rf "out/target/product/hikey960/system/lib64/libmwif.so" /DTA-PN7220
$cp -rf "metu/target/produk/hikey960/system/lib64/libdta.so" /DTA-PN7220
$cp -rf “metu/target/produk/hikey960/system/lib64/libdta_jni.so” /DTA-PN7220
$cp -rf "metu/target/produk/hikey960/system/app/NxpDTA/NxpDTA.apk" /DTAPN7220 - Push binar menyang piranti kaya ing ngisor iki
adb shell mkdir /system/app/NxpDTA/
adb push libosal.so /system/lib64/
adb push libdta.so /system/lib64/
adb push libdta_jni.so /system/lib64/
adb push libmwif.so /system/lib64/
adb push NxpDTA.apk /system/app/NxpDTA/
Sawise sumunar target, aplikasi DTA banjur kudu ana ing dhaptar aplikasi sing diinstal. Priksa UG kanggo katrangan rinci babagan cara nggunakake aplikasi kasebut.
i.MX 8M Nano porting
Minangka mantanample, kita nuduhake apa porting menyang platform i.MX 8M katon kaya. Kanggo entuk informasi luwih lengkap, priksa [3].
4.1 Hardware
Saiki, NXP ora nyedhiyakake papan adaptor. Priksa Tabel 8 kanggo ndeleng carane nyambungake papan karo kabel.
Tabel 8. PN7220 kanggo i.MX 8M Nano sambungan
PIN | PN7220 | i.MX 8M NANO |
VEN | J27 – 7 | J003 – 40 |
IRQ | J27 – 6 | J003 – 37 |
SDA | J27 – 3 | J003 – 3 |
SCL | J27 – 2 | J003 – 5 |
MODE_SWITCH | J43 – 32 | J003 – 38 |
GND | J27 – 1 | J003 – 39 |
Piranti Lunak 4.2
Langkah-langkah sing diterangake ing bagean iki nerangake carane kita bisa port PN7200 menyang i.MX 8M Nano platform. Langkah-langkah sing padha karo sawetara modifikasi, bisa digunakake kanggo port menyang DH liyane sing nganggo OS Android.
Cathetan: Ing porting iki example, kita nggunakake 13.0.0_1.0.0_Android_Source.
Kita bisa nggunakake maneh tambalan sing ana gandhengane karo kode AOSP. Sing kudu diganti yaiku:
- Wit piranti (ing i.MX 8M Nano, iki AROOT_vendor_nxp-opensource_imx_kernel.patch)
- Tembelan khusus piranti (ing i.MX 8M Nano, iki AROOT_device_nxp.patch)
Ing AROOT_vendor_nxp-opensource_imx_kernel.patch, kita bisa ndeleng carane driver klebu lan carane wit piranti dibangun. Iki khusus kanggo saben piranti inang amarga kita kudu ngurus konfigurasi pin, lan iki beda antarane papan. Kita uga kudu ngurus konfigurasi menu.
Ing AROOT_device_nxp.patch, kita kalebu nfc menyang mbangun. Umumé, kita nggawe manawa, sing kabeh layanan sing klebu bener, etc.. Nalika porting menyang host piranti tartamtu, njupuk patch iki minangka referensi lan kalebu kabeh iku nang.
Siji bab tambahan kita nindakake ing porting dumunung ing piranti-nfc.mk file:
Kita kudu menehi komentar ing baris ing ngisor iki:
# BOARD_SEPOLICY_DIRS += vendor/$(NXP_VENDOR_DIR)/nfc/sepolicy \
# vendor/$(NXP_VENDOR_DIR)/nfc/sepolicy/nfc
Alesan kanggo iki kita kalebu sepolicy ing BoardConfig.mk khusus piranti file. Langkah-langkah kanggo nggawe gambar:
> Entuk kode AOSP kanggo i.MX8M Nano
> Mbangun AOSP
> Entuk patch NXP ([5])
> Aplikasi kabeh patch karo install_nfc.sh
> cd framework/base
> mm
> cd../..
> vendor cd/nxp/frameworks
> mm #sawise iki, kita kudu ndeleng com.nxp.emvco.jar nang njaba/target/product/ imx8mn/system/framwework/
> cd../../..
> cd hardware/nxp/nfc
> mm
> cd../../..
> gawe
> Download gambar lan nggunakake alat uuu kanggo lampu kilat i.MX8M Nano
Singkatan
Tabel 9. Cekakan
Akronim | Katrangan |
APDU | unit data protokol aplikasi |
AOSP | Proyek sumber terbuka Android |
DH | host piranti |
HAL | lapisan abstraksi hardware |
FW | firmware |
I2C | sirkuit interintegrasi |
LPCD | deteksi kertu powerd ngisor |
NCI | Antarmuka pengontrol NFC |
NFC | komunikasi cedhak lapangan |
MW | middleware |
PLL | fase-locked loop |
P2P | peer to peer |
RF | frekuensi radio |
SDA | data serial |
SMCU | mikrokontroler aman |
SW | piranti lunak |
Referensi
[1] AOSP r3 tag: https://android.googlesource.com/platform/manifest-b android-13.0.0_r3[2] Alat kontrol sumber: https://source.android.com/docs/setup/download
[3] i.MX: https://www.nxp.com/design/software/embedded-software/i-mx-software/android-os-for-i-mxapplications-processors:IMXANDROID
[4] Driver kernel PN7220: https://github.com/NXPNFCLinux/nxpnfc/tree/PN7220-Driver
[5] PN7220 MW: https://github.com/NXPNFCLinux/PN7220_Android13
Wigati babagan kode sumber ing dokumen kasebut
ExampKode sing ditampilake ing dokumen iki nduweni hak cipta lan lisensi BSD-3-Clause:
Hak Cipta 2023 NXP Distribusi lan digunakake ing sumber lan formulir binar, kanthi utawa tanpa modifikasi, diidini yen syarat-syarat ing ngisor iki dipenuhi:
- Distribusi ulang kode sumber kudu njaga kabar hak cipta ing ndhuwur, dhaptar kahanan iki lan wewaler ing ngisor iki.
- Distribusi ulang ing wangun binar kudu ngasilake kabar hak cipta ing ndhuwur, dhaptar kahanan iki lan wewaler ing ngisor iki ing dokumentasi lan / utawa bahan liyane kudu diwenehake karo distribusi kasebut.
- Jeneng sing duwe hak cipta utawa jeneng panganggo uga ora bisa digunakake kanggo nyengkuyung utawa promosi produk sing dijupuk saka piranti lunak iki tanpa ijin tertulis sadurunge.
SOFTWARE IKI DISEDIAKAN DENING SING nduwèni HAK CIPTA lan kontributor "AS IS" LAN ANY JAMINAN EXPRESS UTAWA TERSIRAT, Klebu, nanging ora winates kanggo, JAMINAN TERSIRAT saka MERCHANTABILITY lan FITNESS kanggo tujuan tartamtu. Ora ana sing nduwèni hak cipta utawa kontributor TANGGUNG JAWAB LANGSUNG, LANGSUNG, INCIDENTAL, KHUSUS, EXEMPLARY, UTAWA KERUSAKAN KONSEKUENSIAL (kalebu, nanging ora winates kanggo, pengadaan barang substitusi utawa layanan, layanan, layanan; UTAWA GANGGUAN BISNIS) Nanging nyebabake lan ing sembarang teori tanggung jawab, apa ing kontrak, TANGGUNG JAWAB STRICT, UTAWA TORT (kalebu teledor UTAWA liyane) njedhul ing sembarang cara metu saka nggunakake piranti lunak iki, sanajan saka saran saka saran.
Informasi hukum
8.1 Definisi
Draft - A status konsep ing document nuduhake yen isi isih ing re internalview lan tundhuk persetujuan resmi, sing bisa nyebabake modifikasi utawa tambahan. NXP Semiconductors ora menehi perwakilan utawa garansi babagan akurasi utawa kelengkapan informasi sing kalebu ing versi draf dokumen lan ora duwe tanggung jawab kanggo akibat saka panggunaan informasi kasebut.
8.2 Bantahan
Garansi lan tanggung jawab winates - Informasi ing dokumen iki dipercaya akurat lan dipercaya. Nanging, NXP Semiconductors ora menehi perwakilan utawa jaminan, sing ditulis utawa diwenehake, babagan akurasi utawa jangkep informasi kasebut lan ora duwe tanggung jawab kanggo akibat saka panggunaan informasi kasebut. NXP Semiconductors ora tanggung jawab kanggo isi ing dokumen iki yen diwenehake dening sumber informasi ing njaba NXP Semiconductors.
NXP Semiconductors ora bakal tanggung jawab kanggo karusakan ora langsung, insidental, punitive, khusus utawa konsekuensial (kalebu - tanpa watesan ilang bathi, ilang tabungan, gangguan bisnis, biaya sing ana gandhengane karo penghapusan utawa panggantos produk utawa biaya kerja ulang) ora karusakan kuwi adhedhasar tort (kalebu teledor), babar pisan, nerbitake kontrak utawa teori legal liyane.
Senadyan karusakan apa wae sing bisa ditindakake dening pelanggan kanthi alasan apa wae, tanggung jawab agregat lan kumulatif NXP Semikonduktor marang pelanggan kanggo produk sing diterangake ing kene bakal diwatesi miturut Katentuan lan kahanan adol komersial NXP Semikonduktor.
Hak kanggo nggawe owah-owahan - NXP Semiconductors nduweni hak kanggo ngowahi informasi sing diterbitake ing dokumen iki, kalebu tanpa watesan spesifikasi lan deskripsi produk, kapan wae lan tanpa kabar. Dokumen iki ngganti lan ngganti kabeh informasi sing diwenehake sadurunge diterbitake.
Cocog kanggo nggunakake - Produk NXP Semiconductors ora dirancang, sah utawa dijamin cocok kanggo digunakake ing dhukungan urip, sistem utawa peralatan sing kritis utawa safety-kritis, utawa ing aplikasi sing gagal utawa malfungsi produk NXP Semikonduktor bisa diduga nyebabake bundhas pribadi, pati utawa property abot utawa karusakan lingkungan. NXP Semikonduktor lan panyedhiya ora tanggung jawab kanggo kalebu lan/utawa nggunakake produk NXP Semikonduktor ing peralatan utawa aplikasi kasebut lan mulane kalebu lan/utawa panggunaan kasebut tanggung jawab kanggo pelanggan.
Aplikasi — Aplikasi sing diterangake ing kene kanggo samubarang produk iki mung kanggo ilustrasi. NXP Semiconductors ora menehi perwakilan utawa garansi manawa aplikasi kasebut cocog kanggo panggunaan sing ditemtokake tanpa tes utawa modifikasi luwih lanjut. Pelanggan tanggung jawab kanggo desain lan operasi aplikasi lan produk sing nggunakake produk NXP Semiconductors, lan NXP Semiconductors ora tanggung jawab kanggo bantuan karo aplikasi utawa desain produk pelanggan. Tanggung jawab tunggal pelanggan kanggo nemtokake manawa produk NXP Semiconductors cocok lan pas kanggo aplikasi lan produk sing direncanakake, uga kanggo aplikasi sing direncanakake lan panggunaan pelanggan pihak katelu. Pelanggan kudu menehi desain lan perlindungan operasi sing cocog kanggo nyuda risiko sing ana gandhengane karo aplikasi lan produk.
NXP Semiconductors ora nampa tanggung jawab sembarang related kanggo gawan sembarang, karusakan, biaya utawa masalah kang adhedhasar sembarang kekirangan utawa gawan ing aplikasi utawa produk customer, utawa aplikasi utawa digunakake dening customer pihak katelu (e). Pelanggan tanggung jawab kanggo nindakake kabeh tes sing dibutuhake kanggo aplikasi lan produk pelanggan nggunakake produk NXP Semiconductors supaya ora dadi standar aplikasi lan produk utawa aplikasi utawa digunakake dening pelanggan pihak katelu. NXP ora nanggung tanggung jawab babagan iki.
Sarat lan kahanan sale komersial - Produk NXP Semiconductors didol miturut syarat-syarat umum lan kahanan adol komersial, kaya sing diterbitake ing http://www.nxp.com/profile/terms, kajaba digunakake sarujuk ing persetujuan individu ditulis bener. Ing kasus persetujuan individu rampung mung syarat lan katemtuan saka persetujuan pamilike bakal ditrapake. NXP Semiconductors kanthi iki kanthi tegas mbantah kanggo ngetrapake syarat lan kahanan umum pelanggan babagan tuku produk NXP Semiconductors dening pelanggan.
Kontrol ekspor - Dokumen iki uga item (e) sing diterangake ing kene bisa uga tundhuk karo peraturan kontrol ekspor. Ekspor bisa uga mbutuhake wewenang sadurunge saka panguwasa sing kompeten.
Cocog kanggo digunakake ing produk qualified non-otomotif - Kajaba dokumen iki kanthi tegas nyatakake yen produk NXP Semiconductors khusus iki nduweni kualifikasi otomotif, produk kasebut ora cocok kanggo panggunaan otomotif. Ora qualified utawa dites sesuai karo tes otomotif utawa syarat aplikasi. NXP Semiconductors ora tanggung jawab kanggo inklusi lan / utawa nggunakake produk qualified non-otomotif ing peralatan utawa aplikasi otomotif.
Yen pelanggan nggunakake produk kanggo desain lan digunakake ing aplikasi otomotif kanggo spesifikasi lan standar otomotif, pelanggan (a) kudu nggunakake produk kasebut tanpa jaminan NXP Semikonduktor kanggo produk kasebut kanggo aplikasi, panggunaan lan spesifikasi otomotif kasebut, lan ( b) nalika pelanggan nggunakake produk kanggo aplikasi otomotif ngluwihi spesifikasi NXP Semikonduktor, panggunaan kasebut mung dadi resiko pelanggan dhewe, lan (c) pelanggan menehi ganti rugi kanthi lengkap NXP Semikonduktor kanggo tanggung jawab, kerusakan utawa klaim produk sing gagal amarga desain lan panggunaan pelanggan. produk kanggo aplikasi otomotif ngluwihi babar pisan standar NXP Semikonduktor lan spesifikasi produk NXP Semikonduktor.
Produk evaluasi - Produk iki diwenehake kanthi basis "kaya" lan "kanthi kabeh kesalahan" mung kanggo tujuan evaluasi. Semikonduktor NXP, afiliasi lan pemasoke kanthi tegas mbantah kabeh jaminan, manawa nyata, tersirat utawa statutori, kalebu nanging ora diwatesi karo jaminan sing ora ana pelanggaran, perdagangan lan kabugaran kanggo tujuan tartamtu. Kabeh risiko babagan kualitas, utawa sing muncul saka panggunaan utawa kinerja, produk iki tetep ana ing pelanggan.
Ing acara apa wae NXP Semikonduktor, afiliasi utawa pemasoke ora tanggung jawab marang pelanggan kanggo karusakan khusus, ora langsung, konsekuensial, punitive utawa insidental (kalebu tanpa watesan karusakan kanggo mundhut bisnis, gangguan bisnis, mundhut panggunaan, mundhut data utawa informasi. , lan liya-liyane) sing muncul saka panggunaan utawa ora bisa nggunakake produk kasebut, apa ora
adhedhasar tort (kalebu teledor), tanggung jawab sing ketat, nglanggar kontrak, nglanggar garansi utawa teori liyane, sanajan menehi saran babagan kemungkinan kerusakan kasebut. Senadyan karusakan apa wae sing bisa ditindakake dening pelanggan kanthi alasan apa wae (kalebu tanpa watesan, kabeh kerusakan sing kasebut ing ndhuwur lan kabeh kerusakan langsung utawa umum), kabeh tanggung jawab NXP Semiconductors, afiliasi lan pemasok lan obat eksklusif pelanggan kanggo kabeh kasebut ing ndhuwur kudu diwatesi kanggo kerusakan nyata sing ditindakake dening pelanggan adhedhasar ketergantungan sing cukup nganti luwih gedhe saka jumlah sing dibayar dening pelanggan kanggo produk kasebut utawa limang dolar (US$5.00). Watesan, pangecualian lan penafian kasebut bakal ditrapake nganti maksimal sing diidinake dening hukum sing ditrapake, sanajan ana obat sing gagal kanggo tujuan sing penting.
Terjemahan — Versi non-Inggris (diterjemahake) saka dokumen, kalebu informasi hukum ing dokumen kasebut, mung kanggo referensi. Versi Inggris bakal ditrapake yen ana bedo antarane versi terjemahan lan Inggris.
Keamanan — Pelanggan mangertos manawa kabeh produk NXP bisa ngalami kerentanan sing ora dingerteni utawa ndhukung standar keamanan utawa spesifikasi sing wis ditemtokake kanthi watesan sing dingerteni. Pelanggan tanggung jawab kanggo desain lan operasi aplikasi lan produk sajrone siklus urip kanggo nyuda efek saka kerentanan kasebut ing aplikasi lan produk pelanggan. Tanggung jawab pelanggan uga ngluwihi teknologi mbukak lan/utawa eksklusif liyane sing didhukung produk NXP kanggo digunakake ing aplikasi pelanggan. NXP ora tanggung jawab kanggo kerentanan apa wae. Pelanggan kudu rutin mriksa nganyari keamanan saka NXP lan tindakake kanthi tepat. Pelanggan kudu milih produk kanthi fitur keamanan sing paling cocog karo aturan, peraturan, lan standar aplikasi sing dituju lan nggawe keputusan desain sing paling penting babagan produk lan tanggung jawab mung kanggo netepi kabeh syarat legal, peraturan, lan keamanan babagan produke, preduli. informasi utawa dhukungan sing bisa diwenehake dening NXP.
NXP duwe Product Security Incident Response Team (PSIRT) (bisa digayuh ing PSIRT@nxp.com) sing ngatur investigasi, laporan, lan rilis solusi kanggo kerentanan keamanan produk NXP.
NXP BV – NXP BV dudu perusahaan operasi lan ora nyebarake utawa ngedol produk.
8.3 Lisensi
Tuku IC NXP kanthi teknologi NFC - Tuku IC Semikonduktor NXP sing tundhuk karo salah sawijining standar Near Field Communication (NFC) ISO / IEC 18092 lan ISO / IEC 21481 ora menehi lisensi sing diwenehake miturut hak paten sing dilanggar dening implementasine samubarang standar kasebut. Tuku NXP Semiconductors IC ora kalebu lisensi kanggo paten NXP (utawa hak IP liyane) sing kalebu kombinasi produk kasebut karo produk liyane, apa hardware utawa piranti lunak.
8.4 Merek dagang
Kabar: Kabeh merek sing dirujuk, jeneng produk, jeneng layanan, lan merek dagang minangka properti saka pamilike.
NXP — wordmark lan logo iku merek dagang saka NXP BV
EdgeVerse - minangka merek dagang saka NXP BV
i.MX - iku merek dagang saka NXP BV
I2C-bus — logo iku merek dagang saka NXP BV
Oracle lan Java - iku merek dagang kadhaptar saka Oracle lan / utawa afiliasi.
Wigati dimangerteni manawa kabar penting babagan dokumen iki lan produk sing diterangake ing kene, wis kalebu ing bagean 'Informasi hukum'.
© 2023 NXP BV
Kanggo informasi luwih lengkap, bukak: http://www.nxp.com
Kabeh hak dilindhungi undhang-undhang.
Tanggal rilis: 18 September 2023
Pengenal dokumen: AN13971
AN13971
Cathetan aplikasi
Kabeh informasi sing diwenehake ing dokumen iki tundhuk wewaler legal.
Wahyu 1.0 - 18 September 2023
© 2023 NXP BV Kabeh hak dilindhungi undhang-undhang.
Dokumen / Sumber Daya
![]() |
NXP PN7220 Compliant NFC Controller [pdf] Pandhuan pangguna PN7220 Compliant NFC Controller, PN7220, Compliant NFC Controller, NFC Controller, Kontroler |