안녕하세요.

PLC 읽어보기 작업 후 오랫만에 다시 포스팅 합니다.

Mitsubishi, Omron PLC 읽어보기가 마무리 안됐는데 시간되면 작업해서 포스팅할 예정입니다. 

이번에 작업한 내용은 위즈네트 W5500 칩과 ESP32-WROOM 모듈을 이용하여 이더넷 연결을 해 보았습니다.

W5500 칩을 MACRAW 모드로 사용했기에 ESPRESSIF사의 개발플랫폼인 IDF(IoT Development Framework)에 있는 다양한 프로토콜 예제들을 모두 Reuse할 수 있다는 장점이 있으니 한번씩 살펴보시기 바랍니다.

Device Type : IoT Gateway

Spe                                                   Specificationcification
Processor Tensilica dual-core Xtensa® 32-bit LX6 MCU
Crystal 40 MHz
ROM 448 KB
RAM 520 KB
QSPI flash/SRAM 4 MB
Ethernet WIZnet W5500
10/100 Ethernet MACRAW Mode
User Input Boot Button / Reset Button
Connectivity WiFi, BLE
IO GPIO 20 pins connector with all ESP32 ports
Protocol Built-in programmer for ESP-IDF and Arduino
Operating Voltage 3.3V
Input Voltage 2.7~5.5V
Dimension(mm)/Weight TBD

Result :

W5500+ESP32 SDK

다음 회부터 IDF 개발환경 셋업, 보드 구성, 소스 작업의 순으로 포스팅할 예정이니 기대해 주시기 바랍니다.

Contents

-. Build : WizFi630A 개발환경 구축

-. Upgrade : TFTP 활용


Upgrade : TFTP 활용

WizFi630A in OpenWrt

>> 참조 링크

https://wiki.openwrt.org/toh/wiznet/wiznet_wizfi630a

>> tftp 설치

>> /etc/xinetd.d/tftp 파일 생성 및 수정

>> tftp root 디렉토리 생성 및 서비스 실행

>> Upgrade binary 복사


>> Upgrade log

U-Boot 1.1.3 (Mar  1 2016 - 13:35:45)                                           

                                                                                

Board: Ralink APSoC DRAM:                                                       

 Return Real size =33554432 !!                                                  

32 MB                                                                           

relocate_code Pointer at: 81fb4000                                              

******************************                                                  

Software System Reset Occurred                                                  

******************************                                                  

spi_wait_nsec: 21                                                               

spi device id: ef 40 18 0 0 (40180000)                                          

find flash: W25Q128FV                                                           

raspi_read: from:30000 len:1000                                                 

.raspi_read: from:30000 len:1000                                                

.============================================                                   

Ralink UBoot Version: 3.5.0.0                                                   

--------------------------------------------                                    

ASIC 5350_MP (Port5<->None)                                                     

DRAM_CONF_FROM: Boot-Strapping                                                  

DRAM_TYPE: SDRAM                                                                

DRAM_SIZE: 256 Mbits                                                            

DRAM_WIDTH: 16 bits                                                             

DRAM_TOTAL_WIDTH: 16 bits                                                       

TOTAL_MEMORY_SIZE: 32 MBytes                                                    

Flash component: SPI Flash                                                      

Date:Mar  1 2016  Time:13:35:45                                                 

============================================                                    

icache: sets:256, ways:4, linesz:32 ,total:32768                                

dcache: sets:128, ways:4, linesz:32 ,total:16384                                

                                                                                

 ##### The CPU freq = 360 MHZ ####                                              

 estimate memory size =32 Mbytes                                                

                                                                                

Please choose the operation:                                                    

   1: Load system code to SDRAM via TFTP.                                       

   2: Load system code then write to Flash via TFTP.                            

   3: Boot system code via Flash (default).                                     

   4: Entr boot command line interface.                                         

   7: Load Boot Loader code then write to Flash via Serial.                     

   9: Load Boot Loader code then write to Flash via TFTP.                       

                                                                                

You choosed 2  <<= 2번선택                                                                   

                                                                                

 0                                                                              

raspi_read: from:40028 len:6                                                    

.                                                                               

                                                                                

2: System Load Linux Kernel then write to Flash via TFTP.                       

 Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)           

 Please Input new ones /or Ctrl-C to discard                                    

        Input device IP (10.10.10.123) ==:192.168.0.20  <<= 임의 IP 할당                          

        Input server IP (10.10.10.3) ==:192.168.0.2  <<= tftp서버 IP 입력                                

        Input Linux Kernel filename () ==:wizfi630a.bin  <<= 복사된 binary 파일명 입력                         

                                                                                

 netboot_common, argc= 3                                                        

                                                                                

 NetTxPacket = 0x81FE5F40                                                       

                                                                                

 KSEG1ADDR(NetTxPacket) = 0xA1FE5F40                                            

                                                                                

 NetLoop,call eth_halt !                                                        

                                                                                

 NetLoop,call eth_init !                                                        

