i.MX Solutions Knowledge Base

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX Solutions Knowledge Base

Labels
  • General 294

Discussions

Sort by:
Measuring only 70mm by 55mm, the MYS-6ULX designed by MYIR is a high-performance low-cost Single Board Computer (SBC) specially designed for industry and Internet of Things (IoT) applications. It is based on NXP i.MX 6UL/6ULL processor family which features the most efficient ARM Cortex-A7 core and can operate at speeds up to 528 MHz. The MYS-6ULX Single Board Computer supports Yocto and Debian OS. Here we take Debian OS as an example.   The programming procedure:      Prepare an SD card. Open the image file of OS “mys6ull-debian8.rootfs.sdcard” with Win32Disk Imager, then program it into the SD card.      Power on the MYS-6ULX board. Insert the SD card to the slot, set the dip switch to 0101. Connect the serial port cable and USB power cable to the board, then power on the board.      Login in the system. The user name is root and the pass word is 123456. View the system information with command cat/etc/issue, the system version is Debian8 as shown below, which means the OS has been programmed into the SD card successfully. The develop environment I work on PC is Ubuntu VMS, ARMGCC compiler is needed to be installed in the Ubuntu VMS. We can check if the compiler is available with instruction arm-linux-gnueabihf-gcc–v. Ubuntu16 comes with a 5.4 version compiler as below: We need to install a compiler if the system doesn’t come with one. The toolkit MYIR provided contains that compiler. Open the folder 03-Tools\Toolchain, there is a package named “gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz”. Copy this package into a folder of VMS and use commands below to extract it. xz -dgcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz tar -xfgcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar We would have a file named gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf after unpacking, then use instruction below to set the compiler: export PATH= $PATH:$DEV_ROOT/\gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin exportCROSS_COMPILE=arm-linux-gnueabihfexport ARCH=arm View the compiler version again, the information printed on the screen should be: We can see the compiler version is 4.9.3. Then all the settings of develop environment has been completed.
View full article
Consult the Quick Start Board for SCM-i.MX 6DQ  PCB diagram , THANK YOU !!!
View full article
Hi NXP expert : Deaufult iMX8M apply 3GB DRAM density with the system, How to modify DRAM configration that could cutdowm density to 1GB DRAM ? 
View full article
e-con Systems announces the launch of eSOMiMX7 System on Module. The eSOMiMX7 is based on NXP/Freescale i.MX7 processor. eSOMiMX7 is a ready to use System-On-Module using Solo / Dual core ARM® Cortex™ A7 @ 1GHz along with dedicated real time ARM® Cortex™ - M4 MCU. It encompasses eMMC Flash whose capacity ranges from 4GB to 64GB, LPDDR3 with capacity as high as 2GB. To cater to the customer's demand of a small SOM for building IoT Applications, Industrial HMI, Test and Measurement, Industrial HMI, eBook Reader and  Wearables, eSOMiMX7 is launched with a small form factor of 55mm x30mm. eSOMiMX7 is an ultra-low power system on module which consumes only 3mA current during the deep sleep mode. eSOMiMX7 System-On-Module is available with latest Linux Kernel version v4.9.11, latest Yocto rootfs version 2.2 and Free RTOS version 8. Pricing and Availability: The eSOMiMX7 at volumes is available at USD34 onwards and samples can be bought from the Webstore. Evaluation kit: Customers  willing to evaluate the eSOMiMX7, can evaluate using the EVM, Acacia - eSOMiMX7 development kit from e-con Systems' Webstore.
View full article
以下代码摘抄自:uboot 2009源码中board/Freescale/mx6q_sabreauto/flash_header.S #include <config.h> #include <asm/arch/mx6.h> #ifdef CONFIG_FLASH_HEADER #ifndef CONFIG_FLASH_HEADER_OFFSET # error "Must define the offset of flash header" #endif #define CPU_2_BE_32(l) \ ((((l) & 0x000000FF) << 24) | \ (((l) & 0x0000FF00) << 😎 | \ (((l) & 0x00FF0000) >> 😎 | \ (((l) & 0xFF000000) >> 24)) #define MXC_DCD_ITEM(i, addr, val) \ dcd_node_##i: \ .word CPU_2_BE_32(addr) ; \ .word CPU_2_BE_32(val) ; \ .section ".text.flasheader", "x" b _start .org CONFIG_FLASH_HEADER_OFFSET ivt_header: .word 0x402000D1 /* Tag=0xD1, Len=0x0020, Ver=0x40 */ app_code_jump_v: .word _start reserv1: .word 0x0 dcd_ptr: .word dcd_hdr boot_data_ptr: .word boot_data self_ptr: .word ivt_header app_code_csf: .word 0x0 reserv2: .word 0x0 boot_data: .word TEXT_BASE image_len: .word _end_of_copy - TEXT_BASE + CONFIG_FLASH_HEADER_OFFSET plugin: .word 0x0 dcd_hdr: .word 0x40D802D2 /* Tag=0xD2, Len=90*8 + 4 + 4, Ver=0x40 */ write_dcd_cmd: .word 0x04D402CC /* Tag=0xCC, Len=90*8 + 4, Param=0x04 */ #include <config.h> #include <asm/arch/mx6.h> #ifdef CONFIG_FLASH_HEADER #ifndef CONFIG_FLASH_HEADER_OFFSET # error "Must define the offset of flash header" #endif #define CPU_2_BE_32(l) \ ((((l) & 0x000000FF) << 24) | \ (((l) & 0x0000FF00) << 😎 | \ (((l) & 0x00FF0000) >> 😎 | \ (((l) & 0xFF000000) >> 24)) #define MXC_DCD_ITEM(i, addr, val) \ dcd_node_##i: \ .word CPU_2_BE_32(addr) ; \ .word CPU_2_BE_32(val) ; \ .section ".text.flasheader", "x" b _start .org CONFIG_FLASH_HEADER_OFFSET ivt_header: .word 0x402000D1 /* Tag=0xD1, Len=0x0020, Ver=0x40 */ app_code_jump_v: .word _start reserv1: .word 0x0 dcd_ptr: .word dcd_hdr boot_data_ptr: .word boot_data self_ptr: .word ivt_header app_code_csf: .word 0x0 reserv2: .word 0x0 boot_data: .word TEXT_BASE image_len: .word _end_of_copy - TEXT_BASE + CONFIG_FLASH_HEADER_OFFSET plugin: .word 0x0 dcd_hdr: .word 0x40D802D2 /* Tag=0xD2, Len=90*8 + 4 + 4, Ver=0x40 */ write_dcd_cmd: .word 0x04D402CC /* Tag=0xCC, Len=90*8 + 4, Param=0x04 */ 我的疑问是上面代码标红的部分的意义是什么?确切的说,IMX6Q既然规定了IVT在不同的boot devices中的偏移地址,比如我的应用场景是emmc,偏移地址是0x400(1K),那么我的uboot镜像完全可以按照:IVT+uboot本体的格式来构建,这样一来当使用mfg工具烧写uboot镜像时就可以用以下的命令来执行: <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 ">write U-Boot to sd card</CMD> 而不是默认的命令(跳过uboot.bin前0x400的字节): <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD> 这样看,那么flash_header.S前面的0x400字节是不是多余的呢,还是有什么特别的用处,如果直接把这种uboot.bin烧写到emmc的0x400处(不跳过uboot.bin前0x400的字节,即b _start, .org CONFIG_FLASH_HEADER_OFFSET),那是不是就直接会调整到_start函数开始执行,而不会进行DCD相关的配置?
View full article
I have measured all voltages, reset signals and clocks. The circuit is a copy of the sabre board (but this is a dual core) and the warp7 dev.kit. (which I don't own and therefore cannot confirm works with the J-link) Using a Segger J-link and connecting as an unspecified Cortex-A7 which Segger support has told me to do, because the solo core version is not selectable in the device tree. The JTAG seems to work, as some information goes through. Running at 100 kHz. I have researched a lot without luck. The error is: "Failed to temporarily halting CPU for reading CP15 registers." ************************************************************************************************************* Output from J-link: SEGGER J-Link Commander V6.30b (Compiled Feb 2 2018 18:37:08) DLL version V6.30b, compiled Feb 2 2018 18:36:54 Connecting to J-Link via USB...O.K. Firmware: J-Link V9 compiled Feb 2 2018 18:12:38 Hardware version: V9.40 S/N: XXXXXXXXXX License(s): FlashBP, GDB OEM: XXXXXXXXXXX VTref = 1.796V Type "connect" to establish a target connection, '?' for help J-Link>connect Please specify device / core. <Default>: CORTEX-A7 Type '?' for selection dialog Device>? Please specify target interface: J) JTAG (Default) S) SWD TIF> Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect JTAGConf> Specify target interface speed [kHz]. <Default>: 4000 kHz Speed>100 Device "CORTEX-A7" selected. Connecting to target via JTAG TotalIRLen = 4, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP Scanning AP map to find all available APs AP[5]: Stopped AP scan as end of AP map has been reached AP[0]: AHB-AP (IDR: 0x64770001) AP[1]: APB-AP (IDR: 0x44770002) AP[2]: JTAG-AP (IDR: 0x24760010) AP[3]: JTAG-AP (IDR: 0x001C0030) AP[4]: AHB-AP (IDR: 0x24770011) Iterating through AP map to find AHB-AP to use AP[0]: Skipped. Not an APB-AP AP[1]: APB-AP found ROMTbl[0][0]: CompAddr: 80040000 CID: B105100D, PID:00-00080000 ROM Table ROMTbl[1][0]: CompAddr: 80041000 CID: B105900D, PID:04-002BB908 CSTF ROMTbl[1][1]: CompAddr: 80060000 CID: B105100D, PID:04-000BB4A7 ROM Table ROMTbl[2][0]: CompAddr: 80070000 CID: B105900D, PID:04-005BBC07 Cortex-A7 Found Cortex-A7 r0p5 6 code breakpoints, 4 data breakpoints Debug architecture ARMv7.1 TotalIRLen = 4, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP ****** Error: Cortex-A/R (connect): Failed to temporarily halting CPU for reading CP15 registers. TotalIRLen = 4, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP TotalIRLen = 4, IRPrint = 0x01 JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP Cannot connect to target. J-Link> ************************************************************************************************************* The log file from the J-link control panal: SEGGER J-Link V6.30b Log File DLL Compiled: Feb 2 2018 18:36:54 Logging started @ 2018-02-06 11:11 T1FAC 013:845 JLINK_Api_MRU_GetList()JLINK_DEVICE_GetIndex(sDeviceName = CORTEX-A7) returns 4 (0000ms, 0031ms total) T1FAC 014:613 JLINK_DEVICE_GetInfo(DeviceIndex = 4) returns 0 (0000ms, 0031ms total) T1FAC 015:788 JLINK_ConfigJTAG(IRPre = -1, DRPre = -1) (0000ms, 0031ms total) T1FAC 017:637 JLINK_ExecCommand("device=CORTEX-A7", ...). Device "CORTEX-A7" selected. returns 0x00 (0001ms, 0032ms total) T1FAC 017:638 JLINK_SetSpeed(100) (0000ms, 0032ms total) T1FAC 017:638 JLINK_EnableLog(...) (0000ms, 0032ms total) T1FAC 017:638 JLINK_GetEmuCaps() returns 0xB9FF7BBF (0000ms, 0032ms total) T1FAC 017:638 JLINK_TIF_GetAvailable(...) (0000ms, 0032ms total) T1FAC 017:638 JLINK_TIF_Select(JLINKARM_TIF_JTAG) returns 0x00 (0001ms, 0033ms total) T1FAC 017:639 JLINK_Connect() >0x2F8 JTAG>TotalIRLen = 4, IRPrint = 0x01 >0x30 JTAG> >0x30 JTAG>JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP >0x30 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG>Scanning AP map to find all available APs >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> AP[5]: Stopped AP scan as end of AP map has been reachedAP[0]: AHB-AP (IDR: 0x64770001)AP[1]: APB-AP (IDR: 0x44770002)AP[2]: JTAG-AP (IDR: 0x24760010)AP[3]: JTAG-AP (IDR: 0x001C0030)AP[4]: AHB-AP (IDR: 0x24770011)Iterating through AP map to find AHB-AP to useAP[0]: Skipped. Not an APB-APAP[1]: APB-AP found >0x78 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG>ROMTbl[0][0]: CompAddr: 80040000 CID: B105100D, PID:00-00080000 ROM Table >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG>ROMTbl[1][0]: CompAddr: 80041000 CID: B105900D, PID:04-002BB908 CSTF >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG>ROMTbl[1][1]: CompAddr: 80060000 CID: B105100D, PID:04-000BB4A7 ROM Table >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG>ROMTbl[2][0]: CompAddr: 80070000 CID: B105900D, PID:04-005BBC07 Cortex-A7 >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG>Found Cortex-A7 r0p56 code breakpoints, 4 data breakpointsDebug architecture ARMv7.1 >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x30 JTAG> >0x78 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x30 JTAG> >0x78 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x30 JTAG> >0x78 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x40 JTAG> >0x40 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> >0x30 JTAG> ***** Error: Cortex-A/R (connect): Failed to temporarily halting CPU for reading CP15 registers. >0x2F8 JTAG>TotalIRLen = 4, IRPrint = 0x01 >0x30 JTAG> >0x30 JTAG>JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP returns 0xFFFFFEFB (3253ms, 3286ms total) T1FAC 020:898 JLINK_GetIdData(...) >0x2F8 JTAG>TotalIRLen = 4, IRPrint = 0x01 >0x30 JTAG> >0x30 JTAG>JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP >0x2F8 JTAG>TotalIRLen = 4, IRPrint = 0x01 >0x30 JTAG> >0x30 JTAG>JTAG chain detection found 1 devices: #0 Id: 0x5BA00477, IRLen: 04, CoreSight JTAG-DP (0087ms, 3373ms total)
View full article
This document will explain Cairo setup to draw something on screen with hardware accelerates using OpenGL ES 2.0 or OpenVG.   Introduction:   As you know you can use those libraries that I mentioned (OpenGL ES and OpenVG) to draw on frame buffer with hardware accelerate on imx6q but using those libraries are a little bit hard to deal what I mean is that using OpenGL or OpenVG  is a kind of tough job but why? Let me bring an example here to clarify it, Imagine you want to draw an attitude aircraft symbol, this symbol needs some of elements to be drawn to look like a complete attitude symbol it includes: 1-Circle 2-line 3-Text 4-Triangle 5-some custom shapes for instance two L like lines that draw horizontally   If you have an experience with OpenGL specially OpenGL ES you’ll realize that drawing circle, line, triangle and so forth doesn’t a really tough job, of course drawing these primitive in OpenGL needs more lines of code in contrast with Cairo API that you can draw them with just three lines of code but the most hard job is drawing TEXT in OpenGL when you want to draw a simple text you have to deal with extra libraries like freetype,… to fetch the glyph features and then you can using atlas approach to draw text in a bitmap texture then when you need a character in your app  you can access to the character’s position in previous stored glyph in the texture, fetch and use, also you need to work with two specific OpenGL ES shaders in this case.   So I think it’s ok to use OpenGL or OpenVG to draw shapes if you are really skilled with those or if you looking for trouble! 😄 personally I prefer to use a high level API and then focus on other aspect of my application.   Compiling Cairo:   This document doesn’t intend to configure or compile Cairo, I’m sure that you can easily configure and compile it with OpenGL ES backend with YOCTO, Buildroot or any other embedded Linux distribution builders (YOCTO and Buildroot aren’t an embedded Linux distributions they can make custom one for you) even you can compile it manually.   To configure: ./configure --prefix=/home/super/Desktop/ROOTFS/MY_ROOTFS/usr --host=${CROSS_COMPILE} CFLAGS="-I/home/super/Desktop/ROOTFS/MY_ROOTFS/usr/include/ -DLINUX -DEGL_API_FB" LIBS="-L/home/super/Desktop/ROOTFS/MY_ROOTFS/usr/lib/ -lz" --enable-xlib=no --enable-egl --enable-glesv2   To compile: make     By the way you can find your suitable configuration for your own board; Cairo has a lot of options.     How to make surface for Cairo:   If you have an experience drawing shapes with Cairo you know that you need a surface from cairo_t* type to drawing function API can work on and shapes appear on the screen. To create a Cairo surface that uses OpenGL ES you have to configure EGL (EGL is an interface between Khronos rendering APIs (such as OpenGL, OpenGL ES or OpenVG) and the underlying native platform windowing system)[1] correctly and then make a Cairo surface from it.                    EGLint config_attributes[] =                 {                                                EGL_RENDERABLE_TYPE,                                                EGL_OPENGL_ES2_BIT,                                                EGL_RED_SIZE, 8,                                                EGL_GREEN_SIZE, 8,                                                EGL_BLUE_SIZE, 8,                                                EGL_ALPHA_SIZE,EGL_DONT_CARE,                                                EGL_SURFACE_TYPE,EGL_WINDOW_BIT,                                                EGL_DEPTH_SIZE, 16,                                                EGL_SAMPLES,      4,                                                EGL_NONE                 };   When you want to change OpenGL ES v 2.0 with OpenVG it’s enough that change the parameter of EGL_RENDERABLE_TYPE (that is EGL_OPENGL_ES2_BIT) to EGL_OPENVG_BIT.   The below code will appear Figure 1 on screen:     Figure 1:Simple drawing by Cairo on IMX6Q     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   //======================================================================== // Name        : testCairo.cpp // Author      : Ali Sarlak // Version     : 1.0 // Copyright   : GPL // Description : EGL+Cairo GLIB //========================================================================   #include <iostream> #include <stdio.h> #include <EGL/egl.h> #include <EGL/eglext.h> #include <EGL/eglplatform.h> #include <cairo/cairo-gl.h> #include <EGL/eglvivante.h> #include <stdlib.h>     #define DISPLAY_WIDTH 640 #define DISPLAY_HEIGHT 480 using namespace std;   int main() {     printf("START\n");     printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");     EGLContext eglContext;     EGLSurface eglSurface;     EGLBoolean resultB;       /* Get a display handle and initalize EGL */     EGLint major, minor;     EGLDisplay eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);       resultB = eglInitialize(eglDisplay, &major, &minor);       EGLint config_attributes[] =     {             EGL_RENDERABLE_TYPE,             EGL_OPENGL_ES2_BIT,             EGL_RED_SIZE, 8,             EGL_GREEN_SIZE, 8,             EGL_BLUE_SIZE, 8,             EGL_ALPHA_SIZE,EGL_DONT_CARE,             EGL_SURFACE_TYPE,EGL_WINDOW_BIT,             EGL_DEPTH_SIZE, 16,             EGL_SAMPLES,      4,             EGL_NONE     };       EGLint numberConfigs = 0;     EGLConfig* matchingConfigs=NULL;       if (EGL_FALSE             == eglChooseConfig(eglDisplay, config_attributes, NULL, 0, &numberConfigs))     {         printf("eglChooseConfig EROR\n");     }     if (numberConfigs == 0)     {         printf("eglChooseConfig EROR\n");     }       printf("number of configs = %d\n", numberConfigs);     /* Allocate some space to store list of matching configs... */     matchingConfigs = (EGLConfig*) malloc(numberConfigs * sizeof(EGLConfig));       if (EGL_FALSE  == eglChooseConfig(eglDisplay, config_attributes, matchingConfigs, numberConfigs, &numberConfigs))     {         printf("eglChooseConfig EROR\n");         if(matchingConfigs!=NULL)         {             free(matchingConfigs);             matchingConfigs=NULL;         }         return -1;     }       printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");       EGLint display_attributes[] =     {             EGL_WIDTH, DISPLAY_WIDTH,             EGL_HEIGHT, DISPLAY_HEIGHT,             EGL_NONE };       /*Window attributes*/     EGLint window_attribList[] =     {             EGL_NONE     };       EGLNativeDisplayType eglNativeDisplayType = fbGetDisplay(0);       EGLNativeWindowType eglNativeWindow = fbCreateWindow(eglNativeDisplayType,             0,             0,             DISPLAY_WIDTH,             DISPLAY_HEIGHT);       eglSurface = eglCreateWindowSurface(eglDisplay,matchingConfigs[0],eglNativeWindow,window_attribList);       if (eglSurface == EGL_NO_SURFACE)     {         printf("eglSurface = %x\n", eglGetError());     }       const EGLint attribListCtx[] =     {             // EGL_KHR_create_context is required             EGL_CONTEXT_CLIENT_VERSION, 2,             EGL_NONE     };       eglContext = eglCreateContext(eglDisplay, matchingConfigs[0], EGL_NO_CONTEXT,  attribListCtx);      //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     if (eglContext == EGL_NO_CONTEXT)     {         printf("eglContext = %x\n", eglGetError());         return -1;     }       cairo_device_t* cdt = cairo_egl_device_create(eglDisplay, eglContext);       eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext);       cairo_surface_t *surface = cairo_gl_surface_create_for_egl(cdt, eglSurface,             DISPLAY_WIDTH,DISPLAY_HEIGHT);         cairo_t *cr = nullptr;     cr = cairo_create(surface);     if(!cr)     {         printf("Wrong cairo_t!\n");         return -1;     }     //*********************************************************************************************     for (int index = 0; index < 1; ++index) {         cairo_set_source_rgb (cr, 0, 0, 0);           cairo_move_to (cr, 0, 0);         cairo_line_to (cr, 200, 200);         cairo_move_to (cr, 200, 0);         cairo_line_to (cr, 0, 200);         cairo_set_line_width (cr, 1);         cairo_stroke (cr);           cairo_rectangle (cr, 0, 0, 100,100);         cairo_set_source_rgba (cr, 1, 0, 0, 0.8);         cairo_fill (cr);          cairo_rectangle (cr, 0, 100, 100, 100);         cairo_set_source_rgba (cr, 0, 1, 0, 0.60);         cairo_fill (cr);          cairo_rectangle (cr, 100, 0, 100, 100);         cairo_set_source_rgba (cr, 0, 0, 1, 0.40);         cairo_fill (cr);          cairo_rectangle (cr, 100, 100, 100, 100);         cairo_set_source_rgba (cr, 1, 1, 0, 0.20);         cairo_fill (cr);          cairo_surface_flush(surface);         eglSwapBuffers(eglDisplay,eglSurface);     }       //to check that cairo can make the photo from the surface, png file created     cairo_status_t s = cairo_surface_write_to_png(surface, "surface.png");     //it is a photo that made by cairo [OK]     cairo_destroy(cr);      if (CAIRO_STATUS_SUCCESS == s)     {         printf("Status = OK \n");     }     else     {         printf("Status = ERROR <ERROR_CODE->%d>\n", s);     }      if(matchingConfigs!=NULL)     {         free(matchingConfigs);         matchingConfigs=NULL;     }       cairo_surface_destroy(surface);     printf("END!\n");     return 0; }     How To Be Sure That My Application Using GPU:   If you have a look at https://community.nxp.com/thread/324670 you can profile a graphical application and investigate if it uses GPU or not, also you can measure the performance and analyze the application by vAnalyzer.       According to the link I’ve mentioned that’s enough to set galcore.gpuProfiler=1 in uboot and then check the /sys/module/galcore/parameters/gpuProfiler   file (read the file by cat, vi, nano, etc.) if the output is 1 all things is done in a right way the final step is that exporting some environment variables :   export VIV_PROFILE=1 export VP_OUTPUT=sample.vpd export VP_FRAME_NUM=1000 export VP_SYNC_MODE=1   VIV_PROFILE[0,1,2,3], VP_OUTPUT[any string], VP_FRAME_NUM[1,N], VP_SYNC_MODE[0,1]   Note: VIV_PROFILE[0] Disable vProfiler (default), VIV_PROFILE [1] Enable vProfiler, VIV_PROFILE [2] Control via application call, VIV_PROFILE [3]Allows control over which frames to profile with vProfiler by VP_FRAME_START and VP_FRAME_END.     If application uses GPU smaple.vpd file will create if not there isn't any vpd file. [1] - https://www.khronos.org/egl
View full article
Are you looking to build a 3D video streaming & recording system that can be used in Stereo Dental Cameras, Obstacle Detection in Robotics, 3D Virtual tours, etc. Look no further, watch this demo of 3D video streaming & recording using Meissa, eSOMiMX6-micro RDK & Dual Cameras. eSOMiMX6-micro is a high performance micro system on module based on NXP/Freescale i.MX6 Quad/Dual Core ARM® Cortex™-A9 in an ultra-small form factor of 54mm x 20mm with just 10mA in suspend current. eSOMiMX6-micro System on Module also supports Wireless LAN and Bluetooth module. OS support – Linux, Android Marshmallow* (* – Under Development). Meissa, the powerful evaluation kit has the smallest carrier board in the industry; it’s just the size of a credit card. Try it and let us know your feedback.
View full article
(无显示点网页快照)QQ /微信963146376,办理国外毕业证成绩单,各国大学学历认证,实体公司高效办理,真实可靠,视频认证,安全无忧! 主营业务一,快速办理高仿毕业证成绩单: 1,毕业证+成绩单+留学回国人员证明+教育部学历认证(全套留学回国必备证明材料,给父母及亲朋好友一份完美交代); 2,雅思,托福,OFFER,在读证明,学生卡等留学相关材料(申请学校,转学,甚至是申请工签都可以用到)。 注:上述高仿材料,随时都可以安排办理,毕业证成绩单,学校,专业,学位,毕业时间都可以根据客户要求安排。 办理流程: 1,收集客户办理信息; 2,客户付定金下单; 3,公司确认到账转制作点做电子图;电子图做好发给客户确认; 5,电子图确认好转成品部做成品; 6,成品做好拍照或者视频确认再付余款; 7,快递给客户(国内顺丰,国外DHL)。 主营业务二,真实教育部学历认证 1,教育部学历学位认证,留服官网真实存档可查,永久存档。 2,留学回国人员证明(使馆认证),使馆网站真实存档可查。 办理流程 客户提供相关材料,确定客户办理信息,给出最佳操作方案; 2,补充毕业证成绩单等相关材料; 3,留服官网注册申请账号,付定金; 4,预约递交时间,公司人员陪同客户本人一起去留服递交材料; 5,等待结果,完成结果书留服直接邮寄给客户 6,客户确认收到结果,付余款。 客服微信:963146376 QQ:963146376 澳洲Monash毕业证修改成绩单莫纳什大学毕业证@微Q:963146376留信网认证办理莫大、Monash莫纳什大学假文凭、Monash University 办澳洲Monash毕业证修改成绩单莫纳什大学毕业证@微Q:963146376留信网认证办理莫大、Monash莫纳什大学假文凭、Monash University 办澳洲Monash毕业证修改成绩单莫纳什大学毕业证@微Q:963146376留信网认证办理莫大、Monash莫纳什大学假文凭、Monash University 办澳洲Monash毕业证修改成绩单莫纳什大学毕业证@微Q:963146376留信网认证办理莫大、Monash莫纳什大学假文凭、Monash University
View full article
Bitcoin is a cryptocurrency which is quite popular among many investors, tech enthusiasts, and some digital sellers/buyers due to its flexible, anonymous and robust nature.  BFG Miner is a bitcoin miner which has the ability to mine bitcoins on a range of devices from ASIC, to FPGA, to GPU, to obsolete CPU systems. This article will guide you step by step to do bitcoin mining on a i.MX8x platform by using the bfgminer. 1) Download the necessary software. bfgminer https://github.com/luke-jr/bfgminer.git jansson https://github.com/akheron/jansson.git uthash https://github.com/troydhanson/uthash.git 2) Cross compile the software: bfgminer: ./configure --prefix=${YourDirectory} --host=aarch64-linux-gnu --enable-scrypt --enable-cpumining --without-libevent --without-libmicrohttpd make jansson ./configure --prefix=${YourDirectory} --host=aarch64-linux-gnu make If everything runs correctly, you should get the following binaries and libraries: Ubuntu14:/opt/output$ ls -R .: bin include lib sbin share ./bin: bfgminer bfgminer-rpc start-bfgminer.sh ./include: jansson_config.h jansson.h libbase58.h libblkmaker-0.1## ./include/libblkmaker-0.1: blkmaker.h blkmaker_jansson.h blktemplate.h ./lib: libbase58.la libbase58.so.0 libblkmaker-0.1.la libblkmaker-0.1.so.6 libblkmaker_jansson-0.1.la libblkmaker_jansson-0.1.so.6 libjansson.a libjansson.so libjansson.so.4.10.0 libbase58.so libbase58.so.0.0.2 libblkmaker-0.1.so libblkmaker-0.1.so.6.1.0 libblkmaker_jansson-0.1.so libblkmaker_jansson-0.1.so.6.1.0 libjansson.la libjansson.so.4 pkgconfig 3) Install those binaries and libraries onto the i.MX8x target filesystem under directory /usr/bin and /usr/lib. Run the following command to start mining: #bfgminer -o stratum+tcp://us.ss.btc.com:1800 -u nxa001.001 -p ""  
View full article
On mid Oct 2017, researchers revealed details of a new exploit called KRACK that takes advantage of vulnerabilities in Wi-Fi security to let attackers eavesdrop on traffic between computers and wireless access points.It takes advantage of several key management vulnerabilities in the WPA2 security protocol, the popular authentication scheme used to protect personal and enterprise Wi-Fi networks. Google has already fixed the problem for customers running supported versions of Android version 5,6,7 and 8. The formal patches has already released in 2017-11-06 security patch. The URL is:    Android Security Bulletin—November 2017    And these patches are listed in  chapter 2017-11-06 security patch, System section. Please all i.mx series devices that use the security patch level  earlier than 2017-11-06 must include all applicable patches to fix this wifi vulnerability on Android. Here these patch has been applied for imx Android mm6.0 and ng7.0 release, to avoid this wifi vulnerability, it is recommended to have these patches in this attach applied, which should be applied to external/wpa_supplicant_8.
View full article
Open Multimedia UI Composition Engine and Platform   Build custom digital signs, video walls, touch-kiosks and 3D GUIs on the i.MX6 quickly. Lightwing is a scriptable composition and presentation engine for rapidly deploying custom digital signs, interactive touch-kiosks and 3D GUIs on  hardware from many i.MX6 board vendors including the Wandboard Quad, SolidRun Hummingboard and Advantech. Lightwing combines animated 3D objects, audio, video, text, touch controls, live RSS feeds and other dynamic data from the web. Content development and deployment is done using best-in-class open-source tools like ffmpeg, Blender, Notepad++, OpenSSH and WinSCP. Lightwing delivers stunning, high-motion native 3D that grabs attention plus animated text, audio, video, JPEG, PNG images, shader effects and live web content – all without the complexity of web browsers, JavaScript, CSS, HTML5 or Adobe Flash. Lightwing runs on both Windows and Linux. Content is developed on Windows, then deployed to low-cost i.MX6 Linux players over a local network or over the web using secure OpenSSH. Lightwing enables you to directly exploit the GPU and VPU accelerators on the i.MX6 through OpenGL ES 2.0, without the bloat and months of development time required for Qt, Android and browser platforms. Features Native 3D, Images, Audio, Video and Animated Text Built-in Page Transitions, Animations, Fonts and Effects Dynamic Web RSS Feeds and CSV Data Over 100 Image, Video and Font Shader Effects Automatic Content Scaling and Rotation for Display Size Best-in-Class Open Tools – Blender, ffmpeg, WinSCP, etc. Highly Secure Remote Access via OpenSSH Multi-Touch Swipe, Pinch, Zoom and Rotate Gestures Touch Toggle Buttons and Tracking Controls Yocto Open Embedded Linux – Kernel 4.1.15 Highly Portable and Lightweight C++ Applications Digital Signs Interactive Touch-Kiosks Video Walls RSS News Displays Custom 3D GUIs Automotive HMI Lightwing is available on bootable MicroSD cards for individuals and schools and volume licensing for business partners for deployment world-wide. Let’s disrupt your industry! For more information: https://montgomery1.com/lightwing/ 
View full article
Airbus connected factory to shorten Time To Market, Remy’s Martin connected bottle to avoid counterfeit, Schlindler’s elevator smart sensors to improve security, Cisco-IBM connected port in Colombia to enable predictive maintenance, these are some successful examples of B2B IoT creating value and business, and there are many more to come. MACKINSEY ASSESS THAT 70% OF POTENTIAL VALUE ENABLED BY IOT SHOULD COME FROM B2B! McKinsey Global Institute – “The internet of Things: mapping the value beyond the hype” – June 2015 A growing number of companies understand the potential of IoT for B2B markets and its trillions dollars’ revenue expected in 2020 (from 3 to 20 depending on sources and studies). That said, you don’t develop a bluetooth key ring the same way as a sensor designed to monitor temperature in a hot caustic reactor lost in the middle of nowhere and requiring 99,9% availability. While B2C IoT main challenges will remain business application and datamining, B2B brings an additional complexity to the device and its direct environment (gateway, other IoT devices, IT, etc). That is why we make a distinction between the “sexy” IoT focused on B2C and its challenges (marketing, business model, retention, etc.) and what we call the “serious IoT” which is more related to industrial and B2B stakes. This article is the first of a series where I aim to describe the whole process of IoT project development, from a business point of view as well as a technical point of view I will start with this first article by giving what I believe is the best methodology to start a BtoB or Industrial IoT project.   What are the challenges of serious IoT? What are the key success factors to launch a product? What to begin with and which steps to follow? THE FOUR PILARS TO SUCCEED IN AN IoT PROJECT Before I dig into the process to follow, let’s share some key success factors that I’ve identified in all the IoT projects I’ve seen and run: Design thinking As IoT is “hype”, many companies want IoT to launch a project and forget that simple saying: “no pain, no gain”. If there is no pain to be addressed with the project, it will certainly end up in the archive box of the data room. Design thinking allows to have a consumer-centric approach at each stage of the development and ensures your project/product relieves pain, brings a benefit for the customer (even if customer is internal). Master a wide range of technologies MacKinsey assess that system interoperability represent 40% of the potential value of IoT revenue. The “inter” of interoperability means that companies would need partners mastering many different technologies to have all layers/devices work together. In the embedded/IoT world, this can easily exceed 50 technologies (HW architectures, OS, radio & network protocols, frameworks, applications, etc.).  So the success of an IoT project, and more widely of an embedded project, is moving from a technical “silo” expertise to a system approach coupled with technical expertise. Designing the device itself also requires a wide range of expertise and a system approach to optimize the whole system based on business application requirements. Reliable partners (either for technologies or distribution channel) This is often called ‘open innovation’, a term that can freak out CEOs or CTOs. It is simply the fact that you build your project involving partners at each stage to create more value.  As IoT impacts every single bloc of the business model (distribution channel, revenue mode, communication, key activities, key resources, etc.), not a single company can have every related asset internally. So finding the right partners, and sharing value with them, is key to manage and roll-out the project Agile approach This is another “buzz” word. But it is not so obvious for companies not coming from the software industry or coming with a pure embedded software mindset and its 'waterfall approach'. IoT sees many new comers discovering the software challenges, and trying to apply their regular development processes (V cycle for example) to the IoT project. That is the best way to burn it in endless discussions on product scope, spend a lot of money on redeveloping things, and delaying your project launch forever. WHERE AND HOW TO START YOUR IoT PROJECT? Now you’re thinking: “Hmm, interesting, thanks Mr Consultant for this completely un-operational advice. But that doesn’t help me to start”. Don’t you leave now, here is the practical part! These are the first steps to follow when you want to manage an IoT project: 1. START WITH ''WHY'' As Simon Sinek would say, you’d better start with the “why” before launching any useless project. So, why do I want to launch an IoT project? Do I want to launch something that makes my company look trendy and innovative? Do I want to save cost by optimizing my business processes (maintenance, operation, production, etc.)? Do I want to enable new business models into my company offer, thanks to the IoT opportunities (renting vs selling, data value, new services, service vs product, etc.)? Do I want incremental innovation to refresh some of my products? Do I want to use the project as a Trojan horse to digitalize my company? Over the past few years, I have seen all of these motivations among management teams, and all of them are fine. But, you cannot pursue all those goals at the same time, and you certainly won’t design the same project depending on the choice you make. As we say in French “choisir, c’est renoncer” which would translate into something like “Choosing is giving up”. So take time to clearly state your motivations and then select one that needs to guide your focus in the coming months. 2. DESIGN USE CASES AND MAKE ASSUMPTIONS  Easier said than done, but first forget about technology/product, and just think about what IoT could allow in your environment and to which customer this could be most valuable. Draw several customer “journeys” and see where innovation could be used as painkiller or gain creator. Let’s take the example of a maintenance scenario. The idea is the allow remote action for on field devices. For instance, coffee machines installed into gas stations all over Europe. In that case, ask yourself how IoT could make maintenance more efficient? Try to assess time gain, money gain, and security gain and quantify it. Let’s say you identified that among 1000 machines installed, you have a high chance of having 5 customer claims per week and therefore 5 diagnosis to be done per week. Can IoT help you run the diagnosis remotely? Can IoT help you solve the problem remotely? In that case, will that save all on site trips? How much money would that save for the company operating the machines? Knowing that, you can start building a first draft of business models making assumptions: how much of that value can you take? What is the business model you can build around that? How much will it affect your customer process? Have you got the right distribution channel to sell this new offer? Which key assets and activities would you need to bridge the gap between current status and this innovation? 3. GET OUT THE BUILDING Use cases and key assumptions in your pocket, you will now need to go and meet potential customers and partners. The more you share, the more your project will evolve to a credible scenario. Who in your existing base can be your early adopters? Who are your customer having the pain you ease at the highest level (and it is even better if they try to solve it themselves with a workaround). In our example of remote maintenance, they would have some artisanal webcam system on each site to see the machine state and detect some issues without any on-site intervention. Once you’ve identified 5 to 10 contacts, go out and meet them, and try to understand several things : the high level stakes, the problem they have on the field, the way they have tried to solve it, the change process and stakeholder, and then (and only then) you can present your innovation and collect feedbacks. A few slides are enough to present. There is no need for a prototype or any bigger investment. You will be amazed on the quantity of information you can collect that way. And remember something: don’t listen to what people say, look at (or try to understand) what they actually do. 4. BUSINESS MODEL AND FUNCTIONAL SPECIFICATIONS You had your first iteration, congratulations! You wrote down assumptions, you went on the ground to test them, and you collected valuable insights from your targeted customers. Maybe your assumptions proved fully wrong, then go back to stage 2! Otherwise, lucky you, you can write down a v1 of the business model and define your product functional specifications better. This is where you can start defining features, functionalities, prices, offers, channels, technical constraints, cost, financial figures, etc. At the end of this stage you will have some kind of a business plan, a sales pitch, functional specifications, and maybe even technical specifications for your IoT project. 5. POC, POC, POC  That is one of the hardest part of any innovative project: build a Proof Of Concept and test it. Questions are: what are the key features/attributes that I need to test to prove that my concept makes sense for customers? How can I do that as cheap as possible in order to keep my budget for the real product? You’ll need to be very smart, or pay some smart provider, to be able to degrade your end vision so much to just keep the key attributes you want to test. If we go back to the remote maintenance example, can you build some basic software on a Raspberry Pie Board connected to the machine, coupled with a basic web interface that give critical information on the machine, for instance power consumption, run time, temperature, etc. Even if the final product won’t be using raspberry, if you want the web interface to be embedded into an app, and if you want to have twice as much indicators, just focus on the key elements. And test. Doing so, you’ll allow your customer to see real progress, to feel involved in the development process, and to influence the final outcome. And on your side you will collect key information that would take months or even years to collect if you had done it on the real product. A Proof Of Concept can be a functional prototype, or a design prototype, or both. That is pretty much depending on the project and again on the key attributes/functionalities you want to test. 6. ANOTHER LOOP TO COME Congratulation, you’ve made another loop. You are about to become expert in so called “iterative development”! If you don’t feel so, don’t worry as you’ll have many other loops following the same process: make assumptions, test, measure, learn, adjust and make new assumptions, test, measure … Each loop will allow you to adjust the business model, the functional specifications, the customer engagement and go further into your product development. The complete ''Lean startup process'' The key is to keep in mind that your goal here is not to have the perfect product. It is just to be able to learn as much as possible in each loop while spending as less as possible. Make as many loops as you can until you reach a satisfying v1 product brief. But that is for chapter 2… Originally Written on WITEKIO Technical Blog by Samir Bounab, Chief Sales Officer, WITEKIO 15 September 2017
View full article
NXP i.MX7 CPU, dual-core Cortex-A7 1GHz Up to 2GB DDR3 and 32GB eMMC 3G/LTE modem, WiFi 802.11a/b/g/n, BT 4.1 2x 1000Mbps Ethernet, 4x USB2, RS485, RS232 Support for PoE powered mode Fanless design in aluminum, rugged housing Miniature size – 10.8 x 8.3 x 2.4 cm Designed for reliability and 24/7 operation Wide temperature range of -40C to 85C Mainline Linux kernel and full Linux BPS IOT-GATE-iMX7 is built around the NXP i.MX7 System-on-Chip featuring an advanced ARM Cortex-A7 CPU coupled with a dedicated real-time ARM Cortex-M4 MCU. The SoC is supplemented with up-to 2GB DDR3 and 32GB of on-board eMMC storage.   Featuring a wide range of embedded interfaces, IOT-GATE-iMX7 is a versatile platform for industrial automation and control systems. Dual Gbit Ethernet, 3G/LTE modem, dual-band 802.11a/b/g/n WiFi and Bluetooth 4.1 make IOT-GATE-iMX7 an excellent solution for networking, communications and IoT applications.   IOT-GATE-iMX7 is provided with a full Board Support Package and ready-to-run images for the Linux operating system. The IOT-GATE-iMX7 BSP includes Linux kernel 4.1.15, Yocto Project file-system and U-Boot boot-loader. In addition, CompuLab will support IOT-GATE-iMX7 with mainline Linux and upstream Yocto Project. IOT-GATE-iMX7 spec IOT-GATE-iMX7 evaluation kit IOT-GATE-iMX7 pricing
View full article
Hi freescale, For using platform I.MX6QP and Android 6.0.1, test camera format is failed in CTSV R13. CTSV need to test format N21, YV12, YUY2,(160x120, 176x144, 320x180, 320x240, ...,640x480). Question list : (1.) It test YUY2 format is failed for handing preview screen was show green screen. For logcat issue log: 01-18 03:10:50.856 221 1252 E imx6.gralloc: int GPUBufferManager::lockYUVHandle(private_handle_t*, android_ycbcr*) not support format:0x14 01-18 03:10:50.856 221 1252 W GraphicBufferMapper: lock(...) failed -22 (Invalid argument) 01-18 03:10:50.892 221 311 E FslCameraHAL: processBufferWithIPU:320, IPU_CHECK_TASK ret=12 01-18 03:10:50.892 221 1252 E imx6.gralloc: int GPUBufferManager::lockYUVHandle(private_handle_t*, android_ycbcr*) not support format:0x14 01-18 03:10:50.892 221 1252 W GraphicBufferMapper: lock(...) failed -22 (Invalid argument) 01-18 03:10:50.924 221 311 E FslCameraHAL: processBufferWithIPU:320, IPU_CHECK_TASK ret=12 01-18 03:10:50.924 221 1252 E imx6.gralloc: int GPUBufferManager::lockYUVHandle(private_handle_t*, android_ycbcr*) For failed status: Test_fail_picture (2.) For test YV12 , 424X240, the result is failed. Logcat failed log: 01-18 03:29:51.547 1213 1229 D OpenGLRenderer: endAllStagingAnimators on 0x917f0700 (ListPopupWindow$DropDownListView) with handle 0x92564f30 01-18 03:29:51.637 221 1259 I FslCameraHAL: Stream::Stream(int, camera3_stream_t*, Camera*) create preview stream 01-18 03:29:51.637 221 1259 I FslCameraHAL: stream: w:424, h:240, format:0x103, usage:0x8000302, buffers:3 01-18 03:29:51.637 221 1259 I FslCameraHAL: create callback stream 01-18 03:29:51.637 221 1259 I FslCameraHAL: stream: w:424, h:240, format:0x101, usage:0x8000303, buffers:3 01-18 03:29:51.650 221 1325 I FslCameraHAL: int32_t VideoStream::configure(android::sp<Stream>): w:160, h:120, sensor format:0x14, stream format:0x103, fps:15, num:3 01-18 03:29:51.651 221 311 I FslCameraHAL: virtual int32_t UvcDevice::UvcStream::onDeviceStopLocked() 01-18 03:29:51.664 221 311 I FslCameraHAL: virtual int32_t DMAStream::freeBuffersLocked() 01-18 03:29:51.664 221 311 I FslCameraHAL: freeBufferToIon buffer num:3 01-18 03:29:51.664 221 311 I FslCameraHAL: virtual int32_t UvcDevice::UvcStream::onDeviceConfigureLocked() 01-18 03:29:51.664 221 311 I FslCameraHAL: virtual int32_t DMAStream::onDeviceConfigureLocked() 01-18 03:29:51.664 221 311 I FslCameraHAL: virtual int32_t USPStream::onDeviceConfigureLocked() 01-18 03:29:51.664 221 311 I FslCameraHAL: virtual int32_t MMAPStream::onDeviceConfigureLocked() 01-18 03:29:51.664 221 311 I FslCameraHAL: Width * Height 424 x 240 format YUYV, fps: 15 01-18 03:29:51.664 221 311 E FslCameraHAL: width:424 height:240 is not supported. 01-18 03:29:51.694 221 311 I FslCameraHAL: virtual int32_t DMAStream::allocateBuffersLocked() 01-18 03:29:51.694 221 311 I FslCameraHAL: allocateBufferFromIon buffer num:3 01-18 03:29:51.696 221 311 I FslCameraHAL: phyalloc ptr:0xa9b8d000, phy:0x26180000, ionSize:208896 01-18 03:29:51.698 221 311 I FslCameraHAL: phyalloc ptr:0xa9b21000, phy:0x261c0000, ionSize:208896 01-18 03:29:51.701 221 311 I FslCameraHAL: phyalloc ptr:0xa9aee000, phy:0x26200000, ionSize:208896 01-18 03:29:51.701 221 311 I FslCameraHAL: virtual int32_t UvcDevice::UvcStream::onDeviceStartLocked() 01-18 03:29:51.701 221 311 I FslCameraHAL: buf[0] length:203520 01-18 03:29:51.701 221 311 I FslCameraHAL: buf[1] length:203520 01-18 03:29:51.701 221 311 I FslCameraHAL: buf[2] length:203520 Fail Piture: YV12_test_fail For freescale camera HAL description ./hardware/imx/mx6/libcamera3/CameraHAL.cpp /* Hardware limitation on I.MX6DQ platform * VPU only support NV12&I420 format. * IPU doesn't support NV21 format. * But android framework requires NV21&YV12 format support. * YV12&I420 Y/UV stride doesn't match between android framework and IPU/GPU. ** Android YV12&I420 define: * - a horizontal stride multiple of 16 pixels * - a vertical stride equal to the height * - y_size = stride * height * - c_stride = ALIGN(stride/2, 16) * ** GPU YV12&I420 limitation: * - GPU limit Y stride to be 32 alignment, and UV stride 16 alignment. * ** IPU hardware YV12&I420 limitation: * - IPU limit the Y stride to be 2x of the UV stride alignment. ** IPU driver YV12&I420 define: * - y_stride = width * - uv_stride = y_stride / 2; * So there is work around to treat the format on I.MX6DQ platform: * Change format NV21&YV12 to NV12&I420 in Camera framework. * The NV21 format required by CTS is treated as NV12. * YUV alignment required by CTS doesn't match on I.MX6DQ platform. */ How to fix the issue in IMX6qp for CTSV?
View full article
Dear,   Now we could use USB port for program downloading, do we have serial port download tools for i.mx6UL? For Jlink tools, now it could start running with Jlink, but after power off and power on, the target will not start. Do you have the image which could download to QSPI norflash by Jlink, and after power on, the target board could running.
View full article
We are delighted to announce the launch of a very special Micro SOM, eSOMiMX6-micro. This high performance system on module is based on NXP i.MX6 Quad/Dual ARM Cortex-A9 Processor. Meissa-I, the evaluation kit for this iMX6 Micro SOM is also the smallest RDK in the industry. The customer who wanted a low power micro SOM for building their ultra-compact devices like Wearables, Medical Imaging, Handhelds etc, we have our eSOMiMX6-micro system on module which based on NXP i.MX6 Quad/Dual Core ARM Cortex-A9 processor in a small form factor of 54mm x 20mm with 10mA in suspend current. eSOMiMX6-micro: iMX6 Micro System-on-Module To get more details on this product, please visit: https://www.e-consystems.com/iMX6-micro-som-system-on-module.asp
View full article