How to LOCK/Unlock W7500(P) Flash memory

The Cortex M0 base W7500(and W7500P) from WIZnet has 128Kbytes Code Flash and 512 Bytes Data Flash inside. Locking read/write operation to Flash memory is an inevitable capability of a MCU, in order to protect his own application code from illegal copy or to avoid mistakes overwriting the original code by accident. With this post,…More

W7500(P) Flash memory Lock/Unlock 하기

WIZnet의 Cortex M0 기반의 MCU인 W7500(또는 W7500P) 내부에는 128KByte의 Code Flash와 512Byte의 Data Flash가 존재한다. Application code를 무단으로 복제하려는 시도를 피하거나 Application code를 다른 데이터로 덮어쓰는 실수를 회피하기 위해서 read operation이나 write operation에 대한 lock을 걸 수 있는 기능은 Flash memory를 가진 MCU에서 필수적인 기능이다. 이 글에서는 W7500(P)내의 Flash memory에 대한 read lock과 write lock을…More

[Python] Python2 와 Python3에서 hexadecimal 형변환 방법

컴퓨터 프로그래밍을 하다보면 Hexadecimal type의 데이터를 문자열로 바꾸어서 출력하거나, hexadecimal 값을 1씩 증가시키는 등 데이터를 가공해야하는 경우가 생긴다. 이번 포스트에서는 Python 2 와 Python 3에서 hexadecimal data를 다루는 데 유용한 함수들 및 활용예를 정리하고자 한다. 문자열로 표현된 Hexadecimal 값을 Hexadecimal의 bytes 형으로  변환하기 Hex 값으로 표현되는 대표적인 데이터가 MAC address이다. MAC address는 6 bytes의 문자와…More

[Python] Ubuntu에서 Python과 MySQL을 사용하기 위한 설정

Ubuntu에서 Python을 이용해서 MySQL DB에 접속할 필요가 자주 생긴다. Python에서 MySQL을 접속하기 위해서는 필요한 라이브러리와 mysql client 모듈을 설치해야한다. 이 작업은 사용자가 어떤 버전의 Python을 사용하는 지에 따라서 다르게 수행해야한다. Python과 무관하게 mysqlclient 라이브러리의 설치가 필요한데 아래 ‘공통’ 부분에 표시된 것처럼 수행하면 된다. 공통 $ apt-get install python-dev libmysqlclient-dev 이후 단계는 Python 버전에 따라서 아래…More

Python을 이용한 multi programming tool 개발기

Embedded System 개발자라면 생산과정이든, 펌웨어 업그에이드로 인해 생산된 제품을 다시 writing해야하는 경우든, 제품에 프로그램 writing해야하는 일은 종종 경험하게 된다. 문제는 수량이 많은 경우에 시간과 비용이 만만치 않다는 데 있다. 또, 각 단계별로 사람이 개입해서 제어를 해줘야하니 여간 귀찮은 일이 아니다. 이 글에서는 펌웨어 writing 업무를 반자동화(프로그램 된 것을 빼내고 새 모듈을 연결하는 등 작업자의 관여가…More