Trying Eth0 (10/100-M)                                                          

                                                                                

 Waitting for RX_DMA_BUSY status Start... done                                  

                                                                                

                                                                                

 Header Payload scatter function is Disable !!                                  

                                                                                

 ETH_STATE_ACTIVE!!                                                             

Using Eth0 (10/100-M) device                                                    

TFTP from server 192.168.0.2; our IP address is 192.168.0.20                    

Filename 'wizfi630a.bin'.                                                       

                                                                                

 TIMEOUT_COUNT=10,Load address: 0x80100000                                      

Loading: *                                                                      

ArpTimeoutCheck                                                                 

T T T T Got ARP REPLY, set server/gtwy eth addr (bc:5f:f4:da:9c:bb)             

Got it                                                                          

#################################################################               

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         #################################################################      

         ########################################                               

done                                                                            

Bytes transferred = 4194308 (400004 hex)                                        

NetBootFileXferSize= 00400004                                                   

raspi_erase_write: offs:50000, count:400004                                     

raspi_erase: offs:50000 len:400000                                              

................................................................                

raspi_write: to:50000 len:400000                                                

................................................................                

raspi_read: from:50000 len:10000                                                

.raspi_read: from:60000 len:10000                                               

.raspi_read: from:70000 len:10000                                               

.raspi_read: from:80000 len:10000                                               

.raspi_read: from:90000 len:10000                                               

.raspi_read: from:a0000 len:10000                                               

.raspi_read: from:b0000 len:10000                                               

.raspi_read: from:c0000 len:10000                                               

.raspi_read: from:d0000 len:10000                                               

.raspi_read: from:e0000 len:10000                                               

.raspi_read: from:f0000 len:10000                                               

.raspi_read: from:100000 len:10000                                              

.raspi_read: from:110000 len:10000                                              

.raspi_read: from:120000 len:10000                                              

.raspi_read: from:130000 len:10000                                              

.raspi_read: from:140000 len:10000                                              

.raspi_read: from:150000 len:10000                                              

.raspi_read: from:160000 len:10000                                              

.raspi_read: from:170000 len:10000                                              

.raspi_read: from:180000 len:10000                                              

.raspi_read: from:190000 len:10000                                              

.raspi_read: from:1a0000 len:10000                                              

.raspi_read: from:1b0000 len:10000                                              

.raspi_read: from:1c0000 len:10000                                              

.raspi_read: from:1d0000 len:10000                                              

.raspi_read: from:1e0000 len:10000                                              

.raspi_read: from:1f0000 len:10000                                              

.raspi_read: from:200000 len:10000                                              

.raspi_read: from:210000 len:10000                                              

.raspi_read: from:220000 len:10000                                              

.raspi_read: from:230000 len:10000                                              

.raspi_read: from:240000 len:10000                                              

.raspi_read: from:250000 len:10000                                              

.raspi_read: from:260000 len:10000                                              

.raspi_read: from:270000 len:10000                                              

.raspi_read: from:280000 len:10000                                              

.raspi_read: from:290000 len:10000                                              

.raspi_read: from:2a0000 len:10000                                              

.raspi_read: from:2b0000 len:10000                                              

.raspi_read: from:2c0000 len:10000                                              

.raspi_read: from:2d0000 len:10000                                              

.raspi_read: from:2e0000 len:10000                                              

.raspi_read: from:2f0000 len:10000                                              

.raspi_read: from:300000 len:10000                                              

.raspi_read: from:310000 len:10000                                              

.raspi_read: from:320000 len:10000                                              

.raspi_read: from:330000 len:10000                                              

.raspi_read: from:340000 len:10000                                              

.raspi_read: from:350000 len:10000                                              

.raspi_read: from:360000 len:10000                                              

.raspi_read: from:370000 len:10000                                              

.raspi_read: from:380000 len:10000                                              

.raspi_read: from:390000 len:10000                                              

.raspi_read: from:3a0000 len:10000                                              

.raspi_read: from:3b0000 len:10000                                              

.raspi_read: from:3c0000 len:10000                                              

.raspi_read: from:3d0000 len:10000                                              

.raspi_read: from:3e0000 len:10000                                              

.raspi_read: from:3f0000 len:10000                                              

.raspi_read: from:400000 len:10000                                              

