W5500 Driver open source projects - 오픈소스


W5500 Driver open source projects - 오픈소스

이전에 PSoC W5500 Driver 에 관련된 글을 작성했었다. 

W5500 Ethernet driver for PSoC - FreeRTOS

이외에 많은 대중적인 MCU 들이 많이 있는데 관련해서 드라이버 소스들을 정리해 보고자 한다.

일단, 공식적으로 WIZnet에서 제공하고 있는 통합 라이브러리는 아래와 같다.


https://github.com/Wiznet/ioLibrary_Driver ; SOCKET APIs like BSD & WIZCHIP(W5500 / W5300 / W5200 / W5100) Driver


AVR - ATmel

- 일단 아두이노 소스를 모두 활용할 수 있다.

Arduino Ethernet Github site

https://github.com/arduino/Arduino/tree/master/libraries/Ethernet


- 또다른 아두이노 진영인 arduino.org 의 최신 소스코드 - 여기가 좀 더 W5500 테스트가 많이 되어 있는 것 같다.

https://github.com/arduino-org/Arduino/tree/ide-org-1.6.1.x/libraries/Ethernet2

보드에 같이 올라가 있는 상품도 있고. 

http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth



- 칩 제작사인 위즈네트에서 제공하는 통합 라이브러리

https://github.com/Wiznet/WIZ_Ethernet_Library


- 통합 라이브러리 이전에 먼저 개발하고 테스트한 공신할 수 있는 embeddist 님께서 작성해 주신, 


- 호주의 뛰어난 개발자 이신 Phillip Stevens 가 만드신 freeRTOS & libraries for AVR ATmega 프로젝트 소스, FreeRTOS 포트 정보를 찾는다면 단언코 이 프로젝트가 레퍼런스 1순위. Goldilocks Analogue 라는 ADC 기능이 기본적으로 탑재되어 있는 Arduino 호환 보드를 개발해서 사업을 하고 있기도 하다.

- ehajo 라는 독일업체에서 만든 보드와 예제 코드.

- 기타 제작자들의 작품들.


LPC 시리즈 - NXP LPC11exxx ...

- 위즈네트에서 개발된 W5500 용 EVB, 메인 칩셋으로 NXP사의 LPC 시리즈를 이용하고 있다.



https://github.com/Wiznet/W5500_EVB

