Fullscreen 전용

키보드 매핑이 안맞아 찾다 발견했는데,

X11위에 띄우는거에 비해 한 3배정도 빠른듯..

터미널에서 띄우기 좋음

바이너리는 PiStore에서 유료로 판매중.



Source : https://pc.kakao.com/talk/notices/ko


안녕하세요, 카카오톡 PC팀입니다.

최근 PC버전 인증 메시지로 사칭한 스미싱 문자가 발견되어 이용자 여러분의 주의를 부탁드립니다.

카카오톡은 어떠한 경우에도 PC버전의 인증 번호 및 로그인 알림을 문자 메시지로 보내지 않습니다.

카카오톡을 사칭한 스미싱 문자의 URL을 클릭할 경우 개인정보 유출 또는 소액결제 등의 피해가 발생할 수 있으니,

아래와 같은 유형의 문자메시지는 받는 즉시 삭제하시거나 인터넷침해대응센터(국번없이 118)에 문의해주세요.

>> 카카오톡 사칭한 스미싱 문자 메시지 원문 예제

KakaoTalk PC버전에서 접속되었습니다. 본인이 아니시면 차단하기 (링크)

KakaoTalk 다른장비(PC)에서 접속되었습니다. 본인이 아니시면 차단하기 (링크)  




이 안에 kindle-5.4-jailbreak.zip이 들어 있는데,

요걸 풀어서 루트 디렉토리에 집어넣어 놓고,

메뉴 -> 세팅 -> 메뉴 -> 펌웨어 업그레이드 하면

밑에 jailbreak라고 뜬다.

루팅 끝.

일단 아무것도 할 수 없는 루팅 방법을 포스트해놓고 있었다 ㅎㅎ

잠금화면 변경을 위해 몇가지 해보니 안되더라....

제대로 된 탈옥 및 잠금화면 변경방법까지 기술함..

일단 버전이 5.3.3은 안된다고 한다. 아마 상위버전은 안된다고 봐야겠지..

다행히 킨들은 다운그레이드가 된다.


요걸로 일단 내려본다. 흐흐..

걍 루트에 넣고 업데이트 하면 된다.

킨들에 복사하고 뽑은다음에 메뉴 > 세팅 > 메뉴 > 업데이트

자 이제 컴터에 다시 연결하고..


요놈 압축을 풀면 jailbreak.mobi, jailbreak.sh, MOBI8_DEBUG가 나온다.

jailbreak.mobi는 Documents에 집어넣고 나머지 두개는 루트에다 갖다 넣는다.

그리고 뽑은다음에 메뉴 > 세팅 > 메뉴 > 업데이트


일단 내껀 걍 페이퍼화이트니, 요걸 쓰면 된다.


페이퍼화이트 2 유저는 요걸로 하면 된다.


파이썬 지우려면 요거.

마찬가지로 루트에 넣고 메뉴 > 세팅 > 메뉴 > 업데이트


잠금화면 변경하는 넘이다.

물론 난 걍 페이퍼화이트 유저니까 touch_pw 버전으로 설치한다.

페이퍼화이트2 유저들은 pw2 버전으로 설치하면 됨.

이것도 마찬가지로 루트에 갖다 박고 메뉴 > 세팅 > 메뉴 > 업데이트

다 하고 킨들 연결하면 linkss라는 디렉토리랑 생겼을거다.

linkss 안에 screensavers에다가 잠금화면으로 쓸 파일을 758x1024 grayscale png로 맞춰서 넣어주면 된다.

저작자 표시
  1. Aterilio 2014.02.28 18:08 신고

    킨들 페화가 안드로이드 기반이 아닌데 루팅이 되는건가요?

  2. Aterilio 2014.04.02 01:15 신고

    킨들 페화는 Android 기반이 아니라 리눅스 기반으로 알고 있는데요...?
    페화 뿐 아니라 킨들 제품은.

  3. theredhorse 2014.07.15 16:24 신고

    킨들을 루팅하면 샘이나 알라딘에서 파는 이북을 읽을 수 있나요? 궁금합니다..

    • drake_kr drake_kr 2014.07.17 18:04 신고

      전 거의 대부분의 eBook을 TXT파일에서 변환해서 읽기 때문에 그다지 신경쓰지 않았는데요,
      샘이나 알라딘에서 파는 eBook을 읽을 수 있는 리더를 설치할 수 있는것으로 알고 있습니다..
      국내에 킨들사용자가 많이 없고 해서 구글링해도 잘 보이진 않네요..
      결정적으로 DRM이 들어간건 아무래도 보기 힘들겁니다.

  4. ㅇㅇㅇㅇㅇ 2016.01.26 10:21 신고

    루트가 어디임?

Source : http://geekswithblogs.net/WindowsEmbeddedCookbook/archive/2010/08/31/installing-windows-ce-6.0-tools-on-a-windows7-64bit-pc.aspx


I recently bought a new PC and I choosed a machine based on the 64bit version of Windows 7.
Using a 64bits OS will allow me to use more than 4GB of RAM and this is quite important for me because it will allow me to run multiple virtual machines to test beta products and keep some customers' development environment isolated from the others (for example for customers that need to test and certify each installed QFE and may allow me to install them on my development machine some time after their availability).
On the other side running VS2005 and the Windows CE tools on the "main OS" istead of running them inside the virtual machine will provide better performances and avoid some of the issues of virtualization (limited or wasted disk space, issue with some devices, like USB devices etc.), so I decided to install the tools on Win7-64bit as my main working environment and leave virtual machine for specific configurations.
This is an unsupported scenario for Windows CE development tools, so I'm not suggesting that you should upgrade your OS to 64bit if you are happy with your current 32bit setup.
In this post I'll try to report all the issues that I found with my setup and, hopefully, provide solutions (and maybe workarounds) to make Windows CE development possible on 64-bit machines.

1. Setup

As usual the first problems may happen during the tools installation.
First of all if you have newer releases of Visual Studio currently installed on your development machine you should unistall them and re-install them after you have set-upped VS2005 and Windows CE Plaform Builder.
You should run all the setup application as an Administrator, so you should give administrator rights to your current user (you may need to do that also to run VS2005) or, at least, right click on the setup executable and choose "Run as administrator".
The first issue I found is an error (2738) when the setup tries to run some vbscript code to complete the installation.
To fix this issue you should execute your command prompt as administrator (right click on cmd.exe or use this "trick" to create an administrative command prompt shortcut on your desktop or start menu) and re-register the vbscript runtime.
First of all, remove current registration information:
reg delete "HKCU\SOFTWARE\Classes\Wow6432Node\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}" /f
Then register the 64-bit version of vbscript.dll:
regsvr32 C:\Windows\SysWOW64\vbscript.dll
(the actual path of the DLL may vary if you have chosen a different path for the Windows folder)
Now you can run (as administrator!) the required installations:

- Visual Studio 2005
- Visual Studio 2005 service pack 1
- Visual Studio 2005 patch for Vista
- Windows CE setup
- Windwows CE 6 Platform Builder SP1
- Windows CE R2 setup
- Windows CE R3 setup

Then I suggest to try to build a simple OSDesign to check that all the components of the Windows CE build system are working correcly.

2. Installing QFEs

On my machine to install QFEs I needed to register again the vbscript runtime. I restarted my PC after VS2005/Windows CE installation and also installed some Windows updates, so you may not need to do that if you install the QFEs immediately after the setup of the main OS.
To speed-up QFEs setup I usually write a .bat file that install them in sequence using msiexec. Here's the code of a sample batch file that installs QFEs for ARM and x86 from march to june:

cd F:\Download\WinCE\QFEs\WINCE600
reg delete "HKCU\SOFTWARE\Classes\Wow6432Node\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}" /f
regsvr32 c:\windows\syswow64\vbscript.dll
regsvr32 c:\windows\syswow64\jscript.dll
start /wait WinCEPB60-100331-2010M03-Armv4I.msi
start /wait WinCEPB60-100331-2010M03-X86.msi
start /wait WinCEPB60-100430-2010M04-Armv4I.msi
start /wait WinCEPB60-100430-2010M04-X86.msi
start /wait WinCEPB60-100630-2010M06-Armv4I.msi
start /wait WinCEPB60-100630-2010M06-X86.msi

You may also use the /quiet or /passive command line switch to perform non-interactive setup of all the QFEs, but I suggest to keep the setup interactive the first time you install QFEs on a new machine to ensure that you'll be notified about any setup issue.
You can create your batch file by running:
dir /on /b > mybatch.bat
Inside your Windows CE QFEs directory.

3. Security

Some of the VS2005/Windows CE components may require network access to work. If you have the Windows Firewall enabled you will be prompted with the following authorization dialog:

This will happen also on 32bit machine.


Some devices use a USB connection for downloading and debugging of the OS image on the target. Some of them use RNDIS to emulate a network connection over USB and require a driver to operate.
This driver is part of the Windows7 install, but you need to tell to the system where it can find it.
As soon as your device is detected the OS will try to automatically find a driver for it, but fails:

Now you can go to the computer management console (right click on "my computer" and choose "manage"), and open device manager:

The RNDIS kitl device is marked with an exclamation mark to point out that its driver is not running.
Right click on it and choose "update driver", you'll be prompted with the driver selection wizard.
On the first step:

select "Browse my computer for driver software" and you will be prompted with the driver selection dialog:

Choose "Let me pick from a list of device drivers on my computer" and you'll see the device category list:

Select "Network adapters" (RNDIS emulates a network connection) , and then "Microsoft Corporation" (don't ask me about the differences between "Microsoft" and "Microsoft Corporation" here!):

Now you should select: "Remote NDIS compatible device":

Now your new KITL device is up and running and you’ll be able to download your OS images to it as you do with devices with a “regular” ethernet connection to your PC.

If you need to connect to a RNDIS device from a virtual machine is usually easier to set-up the RNDIS driver on your "real" machine and then share it with the virtual machine as you do  with other network connections.

If you are running Windows CE development tools on a 64bit machine and found other issues that I did not cover in this entry (and did not experience!) and want to share some tips-and-tricks with other developers, write a comment here and I'll be happy to update this entry, giving you credit for the tip, of course.

5. Generate an SDK

Usually after you’ve built and tested your OS image you need to generate an SDK to provide to application developers all the libraries, include files and documentation they need to develop applications targeted to your specific device.

The SDK configuration wizard works with no issues on my 64bit machine, but the build SDK command generated an error:

'C:\Program' Files (x86)\Microsoft Visual Studio 8\Common7\IDE>"C:\Program Files (x86)\Microsoft Platform Builder\6.00\cepb\IdeVS\GenSdk.exe" "C:\WINCE600\OSDesigns\S4WE\S4WE\SDKs\SDK1\obj\BuildSDK1.xml"
Required files may be missing. To resolve the issue, reinstall Platform Builder.

This happens because GENSDK.EXE (the tool that “packs” all the files required for your SDK in a MSI file that you can redistribute and install on developer’s machines) is a .NET application that is spawned from PB and runs in 64bit mode. 64bit mode has its own registry and the configuration keys generated by PB setup are only in the 32bit registry. That generates the problem.

To fix it we can just develop a small .NET application, force it to run as 32bit (x86) and reference GENSDK.EXE as an external assembly, invoking its main method from our new 32bit app. This will force GenSdk to run as a 32bit app, finding all the registry information it needs to complete the SDK build.

To create this new project select “File\New Project…” from the VS2005 menu.

The new project wizard appears:

Select Visual C#\Windows as project type and “Console Application” as template. I called my “wrapper” GenSDK32.

Chose “OK” and you are ready to develop your GenSDK wrapper application.

The first step is to add a reference to the “real” GenSDK application. Right click on the “references” entry in your project inside Solution exporer:

The Add Reference dialog appears:

Select the “Browse” tab and navigate to the directory where gensdk.exe is located (usually “C:\Program Files (x86)\Microsoft Platform Builder\6.00\cepb\IdeVS”), select GenSdk.exe and press “OK”.

Now a reference to GenSdk assembly has been added to your project.

If you double click on it you’ll be able to discover the object and namespace that it implements:

as you can see it implements just one object (the main application class), that implement method Main.

Let’s see how we can call it from your code.

This is the code that the wizard generated for our application:

using System;

using System.Collections.Generic;

using System.Text;

namespace GenSdk32


  class Program


    static void Main(string[] args)





To call the Main method of GenSDK we need to add just one line, inside our own Main method:

static void Main(string[] args)




Before we can build our application we need to configure it as 32bit only. We can do that by double clicking on the “Properties” node in Solution Explorer, this will bring up the project properties page:

Select the “Build” tab, choose “Release” as active configuration, and “x86” as Platform Target for your application.

Now you are ready to build it by choosing “build\build solution” from the VS2005 menu.

Now you can copy gensdk32.exe to the same directory where gensdk is installed.

To build our SDK we have to run gensdk32 from the PB command line. Go back to your OSDesign and choose “Build\Open release directory”.

Now you can copy and paste the command line of the previous failed gensdk.exe execution and replace it with gensdk32.exe:

"C:\Program Files (x86)\Microsoft Platform Builder\6.00\cepb\IdeVS\GenSdk32.exe" "C:\WINCE600\OSDesigns\S4WE\S4WE\SDKs\SDK1\obj\BuildSDK1.xml"

And your SDK will be built!

If you are too lazy to build your own gensdk32 project, you can download mine from here:

7. PBXMLUtils

The PBXMLUtils application has the same issue of GenSDK but, unfortunately, it does not provide access to its main application class and so you can’t build a 32-bit wrapper for it.

PBXMLUtils is used to generate makefiles and batch files from a PBXML file and also to update subroject configuration files. If you experienced problems with .bib and .reg settings of your subprojects not being included in the final image, you’ll have to covert PBXMLUtils.exe to 32 bits.

To do this you can use the corflags.exe utility that is part of Visual Studio installation.

Just open the VS Tools command prompt from the Visual Studio folder of your start menu and execute:

CorFlags “C:\Program Files (x86)\Microsoft Platform Builder\6.00\cepb\IdeVS\PBXMLUtils.exe” /32BIT+

(path of PBXLUtils may be different on your PC and it’s a good idea to do a backup copy of that file before you manipulate it.

8. Run-Time License Assessment Tool

This tool is another .NET executable that is not forced to run as 32bit. To fix it you should apply the same method described for PBXMLUtils tool, adding the /force switch to CorFlags command line to perform the conversion of  LicenseTool.exe even if it's a signed executable.

Your command line should be similar to this one:

CorFlags "c:\Program Files (x86)\Microsoft Platform Builder\6.00\cepb\IdeVS\LicenseTool.exe" /32BIT+ /Force

Technorati Tags: windows ce,tools,64bit


posted @ Tuesday, August 31, 2010 9:06 PM


Source : http://iwooki.tistory.com/31

afconvert -f 'caff' -d LEI16 입력파일 출력파일

afconvert -f 'caff' -d LEI16 ./aaa.mp3 ./sms-received6.caf


cydia 열어서 apt 설치해

coredev.pub 아이폰으로 복사해

복사한데로 가서 키 추가해

# apt-key add coredev.pub

소스리스트 추가해

# echo 'deb http://coredev.nl/cydia iphone main' > /etc/apt/sources.list.d/coredev.nl.list


# apt-get update


# apt-get install perl


아이폰에다 apm 깔려고 해봤는데, 그건 좀 비효율적인거 같고.. 아파치가 리포지트리에 올라와 있지도 않고..

일단 탈옥해

cydia 들어가서 apt 찾으면 나올거야 그거 깔어

그거 깔리면 sshd 나올거야 그거 깔어

cydia 나와

이제 뭐 putty나 securecrt같은걸로 들어갈수 있을거야

아이폰 IP 넣고 들어가

# apt-get install lighttpd php sqlite


lighttpd.conf 요거 /etc에 집어너

/var/www 만들고 거기다가 xe 집어너

gd 안깔렸다고 할거야

mimetype도 못잡아서 화면 이상하게 나올거야

그냥 폰에다 pdf 너놓고 볼거같으면 거기서 끝내도 상관없어

거기서 좀더 해볼라다가 두달 걸렸네?

크로스컴파일 능력되면 그게 가장 편할거야 아마

근데 난 크로스컴파일은 못했어..

아이폰에서 직접 php에 gd 붙여서 컴파일했어

탈옥할때 rootfs 늘려주는게 있어서 좀 편하게 했어

그리고 php 버전은 5.3은 안되나봐.. 5.2까지만 되는듯..

# apt-get install iphone-gcc

아이폰용 gcc 깔어

# dpkg -i fake-libgcc.deb

짜가 libgcc 깔어

# apt-get install perl

펄도 깔어

# apt-get install gawk make

make랑.. 몇개 더 깔아야되는데 생각이 안난다..

xcode에 보면 iphoneOS sdk 안에 iPhoneOS3.1.3.sdk 뭐 이런식으로 sdk 폴더가 있어

거기 안에 usr/include하고 usr/lib가 있는데 걍 복사하면 아이폰 날라가니까 /usr/local/include /usr/local/lib 없으면 만들고 복사해

그건 용량이 좀 돼서 걍 안올릴듯 필요하면 얘기해

헬로월드같은거 만들어서 컴파일해봐

아마 안될거야

-l어쩌구 하면서 로더에서 에러날꺼야

/usr/local/lib로 가서 일단 심볼릭링크 걸어

# ln -s libgcc_s_1.dylib libgcc_s_10.5.dylib

그 어쩌구가 뭔지 보고 /usr/local/lib에서 ls lib어쩌구* 해서 찾아봐

있으면 심볼릭링크 걸어

# ln -s lib어쩌구.dylib lib어쩌구뒤에붙은거.dylib

일단 헬로월드 컴파일 될때까지 해

http://www.zlib.net zlib 소스 받아

http://www.libpng.org/pub/png/libpng.html libpng 소스 받아

http://www.ijg.org libjpeg 소스 받아

http://download.savannah.gnu.org/releases/freetype/ libfreetype 소스 받아

http://www.boutell.com/gd/http/gd-2.0.33.tar.gz libgd 소스 받아

zlib 설치해

./configure -shared -prefix=/usr/local


make install

libpng 설치해



make install

libjpeg 설치해

./configure -prefix=/usr -enable-shared -enable-static


make install

freetype 설치해



make install

gd 설치해



make install

php 설치해

./configure --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-gd=/usr/local --enable-fastcgi

아마 한방에 될리가 없을거야

아까 말해준것처럼 라이브러리 찾아가면서 하다보면 됨..

dns.c에서 에러나는건 #include <inet/nameser_compat.h> 붙여주면 돼.

컴파일할때 zend_extension.c에서 에러나는건 함수만 남겨놓고 걍 다 주석처리해..

그게.. mach-o execute 관련해서 아이폰에서 컴파일 못하게 헤더에 박혀있는듯..

아, dns쪽 라이브러리 에러가 날때는 php 소스폴더 안에 Makefile에서 보면 CCFLAG라는거 있는데 거기서 -lresolv 추가해주면 됨..

mimetype은 리눅스에서 파일 몇개 가져오면 되고..

난 이거 하는데 두달동안 삽펐지만 이거 보고 하면 이틀이면 끝나것지..

모르는게 있으믄 덧글 달어


Source : http://dukemon.tistory.com/44



졸업작품때문에 Windows CE 5.0용 어플리케이션을 만들일이 생겨서 나름 용돈으로 책도 사보고 eMbedded Visual C++ 4.0, Windows CE 5.0 Standard SDK도 설치해보고, 여러가지 예제 프로그램도 짜보고 있다.
문제는 시리얼 통신이었다. 실제 타겟 보드가 있다면 별 문제 없겠지만, 타겟 보드 없이 에뮬레이터로 시리얼 통신하려니까 난감하기 짝이 없었다. 에뮬레이터의 도움말에는 분명히 개발용 컴퓨터의 실제 시리얼 포트와 매핑시킬 수 있다고는 되어 있는데 하는 방법이 제대로 안나와있었다.
결국 MSDN과 구글 그룹스 뒤진지 반나절 삽질 끝에... 겨우 알아냈다. (사실 꼼꼼하게 검색했으면 좀 더 빨리 알아냈을수도...ㅜ.ㅜ)
먼저 Standard SDK에 포함된 에뮬레이터는 eVC++ 4.0에서 바로 실행해볼 수 있지만 시리얼 통신 매핑이 안먹는다. 구글링한 결과 eVC++ 4.0의 [Tools]-[Configure Platform Manager]-[STANDARDSDK_500_Emulator]의 속성(Properties)에 들어가서 [Startup Server]의 콤보박스를 [Emulator Startup Server]로 해놓고,(아마 디폴트로 되어 있을듯) 그 옆에 [Configure]버튼을 클릭하면 나오는 Emulation Configuration Settings 창을 건드리면 된다고 한다. Communication 그룹 박스에 있는 Serial Port 2가 에뮬레이터의 COM1:과 매핑된다(Serial Port 1은 디버그 포트랑 매핑)고 하는데, 이거 안된다. 안되는지는 모르겠다. 되었으면 삽질할 필요도 없었겠다. ;;;


이런 방법으로 실제 포트와 매핑이 되지 않을 경우, 사용 가능한 다른 방법은 Command-Line Launch를 사용하는 것이다.
MSDN : Using the Emulator in Smart Device Projects
MSDN : Emulator Command-Line Launch Options
이 방법을 사용하기 위해서는 Standard SDK에 포함된 에뮬레이터를 사용하기 보단 따로 Windows CE 5.0 Emulator를 설치하는 편이 나을 것이다. 처음에는 번거롭고 도통 MS의 생각을 이해하기 힘들었는데 글을 쓰면서 생각해 보니 이 방법을 사용하는 것이 직접 플랫폼 빌더를 사용해 Win CE 5.0 이미지로 테스팅 하기 쉽겠다는 생각이 든다. 위의 출처 중 두번째 문서를 읽어보면 알수 있겠지만, 에뮬레이터는 결국 CE OS 이미지를 PC상에서 실행시켜 주는 프로그램이고 그 명령의 첫번째 옵션 /CEImage 를 사용하여 다양한 CE OS 이미지 상에서 테스트 해볼 있다는 이 MS의 생각인 듯 싶다. (최근 VS 2005에서 Standard 에뮬레이터가 빠진 이유도 이런것이 아니었을까? ;;;)
좌우 당간 에뮬레이터를 설치했으면 한번 실행해보자. 시작메뉴에 보면 새로 설치한 에뮬레이터가 있을 것이다.


살펴 보면 인터넷 익스플로어도 있고, MSN 메신저도 있는 걸로 봐서 Standard SDK의 에뮬레이터보다 뭔가 기능이 많아 보인다. 아마 에뮬레이터 이미지가 Win CE Core License가 아닌 Professional License 버전의 이미지인가 보다.
다시 시리얼 포트를 매핑하기위한 Command-Line Launch를 적용해보자. 이 에뮬레이터를 실행하기 위해 클릭한 Sample CE Device 바로가기의 속성을 들어가보자.


이 창의 대상 부분의 에디트 박스를 보면 명령어가 나와있다. 여기다 옵션을 추가해주면 된다.

"C:\Program Files\Windows CE 5.0 Emulator\Emulator_500.exe" nk.cem /serialport2 COM1

이렇게 하면 Win CE 에뮬레이터의 COM1: 포트가 실제 개발용 PC의 COM1과 매핑이 된다. 이제 이것을 어떻게 테스트 하면 좋을까? PC 뒤에 있는 에뮬레이터와 매핑된 COM1에 널모뎀 케이블로 다른 장치와 연결하면 상관없겠지만 PC가 하나뿐인 상태에서는 가상 시리얼 포트 프로그램을 쓰는 것이 좋을 것이다.
Virtual Serial Port Kit 이라는 프로그램이 있다. 유료지만 15일간은 무료로 사용해볼 수 있다.
이 프로그램으로 필자는 COM2-COM3 가상 포트를 만들었다. 그리고 /serialport2 COM2로 옵션을 바꿔서 에뮬레이터를 실행하고, PC에서는 하이퍼터미널 같은 시리얼 통신 프로그램을 사용하여 COM3로 연결하면 된다.


에뮬레이터에 프로그램을 집어넣는 것은 에뮬레이터의 메뉴에 있는 기능중 [Folder Sharing] 기능을 사용하면 된다. 이 기능을 사용하면 로컬 PC의 디렉토리를 선택할 수 있는데, 선택한 디렉토리는 에뮬레이터상에서 이동식 디스크로 인식된다. 이 기능은 에뮬레이터를 껐다 키면 사라지는데, Command-Line Launch의 옵션 중 /sharedfolder 를 사용하면 에뮬레이터 실행시마다 자동으로 지정된다.


로컬 PC의 디렉토리 중에서 eVC++ 4.0에서 "Win32 (WCE emulator) Debug" 로 빌드한 이미지가 있는 디렉토리를 선택한다. 그러면 시리얼 통신을 사용하는 어플리케이션이 매핑된 실제 포트를 통해 제대로 통신이 됨을 확인할 수 있을 것이다.


개발보드를 요즘 쪼물딱거리고 있는데..


부트로고가 마음에 들지 않아서 바꾸어 보려고 했습니다만, 국내사이트에서는 굉장히 찾기가 힘들더군요..


겨우 두어개 찾긴 했습니다만, 카페 회원만 받을수 있다거나 그런 경우였습니다..


어쨌건 기본적인 힌트를 얻고, 중국 사이트의 소스를 참조하여 만들었습니다.. ?_-;;


   1: #include "stdio.h"
   2: #include "stdlib.h"
   4: /***********************************************
   5: Data types
   6: ************************************************/
   7: #define dgNULL    0L
   9: #define dgTRUE    1
  10: #define dgFALSE    0
  11: typedef short int dgBOOL;
  13: typedef signed char    S8;
  14: typedef signed short int S16;
  15: typedef signed int    S32;
  17: typedef unsigned char    U8;
  18: typedef unsigned short int U16;
  19: typedef unsigned int    U32;
  21: #define BI_RGB 0L
  22: typedef struct tag_dgImage_BITMAPFILEHEADER {
  23:   U32 bfSize;
  24:   U16 bfReserved1;
  25:   U16 bfReserved2;
  26:   U32 bfOffBits;
  27: } _dgImage_BITMAPFILEHEADER;
  29: typedef struct tag_dgImage_BITMAPINFOHEADER{
  30:   U32 biSize;
  31:   S32 biWidth;
  32:   S32 biHeight;
  33:   U16 biPlanes;
  34:   U16 biBitCount;
  35:   U32 biCompression;
  36:   U32 biSizeImage;
  37:   S32 biXPelsPerMeter;
  38:   S32 biYPelsPerMeter;
  39:   U32 biClrUsed;
  40:   U32 biClrImportant;
  41: } _dgImage_BITMAPINFOHEADER;
  44: #define RGB_16BIT     0
  45: #define RGB_24BIT     1
  46: dgBOOL BMP2DMP( const char *const srcname, const char *const dstname, char rgbdata)
  47: {
  48:   U16 BMP_ID;
  49:   _dgImage_BITMAPFILEHEADER bmpfh;
  50:   _dgImage_BITMAPINFOHEADER bmpinfo;
  52:   FILE *fp1, *fp2;
  54:   /* load windows BMP file */
  55:   fp1 = fopen( srcname, "rb" );
  56:   if( !fp1 ) goto error;
  58:   fp2 = fopen( dstname, "wb" );
  59:   if( !fp2 ) goto error;
  61:   fread((void *)(&BMP_ID),2, 1, fp1 );
  62:   //if (BMP_ID != *((U16*) "BM")) goto error;
  63:   fread((void *)(&bmpfh),sizeof(_dgImage_BITMAPFILEHEADER), 1, fp1 );
  64:   fread((void *)(&bmpinfo),sizeof(_dgImage_BITMAPINFOHEADER), 1, fp1 );
  66:   printf( "Width : %d, Height : %d\n", bmpinfo.biWidth, bmpinfo.biHeight );
  67:   //printf( "Data Position = 0x%08X\n", bmpfh.bfOffBits );
  68:   {
  69:     int i, j;
  70:     unsigned short int rgb565;
  71:     unsigned char bgr[3];
  73:     fseek( fp1, bmpfh.bfOffBits,SEEK_SET );
  74:     for( i=(bmpinfo.biHeight)-1 ; i>=0 ; i-- )
  75:     {
  76:       for( j=0 ; j<(bmpinfo.biWidth) ; j++ )
  77:       {
  78:         if(rgbdata == 0)
  79:         {
  80:           fread( bgr, 3, 1, fp1 );
  81:           rgb565 = ((((U16)bgr[2])&0xF8)<<8) | ((((U16)bgr[1])&0xFC)<<3) | ((((U16)bgr[0])&0xF8)>>3);
  82:           //printf(" (%3d, %3d) = (%3d, %3d, %3d) = 0x%04X\n", j, i, bgr[0], bgr[1], bgr[2], rgb565 );
  83:           fseek( fp2, (i*bmpinfo.biWidth + j)*2, SEEK_SET );
  84:           fwrite( &rgb565, 2, 1, fp2 );
  85:         }
  86:         else if(rgbdata == 1)
  87:         {
  88:           fread( bgr, 3, 1, fp1 );
  89:           fseek( fp2, (i*bmpinfo.biWidth + j)*3, SEEK_SET );
  90:           fwrite( bgr, 3, 1, fp2);
  91:         }
  92:         else
  93:         {
  94:           goto error;
  95:         }
  96:       }
  97:       // 4 byte aline per every line.
  98:       if( (bmpinfo.biWidth*3) % 4 )
  99:       {
 100:         fread( bgr, (bmpinfo.biWidth*3) % 4, 1, fp1 );
 101:       }
 102:     }
 103:   }
 105:   switch(rgbdata)
 106:   {
 107:   case 0:
 108:     printf( "16BIT RGBDATA\n" );
 109:     break;
 110:   case 1:
 111:     printf( "24BIT RGBDATA\n" );
 112:     break;
 113:   default:
 114:     break;
 115:   }
 116:   //    printf( "saved\n" );
 117:   if( fp1 ) fclose( fp1 );
 118:   if( fp2 ) fclose( fp2 );
 119:   return dgTRUE;
 121: error:
 122:   printf( "error\n" );
 123:   if( fp1 ) fclose( fp1 );
 124:   if( fp2 ) fclose( fp2 );
 125:   return dgFALSE;
 126: }
 128: int main( int argc, char *argv[] )
 129: {
 130:   if( argc != 4 )
 131:   {
 132:     printf( "Usage : bmp2dmp.exe srcfilename dstfilename RGB_DATA\n" );
 133:     printf( "<>\n" );
 134:     printf( "0 : 24Bit BMP File --> 16Bit RGB DATA\n" );
 135:     printf( "1 : 24Bit BMP File --> 24Bit RGB DATA\n" );
 137:     return -1;
 138:   }
 140:   //    if( BMP2DMP( (const char *const)argv[1], (const char *const)argv[2] ) )
 141:   if( BMP2DMP( (const char *const)argv[1], (const char *const)argv[2] , (atoi(argv[3]))))
 142:     return 0;
 143:   return -1;
 144: }


사용법은, 해상도에 맞는 bmp파일을 16비트로 작업하시고 저장은 24비트로 하십니다..


그리고 콘솔에서

bmp2dmp 원본.bmp 사본.bin 0


요렇게 돌리면 750kb짜리 파일이 하나 생깁니다..


파일을 업로드하면 전송이 시작됨과 동시에 화면이 갱신되기 시작합니다..



저야 개인이니 별 상관없습니다만, 회사에서 납품을 했는데 부트로고가 개발보드 생산업체면 난감하잖아요 ㅋㅋ


UI도 좀 짜서 이쁘게 만들어보려다가.. 이런게 필요한 사람이 있으면 얼마나 있을런지.. 그리고 이게 필요한 사람이면 콘솔이 편할 확률이 훨씬 높다고 생각해서 걍 냅뒀습니다 ㅋㅋ


어쨌건 샘플도 첨부합니다..


Operation 부분은 Circuit Design이라, 문제될 소지가 있을듯하여 삭제하였습니다..

MS Word로는 언제 어디서나 볼 수 있는 상황이 만들어지지 않아, 웹용으로 편집하였습니다..

기본적으로 공개합니다만, 제작사의 요청이 있을 경우 비공개로 전환하도록 하겠습니다..


MV2530 BSP Build Guide

1 BSP 추가하기

1.1 Installing BSP

MV2530 폴더를 WINCE500\Platform 에 복사한다. (동일한 이름의 폴더가 있다면 이전 폴더는 백업하는 것이 좋다.)

Platform Builder 5.0을 실행한다.

1.2 Catalog에 등록하기

1.2.1 아래 그림같이 File 메뉴의 “Manage Catalog Item…” 메뉴를 선택한다.


1.2.2 mv2530.cec와 동일한 item이 있다면 삭제를 해야만 한다. 삭제를 하지 않고 폴더만 복사하여 BSP를 이용할 경우 새로이 변경된 BSP의 정보들이 갱신되지 않는다.


1.2.3 mv2530.cec item을 선택 후 “Remove” 버튼을 클릭하면 아래 그림과 같은 확인 대화창이 나타난다. 이 대화창의 “예(Y)” 버튼을 클릭하면 해당 아이템은 삭제 된다.


1.2.4 이제 새로운 mv2530.cec 파일을 import 하기 위하여 아래 그림의 “Import…” 버튼을 클릭하고, WINCE500\Platform\MV2530 폴더내에 있는 새로운 mv2530.cec 파일을 선택하여 추가한다.


1.2.5 아래 그림과 같이 Catalog에 “MMSP2+ (MV2530): ARMV4I” 필드가 추가된 것을 확인 할 수 있다.


1.3 MV2530을 이용한 새로운 Platform 만들기

1.3.1 File 메뉴에서 New Platform 메뉴를 선택한다.

그러면 아래와 같이 “New Platform Wizard ? Step 1”의 대화창이 나타난다. 이때 “Next” 버튼을 클릭하여 다음 단계로 넘어간다.


1.3.2 Workspace의 이름으로 사용할 이름을 입력하고 “Next” 버튼을 클릭한다. 이때 workspace의 저장 경로도 함께 지정할 수 있다.

아래의 예에서는 workspace의 이름을 “MV2530_ref”로 지정한다.


1.3.3 아래 그림과 같이 BSP를 선택하는 wizard에서 “Available BPSs”에 나타나는 리스트에서 “MMSP2+ (MV2530): ARMV4I”를 볼 수 있다. 우리가 관심이 있는 BSP는 BSP는 MMSP2+ 이므로 “MMSP2+ (MV2530): ARMV4I”를 체크하고 “Next” 버튼을 클릭한다.


1.3.4 다음 단계인 Design Template를 선택하는 wizard에서는 “Available design templates”를 볼 수 있다. 여기서 원하는 template를 선택하고 “Next” 버튼을 클릭한다. 여기서는 아래 그림과 같이 “Mobile Handheld”를 선택하고 “Next”를 클릭한다.


1.3.5 다음 단계에서는 OS design에 추가하고 싶은 application이나 media를 선택하여 체크한다.


디폴트로 선택되어 있는 “Quarter VGA Resources ? Portrait Mode” 선택을 해제한다.

1.3.6 다음 단계에서는 networking & communication을 선택하고 “Next”를 클릭한다.


1.3.7 마지막으로 아래 그림과 같이 “Completing the New Platform Wizard” 대화 상자를 볼 수 있다. “Finish” 버튼을 클릭하여 Platform 생성과정으로 종료한다.


2 Platform Configuration

2.1 Configuration Settings for Development Board

2.1.1 빌드 옵션을 변경하기 위하여 아래 그림처럼 “Platform” 메뉴에서 “Settings…”을 선택한다.


2.1.2 아래 그림처럼 “Platform Settings” 대화 상자가 나타나면 모든 “Build Options” tab을 선택하고 모든 option들을 클리어 한다.


2.1.3 “Locale” tab을 클릭하여 사용된 언어를 선택한다. 한국어 사용을 위하여 아래 그리과 같이 “Locale:” 리스트에서 “한국어”를 체크하고, “Default language:” 콤보박스에서 한국어를 선택한다.


3 Building WinCE OS

“Build OS” 메뉴의 “Sysgen”을 실행 하거나 “Sysgen

” 버튼을 클릭하여 system generation을 실행한다. 이런 build가 에러없이 실행되면 아래와 같은 결과 화면을 볼 수 있다. Warning은 무시해도 상관없다. Warning은 무시해도 상관없다.


4 Components 추가하기

우선 툴바의 “Catalog” 버튼을 클릭하던가 “View” 메뉴에서 “Catalog”를 선택하여 Catalog window를 연다.

4.1 Display Driver

4.1.1 Adding Required Components

catalog에서 “Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> DISPLAY -> DISPLAY”를 선택하여 추가한다. (선택된 아이템 위에서 마우스 오른쪽 버튼을 클릭해서 “Add to OS Design” 메뉴를 선택한다.)


4.1.2 Rotate Display Driver Function 추가하기

MMSP2+ display driver에서는 화면 회전 기능을 지원한다.

90도 회전화면 : “Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> DISPLAY -> ROTATE -> 90 ROATE”

180도 회전화면 : “Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> DISPLAY -> ROTATE -> 180 ROATE”

270도 회전화면 : “Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> DISPLAY -> ROTATE -> 270 ROATE”


4.2 USB Host Driver

아래 그림과 같이 “Catalog -> Device Drivers -> USB Host -> USB Host Controllers -> OHCI”를 추가한다.



4.2.1 USB Function Device Driver

마우스, 키보드, Storage 같은 USB Function Device를 사용할 수 있다.

clip_image053 USB 마우스 추가하기

“Catalog -> Core OS -> Windows CE devices -> Core OS Services -> USB Host Support -> USB Human Input Device (HID) Class Driver -> USB HID Keyboard and Mouse” component를 선택하여 추가한다. USB 키보드 추가하기절의 USB HID Keyboard and Mouse를 추가하고 “Catalog -> Device Drivers -> Input Devices -> Keyboard/Mouse -> NOP(Stub) Keyboard/Mouse English” component를 선택하여 추가한다.

clip_image056 USB Storage device 추가하기

“Catalog -> Core OS -> Windows CE devices -> Core OS Services -> USB Host Support -> USB Storage Class Driver” component를 선택하여 추가한다.


4.3 Button and KeyPad Driver

4.3.1 Adding Required Components

Button Driver : “Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> MP2530F Button(KeyPad) -> Button

KeyPad Driver : “Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> MP2530F Button(KeyPad) -> KeyPad

Button과 Keypad 드라이버는 서로 배타적이다. 즉 두개의 드라이버중 하나만 추가되어야 한다. (동시 두개의 드라이버를 포함할 수 없다.)


만약에 “Button” 드라이버를 사용한다면 “device drivers -> input devices”에 다른 키보드 드라이버를 추가할 필요가 없다.

4.4 Touch Screen Driver

4.4.1 Adding Required Components

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> TOUCH(ADC)” component를 추가한다.


“Catalog -> Core OS -> Windows CE devices -> Shell and User Interface -> User Interface -> Touch Screen (Stylus)” component를 추가한다.


4.5 Audio Driver

4.5.1 Adding Required Components

“Catalog -> Core OS -> Windows CE devices -> Graphics and Multimedia Technologies -> Audio -> Waveform Audio” component를 추가한다.


4.5.2 Adding Default Audio Driver Component

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> AUDIO” component를 추가한다.


4.5.3 Adding AC97 Device Driver Component

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> BOARD -> AUDIO -> STANDARD AC97” component를 추가한다. 이 component는 AC97 specification rev. 2.2를 만족한다.


4.6 Storage Device Drivers

4.6.1 Adding Required Components

l Core OS -> Windows CE devices -> File System and Data Store -> Storage Manager -> FAT File System

l Core OS -> Windows CE devices -> File System and Data Store -> Storage Manager -> Partition Driver

l Core OS -> Windows CE devices -> File System and Data Store -> Storage Manager -> Storage Manager Control Panel Applet


4.7 SD/MMC Storage Driver

“Third Party -> BSPs-> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> STORAGE -> SD CARD”


4.8 NAND Flash Storage Driver

“Third Party -> BSPs-> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> STORAGE -> NAND Flash”


4.9 ATAPI(HDD) Driver

“Third Party -> BSPs-> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> ATAPI”


4.10 Serial Driver

MP2530F CPU에는 6개의 시리얼 포트가 있다. 6개 모두 시리얼 포트로 사용이 가능하고 1개의 시리얼포트는 디버그 시리얼 포트로 사용이 가능하다.


4.10.1 Serial Drivers 추가하기

“Third Party -> BSPs-> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> SERIAL -> SERIAL (COMx)”

이 콤포넌트의 숫자는 COM 포트의 숫자와 동일한 것이다. 하지만 하드웨어 UART의 포트 번호와는 다르다. 하드웨어 UART 포트 번호에 1을 더한 것이 COM 포트 번호이다.

4.11 USB Function Driver

4.11.1 Adding Required Components

“Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> USBD(INTERNAL)” 추가.


4.11.2 Adding Related Features

“Catalog -> Device Drivers -> USB Function -> USB Function Clients -> Mass Storage”

“Catalog -> Device Drivers -> USB Function -> USB Function Clients -> Serial”

Platform.reg 수정 : 디폴트 드라이버를 선택하여 수정한다.


"DefaultClientDriver"=- ; erase previous default


; "DefaultClientDriver"="RNDIS"

; "DefaultClientDriver"="Mass_Storage_Class"



4.12 Battery Driver

4.12.1 Adding Required Components

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> USBD(INTERNAL)” 추가


4.13 IR-Remote Receiver Driver

4.13.1 Adding Required Components

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> IR-Remote” 추가


5 Additional Components

5.1 VPP Driver

VPP driver는 Deinterlace, Scaler, Rotator 모듈 포함한다.

5.1.1 Adding Required Components

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> Drivers -> CSP -> VPP” 추가


5.1.2 Adding Related Features

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I -> DSHOW Filters -> MES VPP Transform Filter” 추가

Note> VPP 기능을 테스트하기 위해서는 “Graph Edit” component를 추가한다.


5.2 MP3 Play-Back

5.2.1 Required Components

아래 그림과 같이 MP3 Codec component를 추가한다.

“Core OS -> Windows CE Devices -> Graphics and Multimedia Technologies -> Media -> Audio Codecs and Renderers -> MP3 Codec”


“Core OS -> Windows CE Devices -> Graphics and Multimedia Technologies -> Media”에서 아래의 component들을 추가한다.

- DirectShow -> DirectShow Core

- Windows Media Player -> Windows Media Player

- Windows Media Player -> Windows Media Player OCX

- Windows Media Player -> Windows Media Technologies

- Media Formats -> MPEG-1 Parser/Splitter

- Audio Codecs and Renderers -> Waveform Audio Renderer


5.3 AVI Play-Back

5.3.1 Specifications

- Supports AVI format only

- Supports only MP3 as audio format

- MPEG4 SP/ASP Decoder@720x480, 30frames ? DivX3.11, 4x, 5x Playback

5.3.2 Required Components

“Catalog -> Third Party -> BSPs -> MMSP2+ (MV2530): ARMV4I”에서 하위 component인 아래의 component들을 추가한다.

- Drivers -> CSP -> Dual CPU Driver

- DSHOW Filters -> MES Video Decoder Filter

- DSHOW Filters -> MES AVI Demuxer Filter

- DSHOW Filters -> MES Video Renderer Filter


“Core OS -> Windows CE Devices -> Graphics and Multimedia Technologies -> Media”에서 아래의 component들을 추가한다.

- DirectShow -> DirectShow Core

- Windows Media Player -> Windows Media Player

- Windows Media Player -> Windows Media Player OCX

- Windows Media Player -> Windows Media Technologies


오디오 콤포넌트 추가에 대한 것은 MP3 Play-back 장을 참고.

6 Download Image with Ethernet and USB

WinCE OS 이미지를 타겟 보드에 다운로드하기 위해서는 타겟 보드에 Ethernet bootloader가 올바르게 동작되고 있어야 한다. (Bootloader 다운로드 관련된 내용은 “How to start the non bootloader state in NAND flash” 장을 참고.)

6.1 Setting Configuration of Ethernet Bootloader

l PC의 시리얼 포트와 타겟 보드의 디버깅 시리얼 포트를 제공되는 시리얼 케이블로 연결한다.

l 타겟 보드에 LAN 케이블을 연결한다.

l MES_DNW_V2.5 프로그램을 실행시키고 시리얼의 baud-rate를 115200bps로 세팅한다.

n MES_DNW_V2.5.exe는 “(BSP Root)\Tools\Downloader” 폴더에 있다.


n 부트로더의 동작이 이상이 없다면 위의 그림처럼 DNW에 메시지가 출력되는 것을 볼 수 있다.

6.1.1 Entering mBoot Menu.

부팅 시 “Press [ENTER] to download now or [SPACE] to cancel.” 메시지가 출력되고 boot delay count 메시지가 카운트 된다. 이때 키보드의 스페이스를 누르면 실행될 수 있는 메뉴들이 위의 그림처럼 표시된다.

다운로드를 위한 Ethernet 변수들을 세팅시키기 위하여 ‘1’을 선택한다.


위의 그림 처럼 Ethernet 세팅을 위한 메뉴가 나탄난다.

6.1.2 IP Address

위의 메뉴 그림에서 ‘1’을 선택하여 IP 주소를 입력시킨다. 입력 방식은 “xxx.xxx.xxx.xxx” 포맷으로 입력한다. (예.

6.1.3 Subnet mask

‘2’를 선택하여 IP 주소 입력과 비슷하게 값을 입력시킨다. (예.

6.1.4 CS8900 MAC Address

‘3’을 선택하여 MAC 주소를 입력한다. 입력포맷은 “hh.hh.hh.hh.hh.hh” 이다. (예. FF.FF.FF.1.0.3)

6.1.5 DHCP

DHCP를 disable 시키기 위하여 ‘4’를 선택하면 되고 이값은 토글된다. 초기값은 Enable이다.

6.1.6 Save Config Data

앞에서 세팅된 Ethernet parameter들을 저장할 경우 ‘s’를 입력하면된다.

6.1.7 Back

Ethernet 관련 변수들의 세팅을 끝내고 이전 메뉴로 가기 위하여 ‘escape key’ 나 ‘b’을 입력하면 이전 메인 메뉴 화면으로 이동된다.

“Boot Config” 메뉴로 진입하기 위하여 메인메뉴에서 ‘2’를 입력한다.

6.1.8 Write to Nand

WinCE 이미지를 NAND flash로 write할지를 결정하기 위하여 ‘1’을 입력해서 enable/disable 시킨다.

이 값이 Enable 되어 있으면 Bootloader가 ethernet을 통하여 WinCE 이미지를 다운로드 받은 후 NAND flash에 이미지를 write 한다. 이 값이 disable 되어 있다면 이미지 다운로드 후 NAND flash에 저장하지 않고 곧바로 WinCE를 부팅하게 된다.

개발 단계에서는 잦은 NAND flash write가 개발 시간과 연관이 되므로 이 값을 disable 해놓고 개발하는 것이 유리하다.

6.1.9 Reserved Image Area

이 값은 NAND flash의 WinCE 이미지 영역의 크기를 결정하는 값이다. 즉, NAND flash에서 WinCE 이미지가 차지하는 영역의 크기이다.

이 값은 32Mbytes로 세팅시켜서 쓰는 것을 추천한다.

6.1.10 Select Boot Device

이 메뉴에서는 부팅 방법을 선택할 수 있다. NAND, Ethernet, USB, SD, HDD의 방법이 있다. ‘3’을 입력하면 이 세 가지의 방법이 토글된다. Ethernet download를 사용하기 위해서는 “Auto Download Through Ethernet”을 선택하면 된다.

6.1.11 Boot Delay time

Boot delay time을 세팅시키기 위하여 ‘4’를 입력한다. 이 값의 단위는 초이다.

6.1.12 Reset Boot Config

이 메뉴를 선택하면 IP 주소, Subnet mask, DHCP의 값들이 초기값으로 세팅된다.

6.1.13 Image Update(USB and Serial)

이 메뉴에서는 USB나 UART를 통해서 bootloader, mboot, boot logo, OS를 update할 수 있다. 아래 그림에서 ‘6’을 선택하면 다운로드 디바이스를 변경할 수 있고 현재 보여지는 것이 선택된 디바이스이다.

clip_image134 Bootloader Update

이것은 NAND bootloader를 update하는 메뉴이다. mboot Update

이것은 mboot 자기 자신을 update하는 메뉴이다. Boot Logo Upate

Boot Logo 이미지를 update 할 수 있다. OS Update

OS를 업데이트할 수 있다.

6.2 Setting Network Options to Download WinCE image thru Ethernet

6.2.1 IP, MAC 주소등의 값을 세팅한다.

세팅된 정보를 저장하고 메인 메뉴에서 “Download through Ethernet” 메뉴를 선택하면 저장된 옵션정보를 이용하여 아래 그림과 같이 실행이 된다.


6.2.2 OS 이미지 다운로드를 위한 Platform builder 세팅 하기

Platform builder의 “Target” 메뉴에서 “Connectivity Options”를 선택한다. (아래 그림 참조)

‘Download’를 “Ethernet”으로 선택을 하고 다운로드가 준비된 타겟을 선택하기 위하여 “Settings” 버튼을 클릭한다.


6.2.3 부트 모드가 Ethernet download mode로 세팅된 부트로더는 Ethernet 부팅을 시작하면서 BOOTME packet을 보낸다.

타겟보드로부터 BOOTME 패킷을 받은 Platform builder는 ‘Active Devices’ 리스트에 타겟 보드의 디바이스 이름을 나타내 준다. 다운로드를 원하는 타겟을 하나 선택하고 ‘OK’ 버튼을 클릭한다.


6.2.4 Run Ethernet download

“Target -> Attach Device”를 선택하여 Ethernet download를 시작한다. (다운로드 시작은 타겟의 부트로더가 BOOTME 패킷을 보내야만 시작이 된다.)


6.2.5 Download count

다운로드 시에는 아래의 그림처럼 모니터 프로그램에 다운로드가 카운트 되는 것을 볼 수 있다.


6.3 Setting USB to Download WinCE image thru USB

USB로 OS 이미지를 올바르게 다운로드하기 위해서는 타겟 보드에 usb bootloader가 올바르게 올라가서 동작되고 있어야 한다.

6.3.1 Setting Configuration of USB Bootloader

l PC의 시리얼 포트와 타겟 보드의 디버그 시리얼 포트를 cross cable로 연결한다.

l DNW 를 실행시키고 아래 그림처럼 115200bps로 baud-rate를 세팅시킨다.

l 시리얼 연결을 위하여, ‘Configuration’ 메뉴의 “Options”를 선택해서 시리얼 포트 번호와 baudrate를 세팅시킨다. 다른 값들도 아래의 그림처럼 세팅을 시키고 “OK” 버튼을 클릭한다.


l 부트로더 부팅시 “Auto Boot: USB” 메시지가 나타나면 “ENTER”를 입력하던가 timeout을 기다린다.


6.3.2 Download Image Thru USB

USB 케이블을 타겟 보드의 USB port에 연결한다.

USB가 PC와 연결이 되면 DNW 타이틀 바에 “[USB:OK]”라고 바뀌고 DNW에는 “USB host is connected. Waiting a download.” 라는 메시지가 출력된다.


타겟보드를 PC에 처음 연결한 것이라면 USB driver를 설치해야 한다. USB 드라이버는 “(BSP root)\Tools\USBDriver” 폴더에 있다.

l OS 이미지 다운로드를 위해서 “USB Port -> Transmit” 메뉴를 선택한다. 그리고 Load dialog box에서 NK.nb0와 같은 OS binary image를 선택한다.


6.4 Update Image Thru UART

본 장에서는 “Image Update(USB and Serial)”메뉴에서 UART를 통한 이미지 update를 설명한다.

6.4.1 Serial Download 선택하기

메인메뉴에서 “Image Update(USB and Serial)” 메뉴를 선택하고 시리얼로 다운로드하게 하기 위하여 ‘6’을 입력한다. 아래 그림과 같이 Serial이 선택된 것을 볼 수 있다.


6.4.2 이미지 전송하기

위의 메뉴에서 update 하기 위한 번호를 선택한다. 그러면 아래 그림과 같이 DNW 메시지 창에 “Waiting image download” 메시지가 출력된다. 이때 “Serial Port -> Transmit” 메뉴를 선택한다.


6.4.3 다운로드할 이미지 선택하기


6.4.4 Bootloader or mboot update

Bootloader, mboot를 다운로드하기 위하여 ‘1’ 이나 ‘2’를 선택하면 아래 그림과 같은 메시지를 볼 수 있다. 이때 ‘y’를 입력하면 앞절의 부트로고 update와 같이 진해할 수 있다.


7 Using Debugger with KITL Connection

KITL(Kernel Independent Transport Layer)은 개발 PC와 타겟 디바이스와의 통신을 담당하는 통신 계층이다. KITL을 이용하여 커널과 타겟 플랫폼을 디버깅할 수 있다.

해당 BSP는 CS8900 Ethernet controller를 이용한 KITL 기능을 지원한다.


- source level 디버깅을 위해서는 OS 이미지가 Debug 모드로 빌드되는 것이 좋다.

- 디버그 모드의 OS 이미지 크기는 릴리즈 모드의 이미지보다 크다. OS 이미지 크기가 30MB 보다 적게 만드는 것이 좋다. OS 이미지 크기를 줄이기 위해서, internet explorer와 같은 큰 크기의 콤포넌트는 제거하는 것이 좋다.

- KITL은 네트워크 디바이스를 사용하기 때문에 CS8900 Network driver와 동시에 사용할 수 없다. KITL을 사용할 경우 CS8900 Network driver는 제거해야 한다.

7.1 Using Debugger with KITL Connection

우선 CS8900 Ethernet debugging library의 소스 파일을 수정해야 한다. 이것은 MMSP2+ CPU와의 통신에 이상이 없도록 하기 위함이다. 파일의 위치는 다음과 같다.


위의 폴더에서 cs8900dbg.c 파일을 열어서 아래의 매크로를 찾아서 삭제하거나 코멘트 처리한다.

#define CS8900_MEM_MODE

Platform builder의 FileView에서 CS8900 폴더를 선택한 후 마우스의 오른쪽 버튼 클릭 메뉴를 연다. “Build Current Project”를 선택하여 해당 라이브러리를 빌드한다.


7.2 Setting and Building OS Image for KITL Link

7.2.1 Building Debug mode

소스 레벨의 디버깅을 위하여 OS 이미지는 Debug 모드로 빌드되어야만 한다.


7.2.2 Platform Manager

Catalog 리스트에서 Platform Manager component를 추가한다.


7.2.3 Change Build Options

“Platform -> Settings” 메뉴를 선택한 후 나타나는 “Platform Settings” 대화 상자에서 “Build Options” 탭을 선택한다.

Build Options중에서 “Enable Kernel Debugger”와 “Enable KITL”을 선택한다.


7.2.4 Platform builder setting

“Target -> Connectivity Options”를 선택한 후 아래 그림과 같이 세팅한다.

모든 세팅이 끝나면 “Build OS -> Sysgen”을 선택하여 OS 이미지를 빌드한다.


7.3 Connect Platform Builder and Target System with KITL

Ethernet bootloader를 이용하여 OS 이미지를 다운로드한다. 다운로드가 완료되면 디버깅 창을 볼 수 있고 이제부터 커널 및 디바이스 드라이버 디버깅이 가능하다.


8 How to Start the none bootloader state on NAND flash

MP2530F는 다음과 같은 세 종류의 부팅 모드를 지원한다.

(1) static or dram memory bus boot

(2) NAND flash boot

CPU는 NAND flash의 0 sector 512 bytes를 address 0 에 복사를 하고 0 번지로 점프하여 프로그램을 실행한다. 많이 사용되는 부팅모드이다.

(3) UART port boot

NAND 부팅의 경우 비슷하다. UART 부트에서 CPU는 UART3으로부터 데이터가 들어오기를 기다린다. 16Kbytes의 데이터가 모두 들어올 때까지 CPU는 계속 기다리고 모든 데이터를 받으면 CPU는 0번지로 점프하여 프로그램을 실행한다. 만약에 16Kbytes보다 적은 데이터를 받으면 CPU는 UART3에서 데이터를 계속 기다린다.

8.1 Writing to NAND flash thru UART Port

8.1.1 하드웨어 핀을 UART boot mode로 변경을 하고 시스템을 리셋한다.

8.1.2 MES-DNW_V2.5 프로그램에서 “Serial Port” 메뉴의 “Uartboot_16K” 를 선택한다.


Open 대화상자에서 UART.nb0 파일을 선택한다.


8.1.3 Download is done.

다운로드가 완료되면 아래와 같은 메뉴 화면이 나타난다.


‘1’ : NAND.nb0 download

‘2’ : MBOOT.nb0 download

‘4’ : write to NAND

위의 순서대로 이미지를 다운로드하고 NAND에 이미지를 writing한다.

NAND writing이 모두 완료되면 위의 메뉴 화면이 다시 한번 나타난다.

8.1.4 NAND boot

Writing이 완료되면 NAND 부트모드로 바꾸고 시스템을 리셋한다. 올바르게 다운로드 되었다면 MBOOT 메뉴가 나타나는 것을 볼 수 있다.

l UART Boot 의 경우 다운로드 딜레이가 필요하다. 이것은 PC마다 다르기 때문에 Configuration 메뉴의 “UART Boot delay”값을 변경하여 지정해주어야 한다. 각자 PC에 최적화된 값을 찾아야 한다.

9 How to Build and Installing SDK

“Platform -> SDK -> New SDK” 메뉴를 선택하여 아래 그림과 같이 새로운 SDK를 만든다.



“Product name”과 “Manufacturer name”을 입력한다.


지원되는 개발 언어를 선택한다.


“Finish” 버튼을 클릭하여 SDK Wizard를 종료한다.


“Platform -> SDK -> Configure SDK” 메뉴를 선택하여 아래 그림과 같이 필요한 정보를 입력한다.




모든 선택이 완료되면 “Platform -> SDK -> Build SDK” 메뉴를 선택하여 SDK를 빌드한다.


SDK가 빌드된 폴더에 가면 .msi 파일이 존재한다. 이것을 실행시키면 SDK가 인스톨 되고 eVC에서 인스톨된 SDK를 확인 할 수 있다.

리모콘 키맵



+ Recent posts