.raspi_read: from:410000 len:10000                                              

.raspi_read: from:420000 len:10000                                              

.raspi_read: from:430000 len:10000                                              

.raspi_read: from:440000 len:10000                                              

.raspi_read: from:450000 len:10000                                              

.raspi_erase: offs:450000 len:10000                                             

.                                                                               

raspi_write: to:450000 len:10000                                                

.                                                                               

raspi_read: from:450000 len:10000                                               

.Done!                                                                          

## Booting image at bc050000 ...                                                

raspi_read: from:50000 len:40                                                   

.   Image Name:   MIPS OpenWrt Linux-4.4.14                                     

   Created:      2017-05-24  14:54:37 UTC                                       

   Image Type:   MIPS Linux Kernel Image (lzma compressed)                      

   Data Size:    1216606 Bytes =  1.2 MB                                        

   Load Address: 80000000                                                       

   Entry Point:  80000000                                                       

raspi_read: from:50040 len:12905e                                               

...................   Verifying Checksum ... OK                                 

   Uncompressing Kernel Image ... OK                                            

No initrd                                                                       

## Transferring control to Linux (at address 80000000) ...                      

## Giving linux memsize in MB, 32                                               

linux_argv[0] = <NULL>                                                          

linux_env = �7�����7��7��7��7�                                             

                                                                                

Starting kernel ...                                                             

                                                                                