개발 환경의 구축에 관련된 내용은 위즈네트 아카데미(http://wiznetacademy.com) 에서 강의를 들어 볼 수 있으며,

강의노트 - WIZnet Academy (http://wiznetacademy.com/wp/wp-content/uploads/2015/02/WIZnet-Academy-W5500-WebServer.pdf)


또한 아래 글을 참고해도 된다.

W5500으로 이더넷 구현하기 (개발 환경 구축)


- ARM 사의 오픈소스개발환경인 http://mbed.com 을 통해서도 많은 예제와 소스코드를 찾을 수 있다.

먼저 하드웨어는 W5500 Ethernet Kit for IoT (https://developer.mbed.org/components/W5500-Ethernet-Kit-for-IoT/) 을 사용하면 된다.



ARM mbed 환경에서는 Cortex-M 시리즈의 칩셋을 기본적으로 제공하고 있으므로 NXP 뿐 아니라 STM32 코드로도 활용이 가능하다.


STM32 시리즈 - ST Microelectronics

- 먼저 WIZnet(http://wiznet.co.kr) 에서 제공하고 있는 Web module 의 소스코드를 가장 먼저 레퍼런스 할 수 있다.

https://github.com/Wiznet/WIZ550web

https://github.com/Wiznet/WIZ550Web_STM32F103RB_CoIDE ; 무료 컴파일러 Coocox 버전 (http://www1.coocox.org/CooCox_CoIDE.htm)


- Arduino for STM32 Project (https://github.com/rogerclarkmelbourne/Arduino_STM32) 의 일부 프로젝트로 진행된 라이브러리.

Vassilis Serasidis 님이 개인적으로 코드사이즈, DHCP 라이브러리를 직접 테스트 하며 완성된 통합 라이브러리 버전이다. 짝짝~~

https://github.com/Serasidis/Ethernet_STM ; WIZnet W5500, W5200, W5100 ethernet library for 8-bit, 32-bit Arduino and STM32F1 (STM32F103) micro-controllers

성공스토리는 이 포럼글에서 확인해 볼 수 있다. : "W5500 library is (finally) ported"

참고로 Arduino STM 프로젝트는 이전에 Maple Project (http://www.leaflabs.com/about-maple/)에서 생성된 것으로 아두이노 IDE를 ARM 계열에서도 사용해 보자고 하는 운동에서 시작되었다.


국내 개발자, w5500 모듈을 가지고 기본 라이브러리를 활용하여 TCP/IP 서버와 클라이언트를 구현한 KEIL 프로젝트로 아래 링크에서 소스코드를 다운로드 받을 수 있다.

wiznet ethernet controller w5500 with STM32F10


PIC 시리즈 - Microchips PIC18, PIC24 ...

- 유럽에서 진행되고 있는 통합 EVB 같은 ETH WIZ click

본 모듈은 http://www.mikroe.com/ 이라는 곳에서 기본 보드와 아주 다양한 기능별 모듈을 제공하여 Prototype 설계를 가능하게 해 준다.

그림처럼 아주 깔끔한 형태의 보드를 제공하고 있고, 물론 예제 라이브러리도 아주 고급지게 제공된다.

물론 아래와 같이 PIC 시리즈를 포함하여 AVR, ARM 소스도 같이 제공하고 있어 다양한 활용이 가능하다.

http://libstock.mikroe.com/projects/view/1314/eth-wiz-click-board-example


Examples are written for :

  • EasyPIC v7 - PIC18F45K22
  • EasyPIC v7 for dsPIC30 - dsPIC30F4013
  • EasyPIC Fusion v7 - PIC32MX795F512L
  • EasyAVR v7 - ATmega32
  • EasyMX PRO v7 STM32 - STM32F107VC
  • EasyFT90x v7 - FT900 


- 약간 특이하게 아래와 같이 아두이노 호환형태의 보드와 Basic 형태의 코드와 라이브러리를 배포하고 있는 Firewing Project 도 PIC 시리즈를 이용하시는 분들은 참고할 만 하다.

단, 컴파일러/IDE의 지원이 이곳(http://www.firewing.info/pmwiki.php?n=Main.HomePage)에서 유료로? 무료로 받는지는 확인해보고 사용해 보시길.

W5500 Dirver 페이지는 http://www.firewing.info/pmwiki.php?n=FirewingUser.W5500 


https://github.com/FeezingCode/pic18_W5500


PSoC 시리즈 - Cypress

W5500 Ethernet driver for PSoC - FreeRTOS 여기에 정리를 해 두었다. 

그래도 간략하게, 해당 링크는 

http://www.e2forlife.com/2015/09/its-been-a-while/

이 페이지에는 W5500 드라이버는 물론이고, FreeRTOS 사용자들을 위해 porting 작업이 완료되어 있는 소스를 공개하고 있다.

해당 소스의 위치는 

Check out the “example” project at https://github.com/e2forlife/PSoC-W5500-Example.git

아직 FreeRTOS 전체적인 프로젝트가 종료되지 않아서 최종 릴리즈 버전은 없지만 

개발 버전은 자신의 Github을 통해 공유하고 있다. 소스의 위치는 아래 링크를 참고하기 바란다.

프로젝트 페이지 https://github.com/e2forlife/PSoC-FreeRTOS

개발 버전 공개페이지 : https://github.com/e2forlife/PSoC-FreeRTOS/tree/Implement-PSoC5



저작자 표시 비영리 동일 조건 변경 허락
신고

IoT Cloud Platfrom - Internet of Things 를 위한 클라우드 서비스 개발 키트들

이미 스크랩 해놓은 것 부터 그냥 정리해 두자. (업데이트를 기대하며..)


(via Xively Jumpstart Kit, ARM® mbed Edition - Xively)
영어권은 좋겠다..저들끼리 잘허네~~
무튼 요는 간단히 킷을 사서 뚝딱 하면 간단 IoT 완성
데이터는 http://xively.com 에서 이쁘게 관리해 주고
멀 관리할 것인지만 꾸며 넣으면 됨..이런 세상이야~~
관련 ARM techcon review 하나 추가

(via Xively Jumpstart Kit, ARM® mbed Edition - Xively)

영어권은 좋겠다..저들끼리 잘허네~~

무튼 요는 간단히 킷을 사서 뚝딱 하면 간단 IoT 완성

데이터는 http://xively.com 에서 이쁘게 관리해 주고

멀 관리할 것인지만 꾸며 넣으면 됨..이런 세상이야~~

관련 ARM techcon review 하나 추가


몇개 더 있다. 자세한 정보는 여기 -> http://exosite.com/solutions/development-kits/

(via TI Launches “Connected LaunchPad”)
이건 머 할 것이 없다.다 된다.  서비스까지 (아래 동영상 참고, Exosite.com 에서 제공하는 서비스 기존의 Xively, Thingspeak 류의 서비스도 같이 제공한다. ㅠㅠ)

이 Kit의 판매가격은 현재 홈페이지에 나와 있는 것으로 하면 
$19.99
아래는 어플리케이션 데모 화면 캡쳐.


For the launch, TI has partnered with Exosite to provide easy access to the LaunchPad from the internet. A pre-loaded demo application will allow you to toggle LEDs, read button states, and measure temperature over the internet using Exosite. 

보드를 작게하거나, 어떤 가치있는 정보를 보내고 저장하고 보여줄까 고민하는 정도
아이디어를 구현하는 것은 쉬워진다. 아이디어가 문제 혹은 추진력?과 빽 ㅋㅋ

(via TI Launches “Connected LaunchPad”)

이건 머 할 것이 없다.다 된다. 
서비스까지 (아래 동영상 참고, Exosite.com 에서 제공하는 서비스 기존의 Xively, Thingspeak 류의 서비스도 같이 제공한다. ㅠㅠ)

이 Kit의 판매가격은 현재 홈페이지에 나와 있는 것으로 하면 

$19.99

아래는 어플리케이션 데모 화면 캡쳐.

For the launch, TI has partnered with Exosite to provide easy access to the LaunchPad from the internet. A pre-loaded demo application will allow you to toggle LEDs, read button states, and measure temperature over the internet using Exosite. 

보드를 작게하거나, 어떤 가치있는 정보를 보내고 저장하고 보여줄까 고민하는 정도

아이디어를 구현하는 것은 쉬워진다. 아이디어가 문제 혹은 추진력?과 빽 ㅋㅋ



저작자 표시 비영리 변경 금지
신고

[mbed] 라이브러리 버그 수정해보기 - Publish 방법

생각보단 쉽다. 자신이 만든 라이브러리 라면 더 쉽겠지만,

다른 사람이 만든 라이브러리의 버그를 과감히 수정해 보는 경험을 해보자. (물론 라이브러리 관리자에게 허가를 받아야 하지만)

일단, 간단하게 해본 경험을 적어보았다.

아래 http://medium.com 을 통해 적은 글을 클릭해서 보자. 

그대로 긁어 오려니, CSS가 너무 안맞네. 수정하기는 귀찮고 링크로 대신한다.


from : https://medium.com/@bjnhur/be-a-contributor-of-mbed-library-82a1b75fc754

Ethernet Library for W5500 WIZnet ) 예제로 모두에게 오픈되어 있는 #mbed에 흔적을 남겨보자. 누군가에게 도움이 되지 않아도..되길 바라지만


Be a Contributor of mbed library



저작자 표시 비영리 변경 금지
신고

Evrythng 서비스 간단 사용기 - Internet of Things 클라우드 서비스

여기저기 클라우드 서비스가 생겨나고 있다.

Internet of Things device 를 위한 서비스들도 많이 나오고 있네.

대표적인 것은 물론,


http://xively.com <- 난, 여기를 강추. 인터페이스며 API며 다른 솔루션보다 나아 보인다.

http://thingspeak.com

(삼성이 인수해서 알게된 Smart Things..) 등등..


여기에 영쿡에서 http://Evrythng.com 이 만들어 져 있네. (왜 국내는 빅벤더들이 가만이 있을까나~~ ㅎㅎ, API가 문제인가)

모음만 싹 뺀 이름으로 만든 에브리띵스 닷 컴. 

간단히 사용해 보자.


일단 개발자를 위해서는 http://dev.evrythng.com 으로 접속. 

머 대충 아이디 만들어 로그인 하면 짠..이런 화면인..



간단하게 기기를 등록해볼까. 

왼쪽에 Thngs 메뉴 누르고, 아래 그림 오른쪽의 "+Add THNG"를 누러면, 아래와 같이 등록할 수 있는 페이지 나옴.



이름 넣고 간단한 설명. 그리고 "Save". 끝



이렇게 생성된 기기가 나타난다. 일단 속성을 등록해 줘야 한다.

온도 기기 같으면, 온도라는 속성

습도 기기면 습도.

아니면 2개 이상을 등록해도 된다.

일단 위에 나타난 기기의 이름을 누르면 자세한 정보들이 나오는데, 그중에 "View Properties"를 눌러 등록한다.



여차저차..prop3 이란 속성을 등록해 놓았다. 


일단, 정보를 받고 저장할 수 있는 기기 하나를 http://evrythng.com 에 등록 완료.

이제 기기에서 실제 여기로 정보를 올리고 가져오고 할 수 있도록 하면

간단한 IoT를 맛볼 수 있다.


mbed(http://mbed.org) 를 사용하고 있다면, (Ethernet 혹은 WiFi 연결 가능한 모듈이 있어야 한다.)

예제를 제공하고 있으니 쉽게 따라할 수 있을 것 같다.


간단한게 만든 예제는 여기를 참조.

http://mbed.org/teams/EthernetInterfaceW5500-makers/code/EvrythngApiExampleW5500/


혹은 Evrythng에서 제공하는 예제를 참고해도 된다.

http://mbed.org/users/vladounet/code/EvrythngApiExample/


이 코드로 데이터를 올렸더니 이렇게 볼 수 있네.


이정도로 마무리~~

자세한 코드관련 내용은 기회가 닿는대로 하나 더 올리도록 하자..(다짐ㅋ)


끝.



저작자 표시 비영리 변경 금지
신고

mbed.org 가상 시리얼 포트 설치하기 - Virual COM Port

반드시 해 줘야 한다.

mbed가 기본적으로 USB2Serial을 제공하고 있으나, 이 드라이버를 반드시 꼭 설치 해 줘야 한다.

최소한 나의 경우에는 자동으로 설치되지 않았다. ㅠㅠ


그러나, 여기에 짜짠하고 설치파일이 준비되어 있다.

https://mbed.org/handbook/Windows-serial-configuration

아래 그림처럼 창이 뜨고, 별표있는 곳을 클릭하면 다운로드~~~~~,





첨부파일까지 가져다 놓자. 이게 머라고, 그냥 실행시키면 된다.

보드를 켜두고, USB 연결해 놓고 설치한다. 

이놈이 설치하다가 보드를 찾는다.



이제 아래 코드로 Serial 출력이 가능하게 된다.


설명은 여기 https://mbed.org/handbook/SerialPC 참고


#include "mbed.h"              
 
Serial pc(USBTX, USBRX); // tx, rx
 
int main() {
    pc.printf("Hello World!\n");
}

끝..



저작자 표시 비영리 변경 금지
신고

mbed 소개자료

ARM 에서 밀고 있는 무료 온라인 컴파일 환경

사이트 주소는 http://mbed.org 이다.

요즘 플랫폼도 많고, 사용자도 많아진 듯.


NXP, ST, Freescale 어떤 칩을 쓰던 쉽게 컴파일하고 테스트할 수 있는 환경이다.

난 간단한 "Hello World" 수준의 프로그램밖엔 못해봤지만.

많이 자동화 되어 있고, 라이브러리도 많이 있다.


한글자료로 찾아보니 거의 하나밖에는 없네..

그래도 복사해서 소개


출처 : http://wiki.vctec.co.kr/devboard/mbed


하위 페이지 나열


저작자 표시 비영리 변경 금지
신고

CMSIS-DAP Interface Firmware | mbed.org

간단한 CMSIS-DAP 디버거를 만들고 싶다면 꼭 읽어보자.

전체적인 설명페이지는 여기 : http://mbed.org/handbook/cmsis-dap-interface-firmware


CMSIS-DAP interface F/W

한국말로 설명하는 페이지가 만들어 지려나~

일단, 원본 페이지는 http://mbed.org/handbook/cmsis-dap-interface-firmware

결론적으로 보니, CMSIS-DAP Interface를 담당하는 보드는 LPC11U35 시리즈가 부착된 보드를 사용해야 하고 타켓보드로는 Target Flash algorithm이 이미 구현되어 있는 LPC812, LPC1768, KL25Z, KL46Z, KL05Z 중에 하나를 탑재한 보드로 골라야 이 페이지가 제공하고 있는 정보를 실제로 구현해서 검증해 볼 수 있겠다.

소스 저장소

제공하는 기능

  • USB Mass Storage Device for drag and drop programming of the target chip
  • USB Communications Device Class for Serial Communication with the target chip
  • USB HID CMSIS-DAP for debugging
  • USB bootloader for updating the interface firmware itself

하드웨어 구조

http://mbed.org/media/uploads/emilmont/board.png

여기서 중요한 것은 빨간박스 왼쪽이라는 것. PC쪽에도 붙고, Target MCU쪽으로도 붙는 기능을 담당.

그림으로 좀 더 크게 보면, http://mbed.org/media/uploads/emilmont/interface.png

PC에 연결

아래 정의된 형태로 기기가 잡힌다.

  • MSD, mass storage device class ; 이건 USB Driver로 잡히는 부분
  • CDC, communications device class ; 이건 Virtual Serial Port 등으로 쓰이는 것..
  • HID, human interface device class ; 이건 ... 조사를 좀더

Target MCU에 연결

여러가지 핀들이 연결되지만, 기본적으로

  • SWD + Reset
  • UART
  • Sleep and Wake (Not currently implemented, reserved for future use)

소프트웨어 부분

아래의 내용들을 참고하면 되겠다.

공유 코드들

Bootloader든 CMSIS-DAP Interface F/W 든 공통적으로 사용되는 코드/미들웨어부분은 아래 폴더에 저장되어 있음

  • shared\cmsis: The CMSIS-CORE software layer
  • shared\rtos: The RTX operating system
  • shared\USBStack: The USB Device middleware

Bootloader

현재 LPC11U35 지원코드만 공개되어 있음, 위치는 여기로

bootloader\mdk\lpc11u35\lpc11u35_bootloader.uvproj

At startup it checks the state of a given pin, default high by pull-up resistor: 기본적으로 풀업이 된 핀이라는 것.

  • If the pin is high: it simply relocates the vector table to point to the interrupt handlers of the CMSIS-DAP Interface Firmware and then it jumps to its start address.; USB 디바이스를 잡고, bin 코드 카피을 기다리는 모드로 진입
  • If the pin is low: it enumerates as a mass storage device, waiting for a new firmware image to be flashed using In Application Programming (IAP) ; 인터페이스 펌웨어 자체를 변경하고자 하면 이런 모드로 진입해야 함..

프로그램의 구성은 아래 그림과 같이 나누어져 있다.

http://mbed.org/media/uploads/emilmont/bootloader.png

새로운칩에는??

나중에 시도할 때 좀 더 자세히 보기로 하고 여기서 스킵~~ 일단, 처음에는 LPC11U35를 쓰는 것이 단순한 방법~

The current implementations are:

  • LPC11U35: bootloader\hal\TARGET_NXP\TARGET_LPC11U35

Flash 알고리즘

Target MCU에 새로운 이미지 파일(F/W bin 파일)을 프로그램할 수 있도록 하는 flash algorithm을 Target MCU의 RAM영역에 로드되어야 한다.

이 알고리즘들은 각각 개발해야 하는데,

position independent code로 컴파일 된 프로그램 결과물을 binary blob라 불리는 배열코드로 변경한다음, 인터페이스 코드에 복사하여 넣은 다음 코드를 개발하면 된다. 아래의 Pythone 코드 사용법을 보고 문장을 고침 문맥이 이상하다. 수정이 필요함

일단 제공되는 2가지 MDK 프로젝트는 다음과 같다. We provide two such MDK projects for generating the flash algorithms for two family of microcontrollers:

  • interface\flash_algo_mdk\LPC_IAP\LPC_IAP.uvproj: flash algorithm for NXP LPC family
  • interface\flash_algo_mdk\MKXXX\MKXX.uvproj: flash algorithm for Freescale MK family

당연한 얘기지만, 위의 프로젝트들은 multiple configurations을 가지고 있다. 각각 다른 Flash size 별로

일단, 만들어진 코드들은 제공되는 Python script 로 c code 형태로 변경하여 원하는 Target에 맞는 인터페이스 F/W 프로젝트에 포함시킬 수 있다. 스크립트의 사용은 아래와 같다.

  1. 일단 output elf binary ".axf"파일을 tools\tmp\flash_algo.axf 에 복사한다.
  2. 다음 코드를 수행한다.

1
tools> python flash_algo_gen.py
  1. 그럼 tools\tmp\flash_algo.txt 파일이 생성된다. 아래와 같은 파일이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const uint32_t flash_algo_blob[] = {
    0xE00ABE000x062D780D0x240840680xD30000400x1E6440580x1C49D1FA0x2A001E520x4770D1F2,
 
    /*0x020*/ 0x28100b000x210ed3020xd0eb010x494f47700x607af44f0x600844490x2100484d0x21aa7001, 
    /*0x040*/ 0x215573010x210173010x1c40f8000x477020000x477020000x41f0e92d0x20324c460x2500444c, 
    /*0x060*/ 0xe884261dL0xf1040061L0x4f4301140x462046880x696047b80x2034b9600x61e8840x4641483b, 
    /*0x080*/ 0x680044480x462060e00x696047b80xd0002800L0xe8bd2001L0xe92d81f0L0xf7ff41f0L0x4d35ffc1, 
    /*0x0A0*/ 0x444d46040xe9c52032L0xf1050400L0x4e3201140x4628460f0x47b060ac0xb9686968L0xe9c52034L, 
    /*0x0C0*/ 0x482a04000x444860ac0x680046390x462860e80x696847b00xd0dc2800L0xe7da2001L0x41f0e92d, 
    /*0x0E0*/ 0x646140x4825d11d0x12fcf8d40xd03a4281L0x428148230x4823d0370xd0344281L0x4030ea4f, 
    /*0x100*/ 0xd0304281L0x100e9d40xe9d44408L0x441112020x692144080x696144080x69a144080x42404408, 
    /*0x120*/ 0x463061e00xff7cf7ffL0x21324d120x4f12444d0x1000e9c50x114f1050x468860a80x47b84628, 
    /*0x140*/ 0xb9806968L0xe9c52033L0xf44f0600L0xe9c57000L0x480640020x444846410x612868000x47b84628, 
    /*0x160*/ 0x280069680x2001d0950xe7930x40x400fc0800x80x1fff1ff10x4e697370, 
    /*0x180*/ 0x123456780x87654321L0x00x0, 
};
 
static const TARGET_FLASH flash = {
    0x1000002F// Init
    0x10000051// UnInit
    0x10000055// EraseChip
    0x10000097// EraseSector
    0x100000DD// ProgramPage

Interface

현재, 2가지 모델이 지원된다. 공개된 것이 2개라는, 각 벤더별로 각 회사에서 지원하고 있겠지..

  • LPC11U35: interface\mdk\lpc11u35\lpc11u35_interface.uvproj
  • KL25Z: interface\mdk\kl25z\kl25z_interface.uvproj

각 프로젝트는 여러 설정을 지원한다.

  • Support different targets: providing a different flash algorithm and reset/unlock sequences
  • Standalone build at address 0x0 (useful during development for better debugging) / Bootloader build at address 0x5000 ready to be loaded by the bootloader.

새로운 Target MCU에 대한 지원

아래 2 파일들을 잘 구성하면 된다.

  • target_flash.h: Implements an API to load a new binary into the flash of the target, largely generated from the above Flash Algorithm project
  • target_reset.c: provides function in order to unlock/set the target in a specific state

현재 이미 구현된 target은 다음과 같다 :

  • LPC812: interface\target\hal\DBG_NXP\DBG_LPC812
  • LPC1768: interface\target\hal\DBG_NXP\DBG_LPC1768
  • KL25Z: interface\target\hal\DBG_Freescale\DBG_KL25Z
  • KL46Z: interface\target\hal\DBG_Freescale\DBG_KL46Z
  • KL05Z: interface\target\hal\DBG_Freescale\DBG_KL05Z

새로운 Interface Chip에 포팅

잘 만든 USB IP가 들어간 새로운 칩이 있다면 이 Interface F/W을 포팅할 수 있다.일단 이 이슈는 스텝전이고, LPC11U35에 해 본 다음 진행할 것이라 나중에 보강해 보자.

Concatenated Production Image

양산시 이미지 합치기 이렇게 번역이 되건만, 내용파악이 정확히 되지 않아.나중에..

저작자 표시 비영리 변경 금지
신고
◀ PREV 1 NEXT ▶