[    0.000000] Linux version 4.4.14 (bingdo@bingdo-desktop) (gcc version 5.3.0 7

[    0.000000] SoC Type: Ralink RT5350 id:1 rev:3                               

[    0.000000] bootconsole [early0] enabled                                     

[    0.000000] CPU0 revision is: 0001964c (MIPS 24KEc)                          

[    0.000000] MIPS: machine is WIZnet WizFi630A                                

[    0.000000] Determined physical RAM map:                                     

[    0.000000]  memory: 02000000 @ 00000000 (usable)                            

[    0.000000] Initrd not found or empty - disabling initrd                     

[    0.000000] Zone ranges:                                                     

[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000001ffffff]           

[    0.000000] Movable zone start for each node                                 

[    0.000000] Early memory node ranges                                         

[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000001ffffff]          

[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000001ffffff] 

[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.  

[    0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bys

[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa8

[    0.000000] Kernel command line: console=ttyS1,115200 rootfstype=squashfs,jf2

[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)               

[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)    

[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)      

[    0.000000] Writing ErrCtl register=00001fd0                                 

[    0.000000] Readback ErrCtl register=00001fd0                                

[    0.000000] Memory: 28488K/32768K available (2751K kernel code, 125K rwdata,)

[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1       

[    0.000000] NR_IRQS:256                                                      

[    0.000000] CPU Clock: 360MHz                                                

[    0.000000] clocksource: systick: mask: 0xffff max_cycles: 0xffff, max_idle_s

[    0.000000] systick: running - mult: 214748, shift: 32                       

[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_s

[    0.000016] sched_clock: 32 bits at 180MHz, resolution 5ns, wraps every 1193s

[    0.007697] Calibrating delay loop... 239.61 BogoMIPS (lpj=1198080)          

[    0.080250] pid_max: default: 32768 minimum: 301                             

[    0.084964] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)      

[    0.091394] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) 

[    0.107822] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ms

[    0.117766] pinctrl core: initialized pinctrl subsystem                      

[    0.124158] NET: Registered protocol family 16                               

[    0.172470] rt2880_gpio 10000600.gpio: registering 22 gpios                  

[    0.177905] rt2880_gpio 10000600.gpio: registering 22 irq handlers           

[    0.184411] rt2880_gpio 10000660.gpio: registering 6 gpios                   

[    0.189744] rt2880_gpio 10000660.gpio: registering 6 irq handlers            

[    0.198693] clocksource: Switched to clocksource MIPS                        

[    0.206356] NET: Registered protocol family 2                                

[    0.212343] TCP established hash table entries: 1024 (order: 0, 4096 bytes)  

[    0.219234] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)         

[    0.225384] TCP: Hash tables configured (established 1024 bind 1024)         

[    0.231857] UDP hash table entries: 256 (order: 0, 4096 bytes)               

[    0.237520] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)          

[    0.244274] NET: Registered protocol family 1                                

[    0.249568] rt-timer 10000100.timer: maximum frequency is 3662Hz             

[    0.257280] futex hash table entries: 256 (order: -1, 3072 bytes)            

[    0.308059] squashfs: version 4.0 (2009/01/31) Phillip Lougher               

[    0.313856] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORI.

[    0.330225] io scheduler noop registered                                     

[    0.334010] io scheduler deadline registered (default)                       

[    0.339600] ralink-usb-phy usbphy: invalid resource                          

[    0.345128] gpio-export gpio-export: 0 gpio(s) exported                      

[    0.350846] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled         

[    0.359634] 10000500.uart: ttyS0 at MMIO 0x10000500 (irq = 13, base_baud = 23

[    0.370336] console [ttyS1] disabled                                         

[    0.373835] 10000c00.uartlite: ttyS1 at MMIO 0x10000c00 (irq = 20, base_baud3

[    0.383580] console [ttyS1] enabled                                          

[    0.383580] console [ttyS1] enabled                                          

[    0.390681] bootconsole [early0] disabled                                    

[    0.390681] bootconsole [early0] disabled                                    

[    0.409919] spi spi0.0: force spi mode3                                      

[    0.414730] m25p80 spi0.0: w25q128 (16384 Kbytes)                            

[    0.419732] 4 ofpart partitions found on MTD device spi0.0                   

[    0.425341] Creating 4 MTD partitions on "spi0.0":                           

[    0.430301] 0x000000000000-0x000000030000 : "uboot"                          

[    0.439213] 0x000000030000-0x000000040000 : "uboot-env"                      

[    0.448455] 0x000000040000-0x000000050000 : "factory"                        

[    0.457685] 0x000000050000-0x000001000000 : "firmware"                       

[    0.544317] 2 uimage-fw partitions found on MTD device firmware              

[    0.550504] 0x000000050000-0x00000017909e : "kernel"                         

[    0.559061] 0x00000017909e-0x000001000000 : "rootfs"                         

[    0.568034] mtd: device 5 (rootfs) set to be root filesystem                 

[    0.574143] 1 squashfs-split partitions found on MTD device rootfs           

[    0.580560] 0x000000440000-0x000001000000 : "rootfs_data"                    

[    0.595952] rt3050-esw 10110000.esw: link changed 0x00                       

[    0.605040] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb5

[    0.614744] rt2880_wdt 10000120.watchdog: Initialized                        

[    0.622927] NET: Registered protocol family 10                               

[    0.635855] NET: Registered protocol family 17                               

[    0.640790] bridge: automatic filtering via arp/ip/ip6tables has been deprec.

[    0.653831] 8021q: 802.1Q VLAN Support v1.8                                  

[    0.676668] VFS: Mounted root (squashfs filesystem) readonly on device 31:5. 

[    0.685944] Freeing unused kernel memory: 180K (80373000 - 803a0000)         

[    3.086112] init: Console is alive                                           

[    3.090385] init: - watchdog -                                               

[    5.267686] usbcore: registered new interface driver usbfs                   

[    5.273678] usbcore: registered new interface driver hub                     

[    5.279483] usbcore: registered new device driver usb                        

[    5.296553] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver       

[    5.306132] ehci-platform: EHCI generic platform driver                      

[    5.322256] phy phy-usbphy.0: remote usb device wakeup disabled              

[    5.328333] phy phy-usbphy.0: UTMI 16bit 30MHz                               

[    5.332995] ehci-platform 101c0000.ehci: EHCI Host Controller                

[    5.339032] ehci-platform 101c0000.ehci: new USB bus registered, assigned bu1

[    5.347391] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000           

[    5.368833] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00          

[    5.377718] hub 1-0:1.0: USB hub found                                       

[    5.382540] hub 1-0:1.0: 1 port detected                                     

[    5.397544] init: - preinit -                                                

[    6.496392] rt3050-esw 10110000.esw: link changed 0x00                       

Press the [f] key and hit [enter] to enter failsafe mode                        

Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level    

[    6.827233] random: procd urandom read with 11 bits of entropy available     

[    8.136889] rt3050-esw 10110000.esw: link changed 0x02                       

[   10.217278] mount_root: jffs2 not ready yet, using temporary tmpfs overlay   

[   10.275670] procd: - early -                                                 

[   10.279068] procd: - watchdog -                                              

[   11.380848] procd: - ubus -                                                  

[   11.440191] procd: - init -                                                  

Please press Enter to activate this console.                                    

[   12.710961] ip6_tables: (C) 2000-2006 Netfilter Core Team                    

[   12.744086] Loading modules backported from Linux version wt-2016-05-12-0-g76

[   12.751976] Backport generated by backports.git backports-20160216-0-ge3c56e4

[   12.767462] ip_tables: (C) 2000-2006 Netfilter Core Team                     

[   12.792994] nf_conntrack version 0.5.0 (447 buckets, 1788 max)               

[   12.869623] xt_time: kernel timezone is -0000                                

[   12.982450] PPP generic driver version 2.4.2                                 

[   12.993168] NET: Registered protocol family 24                               

[   13.050600] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5350, rev 0500 d

[   13.058559] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 5350 detected   

[   21.372585] rt3050-esw 10110000.esw: link changed 0x00                       

[   22.989706] rt3050-esw 10110000.esw: link changed 0x02                       

[   31.880146] device eth0.1 entered promiscuous mode                           

[   31.885078] device eth0 entered promiscuous mode                             

[   31.921814] br-lan: port 1(eth0.1) entered forwarding state                  

[   31.927623] br-lan: port 1(eth0.1) entered forwarding state                  

[   33.918775] br-lan: port 1(eth0.1) entered forwarding state                  

[   58.161822] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0   

[   58.179218] jffs2_build_filesystem(): unlocking the mtd device... done.      

[   58.186007] jffs2_build_filesystem(): erasing all blocks after the end marke 

[   79.588798] random: nonblocking pool is initialized



Contents

-. Build : WizFi630A 개발환경 구축

-. Upgrade : TFTP 활용


Build : WizFi630A 개발환경 구축

WizFi630A in OpenWrt

>> 참조 링크

https://wiki.openwrt.org/toh/wiznet/wiznet_wizfi630a

WizFi630A in WIZnet

>> 참조 링크

http://wizwiki.net/wiki/doku.php?id=products:wizfi630a:start


라이브러리 설치 in Ubuntu

>> Ubuntu 16.04 사용

>> 소스 코드 다운로드

>> 추가 패키지 다운로드

>> Config 설정

>> Target System / Subtarget / Target Profile / LuCi 등 필요한 Config 설정

>> pre-build

>> build

>> binary 확인


목차

-. 개발 환경 구축

-. WIZwiki-W7500 소개

-. ARM mbed 소개

-. mbed OS5 포팅 실습

-. WIZnetInterface library 포팅 실습


개발 환경 구축

Python, Git, Mercurial, GCC, mbed-cli 설치

참조링크


WIZwiki-W7500 소개

Features

참조링크


참조링크


WIZnet W7500

ARM® Cortex™-M0 Core 48MHz
128KB Flash memory
16KB to 48 KB SRAM (Min 16KB available if 32KB socket buffer is used, Max 48KB available if no socket buffer is used)
Hardwired TCP/IP Core (8 Sockets, MII: Medium-Independent Interface)
12-bit, 8ch ADC
53 I/Os
1ch Watchdog, 4ch Timers and 8ch PWM
3ch UART
2ch SPI
2ch I2C

Arduino form-factor

Compatible with a wide range of commercially available shields

CMSIS-DAP interface firmware

Built-in USB drag 'n' drop FLASH programmer
USB Virtual COM port for serial terminal
CMSIS-DAP interface for programming and debugging from offline tools

mbed.org Developer Website

Online Compiler
High level C/C++ SDK
Active developer community

WIZwiki-W7500 USB Driver 설치

참조링크

참조자료

mbedWinSerial_16466.exe 

mbedWinSerial_16466.exe


설치방법

mbedWinSerial_16466.exe 실행 및 설치.
WIZwiki-W7500 보드를 PCUSB케이블로 연결.
장치관리자에서 COM Port 확인.

ARM mbed 소개

Introduction

참조링크


mbed OS5 포팅 실습

예제실습

mbed-os-example-blinky 프로젝트 실습

Github 소스 import
파일 추가 및 파일 수정
소스 컴파일
바이너리 Fusing
LED 점등 확인

Github 소스 import

파일 추가 및 파일 수정

added.zip
mbed-os-example-blinky\mbed-os\targets\TARGET_WIZNET\mbed_rtx.h

modified.zip
mbed-os-example-blinky\mbed-os\targets\targets.json
mbed-os-example-blinky\mbed-os\targets\TARGET_WIZNET\TARGET_W7500x\TARGET_WIZwiki_W7500\device\TOOLCHAIN_GCC_ARM\startup_W7500.S

mbed-os-example-blinky\main.cpp

modified.zip


소스 컴파일

바이너리 Fusing

LED 점등 확인


WIZnetInterface library 포팅 실습

예제실습

mbed-os-example-blinky 프로젝트 실습

WIZnetInterface library 추가
netsocket 디렉토리 삭제 및 파일 수정
소스 컴파일
바이너리 Fusing
Echo back 확인

WIZnetInterface library 추가

netsocket 디렉토리 삭제 및 파일 수정

mbed-os-example-blinky\mbed-os\features\netsocket

modified2.zip

mbed-os-example-blinky\main.cpp

modified2.zip


소스 컴파일

바이너리 Fusing

Echo Back 확인

Making Development Environment Using GNU ARM, Java JDK, Eclipse, Cygwin

Contents:

1.     Install Compiler

2.     Install JDK

3.     Install Eclipse 

4.     Eclipse Development Environment

5.     Install Cygwin or gnuwin32

1. Install Compiler

-. Install GNU Toolchain

 Contact  https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update

 Download the installation file accoding to  PC OS version.

 I downloaded gcc-arm-none-eabi-4_8-2014q1-20140314-win32.exe file, because of 64 bit.

-. Please install like below screen.

 

-. After installing, please check the version with arm-none-eabi-gcc –v command at Dos command.

2. Installing JDK 

-. Please install Java JDK. (if you have already, then skip)

Contact at http://www.oracle.com/technetwork/java/javase/downloads/index.html

Download jdk file according to your PC OS version. 

I downloaded jdk-8u5-windows-x64.exe file, because of 64 bit.

-. Please install like below screen.

 

-. After complete the install, please check the java version with java -version command at DOS Command.

 

3. Installing  Eclipse 

-. Please install the Eclipse program.

Connect at http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplersr2 

Please download the installation file according to your PC OS version.

I downloaded eclipse-cpp-kepler-SR2-win32-x86_64.zip file, because of 64 bit.

-. Please use the files after decompress the downloaded zip file.

4. Setting Eclipse Environment

-. execute the eclipse.exe program.

-. Help->Select “Install New Software… ” menu

 

-. after select the “–All Available Sit–” , please insert the http://download.eclipse.org/tools/cdt/releases/helios web site.  

 

-. Please check the below 6 combo boxes.

C/C++ Development Tools

C/C++ Development Platform

C/C++ GCC Cross Compiler Support

C/C++ GDB Hardware Debugging

C/C++ GNU Toolchain Build Support

C/C++ GNU Toolchain Debug Support

 

 

 

 

-. Please restart, after install the Eclipse.

-. Help->Install New Software…-> Select the Add Menu.

-. Add the GNU ARM Plug-in.

http://sourceforge.net/projects/gnuarmeclipse/files/Eclipse/updates

http://gnuarmeclipse.sourceforge.net/updates-test

Recently I found a problem in v3.1.1-2016062110758. So you have to install v2.12.1-201604190915.zip file manually.

https://github.com/gnuarmeclipse/plug-ins/releases/tag/v2.12.1-201604190915

 

 

 

 

 

 

5. Install Cygwin or gnuwin32 Program.

-. Please install Cygwin using make.exe, rm.exe, echo.exe command.

contact https://www.cygwin.com/ and download the file, accordig the PC OS Version.

I downloaded setup-x86_64.exe file, because of 64 bit.

-. Please install like below screens.

 

-. I used “Install from Local Directory” to shorten the installing time.

You can use the “Install from Internet” option.

 

-. Please install the “Base package”

 

-. to use make command, install the “Devel package”

 

 -. Please add the “E:\cygwin64\bin” path to window system environment variables.

 

-. after adding, please check the version is right with “make –version” command.

 

 -. You can install gnuwin32 tools by the following site. After installing make.exe, rm.exe, echo.exe files, please add the path to window system environment variables.

http://gnuwin32.sourceforge.net/packages/make.htm

http://gnuwin32.sourceforge.net/packages/coreutils.htm

After adding, please check the version is right with “make –version” command.

-. If you are using Windows 64 bit, you can add path to the environment variable by unpacking the attachment below.

Apps.7z.001

Apps.7z.002


TFTP Example on WIZwiki-W7500 platform

Recently WIZwiki-W7500 platform was announced by WIZnet. So I implemented a firmware of WIZwiki-W7500 by using TFTP
because I can handle a source code easily.
Please refer to the following step.

Step1 : Prepare materials

Please refer to the following.
1. WIZwiki-W7500 board. ( http://www.shopwiznet.com/wizwiki-7500 )
2. Mini USB cable
3. LAN cable

Step2 : Hardware connection

Please connect an USB cable and LAN cable.
You can get more HW info by the following site.
http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start

Step3 : Prepare development environment
I prepared GCC development environment by the following site.
http://opensrclab.tistory.com/33
I installed GNU Toolchain, Java JDK, Eclipse, Cygwin.
If you install all tools, you are ready for running this project.
You can use a Configuration Tool by the following temporarily. http://wizwiki.net/wiki/lib/exe/fetch.php?media=products:wiz550s2e:wiz550s2e_configuration_tool_ver1.03beta_20151005.zip
How to use a CFG tool : http://wizwiki.net/wiki/doku.php?id=products:wiz550s2e:wiz550s2epg_en#configuration_tool
## Reference
WIZwiki-W7500 library source : http://wizwiki.net/wiki/doku.php?id=products:w7500:library

Step4 : Software : GitHub repository
I opened source codes of this project in GitHub.
https://github.com/bingdo/TFTP_WIZwiki-W7500_Eclipse
You can download this project files. And then import project into Eclipse.
After compile, you can run TFTP application of WIZwiki-W7500.
This project is open for everyone. I expect your participation to improve a quality of project.

WIZ750TFTP(Boot App).bin

TFTPApp.bin

Step5 : How to run : Test result

1. To program FW into a target.
2. To reset a target and insert MAC address.
3. To search a target by Configuration Tool.
4. To check Host IP and Options.
5. To change IP, Gateway properly.
6. To search a target by Configuration Tool again.
7. To select "F/W Uploading".
8. To change Server IP, File Name properly.
9. To press OK.
10. Check a version of new FW through termainal program.
You can see the test result by the video.
Thank you for your attention.
*Tip : If you register in www.wiznetian.com and work actively, you can get a sample cheaper than E-sales as well as a free sample.

 

 

Convert ioLibrary into BSD socket style on WIZwki-W7500 platform

 

Recently WIZwiki-W7500 platform was announced by WIZnet. So I implemented a firmware of WIZwiki-W7500 by using BSD socket API
because I can handle a source code easily. Please refer to the following step.

Step1 : Prepare materials

Please refer to the following.
1. WIZwiki-W7500 board. ( http://www.shopwiznet.com/wizwiki-7500 )
2. Mini USB cable
3. LAN cable

Step2 : Hardware connection

Please connect an USB cable and LAN cable.
You can get more HW info by the following site.
http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start

Step3 : Prepare development environment
I prepared GCC development environment by the following site.
http://opensrclab.tistory.com/33
I installed GNU Toolchain, Java JDK, Eclipse, Cygwin.
If you install all tools, you are ready for running this project.
## Reference
W5500-EVB source repository : https://github.com/bingdo/Loopback_BSD_LPC11E36_LPCXpresso
WIZwiki-W7500 library source : http://wizwiki.net/wiki/doku.php?id=products:w7500:library

Step4 : Software : GitHub repository
I opened source codes of this project in GitHub.
https://github.com/bingdo/Loopback_BSD_WIZwiki-W7500_Eclipse
You can download this project files. And then import project into Eclipse.
After compile, you can run an application of WIZwiki-W7500.
This project is open for everyone. I expect your participation to improve a quality of project.

 Loopback_BSD_WIZwiki-W7500_Eclipse.bin

Step5 : How to run : Test result

 

1. To program FW into a target.
2. To reset a target.
3. To check Host IP and Server.
4. To connect a target through Client tool.
5. Confirm an echoback operation.
You can see the test result.
Thank you for your attention.
*Tip : If you register in www.wiznetian.com and work actively, you can get a sample cheaper than E-sales as well as a free sample.

 

 

 

 

Convert ioLibrary into BSD socket style on W5500-EVB

W5500-EVB platform was announced by WIZnet. So I implemented a firmware of W5500-EVB by using BSD socket API
because I can handle a source code easily.
You can know http://wizwiki.net site. Please refer to the following step.

 Step1 : Prepare materials

Please refer to the following.
1. W5500-EVB board. ( http://www.shopwiznet.com/w5500-evb )
2. Mini USB cable
3. LAN cable

Step2 : Hardware connection

Please connect an USB cable and LAN cable.
You can get more HW info by the following site.
http://wizwiki.net/wiki/doku.php?id=products:w5500:w5500_evb:start

Step3 : Prepare development environment
I prepared LPCXpresso development environment by the following site.
http://wizwiki.net/wiki/doku.php?id=osh:lpcxpresso:start
I installed LPCXpresso IDE. If you install a tool, you are ready for running this project.
## Reference
W5500 ioLibrary source : https://github.com/Wiznet/ioLibrary_Driver

Step4 : Software : GitHub repository
I opened source codes of this project in GitHub.
https://github.com/bingdo/Loopback_BSD_LPC11E36_LPCXpresso
You can download this project files. And then import project into LPCXpresso.
After compile, you can run an application of W5500.
This project is open for everyone. I expect your participation to improve a quality of project.

 Loopback_BSD_LPC11E36_LPCXpresso.hex

Step5 : How to run : Test result

1. To program FW into a target by Flash Magic tool.
2. To reset a target.
3. To check Host IP and Server.
4. To connect a target through Client tool.
5. Confirm an echoback operation.
You can see the test result.
Thank you for your attention.
*Tip : If you register in www.wiznetian.com and work actively, you can get a sample cheaper than E-sales as well as a free sample.

 

 

 

 

 

Chat by using websocket on WIZwiki-W7500 platform

 

Recently WIZwiki-W7500 platform was announced by WIZnet. So I implemented a firmware of WIZwiki-W7500 by changing UART definition
because I can handle a source code easily.
You can know www.mbed.org site. Please refer to the following step.


Step1 : Prepare materials

Please refer to the following.
1. WIZwiki-W7500 board x2. ( http://www.shopwiznet.com/wizwiki-7500 )
2. Mini USB cable
3. LAN cable

Step2 : Hardware connection

 

Please connect an USB cable and LAN cable.
You can get more HW info by the following site.
http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start

Step3 : Prepare development environment

I prepared cloud development environment by the following site.
https://developer.mbed.org/getting-started/
<Reference>
WIZwiki-W7500 example source : https://developer.mbed.org/platforms/WIZwiki-W7500/
WIZwiki-W7500 library source : https://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/

Step4 : Software : mbed repository

I opened source codes of this project in mbed site.
https://developer.mbed.org/users/bingdo/code/WebSocketClient_Chat_WIZwiki-W7500/
You can import this project files into your workspace.
You must modify source codes for this test. (MAC address, websocket server IP & port)
After compile, you can run an application of WIZwiki-W7500.
This project is open for everyone. I expect your participation to improve a quality of project.

<Reference>
Websocket Server example : https://github.com/bingdo/ChatDemoWithWebSocket

 

Step5 : How to run : Test result

 

1. To modify MAC address and websocket server IP & port as your case.
2. To compile a project in cloud.
3. To program FW into targets.
4. To run Websocket server on your PC.
5. To activate each connection with serial terminal.
6. To reset targets.
7. To insert chat messages after connecting with websocket server.
You can see the test result.

 


Thank you for your attention.
*Tip : If you register in www.wiznetian.com and work actively, you can get a sample cheaper than E-sales as well as a free sample.

Telemedicine by using WIZwiki-W7500 and BLE

 

Recently WIZwiki-W7500 platform was announced by WIZnet. So I implemented a firmware of WIZwiki-W7500 by changing UART definition because I can handle a source code easily.
You can know the value of BLE sensor even if it is so far. Please refer to the following step.

Step 1: repare materials

 

Please refer to the following.
1. WIZwiki-W7500 board. ( http://www.shopwiznet.com/wizwiki-7500 )
2. Mini USB cable
3. LAN cable
4. nRF51822-mKIT ( https://developer.mbed.org/platforms/Nordic-nRF51822/ )

Step 2: Hardware connection

 

Please connect an USB cable and LAN cable.
You can get more HW info by the following site.
http://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500:start

Step 3: Prepare development environment

I prepared GCC development environment by the following site.
http://opensrclab.tistory.com/33
I installed GNU Toolchain, Java JDK, Eclipse, Cygwin.
If you install all tools, you are ready for running this project.
You can use a Configuration Tool by the following temporarily.
http://wizwiki.net/wiki/doku.php?id=products:wiz550s2e:wiz550s2e_download
How to use a CFG tool : http://wizwiki.net/wiki/doku.php?id=products:wiz550s2e:wiz550s2epg_en#configuration_tool
<Reference>
WIZwiki-W7500 library source : http://wizwiki.net/wiki/doku.php?id=products:w7500:library

Step 4: Software : GitHub repository

I opened source codes of this project in GitHub.
https://github.com/bingdo/S2EApp_WIZwiki-W7500_Eclipse
You can download this project files. And then import project into Eclipse.
You must modify source codes for this test.
ConfigData.c

retarget.c

uartHandler.h

After compile, you can run S2E application of WIZwiki-W7500.
This project is open for everyone. I expect your participation to improve a quality of project.

 S2EApp_WIZwiki-W7500_Eclipse.bin

Step 5: How to run : Test result

 

1. To program FW into a target.
2. To reset a target and insert MAC address.

 

3. To search a target by Configuration Tool.
4. To check Host IP and start Server.
5. To change IP, Gateway, HostIP properly.
6. To change Working Mode of target to TCP Client or Mixed Mode by CFG tool.
7. To connect with nRF51822-mKIT(Central) through UART0.
8. Turn nRF51822-mKIT(Peripheral) on.

 

You can see the test result.
Thank you for your attention.
*Tip : If you register in www.wiznetian.com and work actively, you can get a sample cheaper than E-sales as well as a free sample.

 

 

 

 

 

+ Recent posts