sobota, 31 lipca 2010

Programowanie Symbiana pod Windows 7

Zainstalowałem całe środowisko programistyczne na Symbiana, ale okazało się że nie działa tak jakbym się spodziewał. Szczególnie kompilacja z poziomu Carbide.C++ nie kompilowała kodu. Emulator epoc.exe wywalał się. Polecenie devices wymagałoby zmieniania ręcznego pliku konfiguracyjnego. W tej sytuacji zrozumiałem że potrzebna mi będzie maszyna wirtualna z Windows XP.

Użytkownicy wersji Windows 7 Proffesional, Ultimate i Enterprise mogą zainstalować tak zwany tryb XP. Ten tryb opiera się na zainstalowaniu oprogramowania Windows Virtual PC i jak uaktualnienia do trybu XP. Więc w takim przypadku pod Windows 7 Home Premium sam zainstalowałem Windowsa XP na Windows Virtual PC Po zainstalowaniu Windowsa XP musiałem ściągać ponad 90 poprawek Następnym krokiem było skonfigurowanie wirtualnej maszyny o dodatek RemoteApp

Poszukałem w internecie ActivePerl-5.6.1.635-MSWin32-x86.msi i ściągnąłem. Po zainstalowaniu sprawdziłem czy mam zainstalowane co wystarczyło mi zrobić z linii poleceń wpisać polecenie

perl.exe -version

This is perl, v5.6.1 built for MSWin32-x86-multi-thread...

Kolejny krok to instalacja na wirtualnym XP środowiska wykonawczego Javy czyli JRE ze strony Oracle i po zainstalowaniu wpisałem z linii poleceń

java.exe -version

i otrzymałem coś takiego

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)...

Następnie zasinstalowałem SDK S60 5th Edition SDK for Symbian OS
(zakładając ze jesteśmy zarejestrowani w Forum Nokia). Instalując SDK trzeba się upewnić że wirtualny Windows XP obsługuje na dysku partycje NTFS i jest uruchomiony jako 32-bitowy. Podczas instalacji jesteśmy proszeni o zainstalowanie CSL Arm Toolchain.

Po zainstalowaniu SDK zacząłem sprawdzać czy wszystko jest we właściwym miejscu w zmiennych środowiskowych. Wpisałem z linii poleceń

devices

pojawiło sie

S60_5th_Edition_SDK_v1.0:com.nokia.s60 - default

Następnie wpisacełem z linii poleceń epoc.exe U mnie to uruchamiało się i znikało. Pomyślałem że to problem ze nie mogę jeszcze uruchamiać emulatora bo nie mam zainstalowanego Carbide.C++

Więc ściągnąłem Carbide.C++ a następnie zainstalowałem. Po instalacji potrzebowałem poprawne skonfigurować Carbide.C++ Pierwszą rzeczą to było aktualizacja do wersji 2.6 z menu i wybrałem Help -> Check for updates. Po zainstalowaniu aktualizacji trzeba było zrobić restart Carbide.C++. Następną rzeczą było uruchomienie ustawień konfiguracyjnych
C:\Symbian\Tools\ADT_1.4\Carbide.c++\x86Build\env_switch\env_update.exe
i jak zainstalowanie kompilatora Nokii dla emulatora.

Uruchamiając IDE trzeba pozmieniać pewne domyślne ustawienia. Z menu wybierałem Windows -> Preferences. Pojawiło się okno Preferences, gdzie po lewej stronie miałem takie drzewko i wybierałem stamtąd węzeł Carbide.c++ i podwęzeł Platform Filtering Preferences.
Przy EKA2 Platforms pozostawiłem tylko Emulation (WinSCW) i GCCE (wszystko co ma w nazwie ARM odznaczyłem). Następnie sprawdziłem czy Carbide.C++ wykryło odpowiednią wersję S60 SDK to wybierałem węzeł SDK Preferences i tam zobaczyłem że Carbide dobrze wykrył S60 5th Edition SDK for Symbian OS. Zamknąłem i uruchomiłem z menu Carbide File -> New -> Symbian OS C++ Project i pojawiło się okno z którego wybrałem węzeł S60 -> GUI Application i przeszedłem krok po kroku wszystkie okna kreatora. Jak kreator zrobił całą strukturę folderów to w menu wybrałem Project -> Build Configuration -> Manage... i pojawiło się okno Add/Remowe Carbide Build Configuration i zaznaczyłem tylko Emulator Debug i Phone Release.
Zanim zacząłem kompilację to ustawiłem zakładkę Console na aktywną i wybrałem z menu Projekt Build All Configurations. Wtedy Carbide.c++ skompilował kod na wersję na komórkę oraz zrobi paczki w folderze sis a także zrobił wersję binarną dla emulatora. Komunikaty podczas kompilacji obserwowałem w zakładce Console. Uruchomiłem emulator przez wybranie z menu Run ->Run. Po kilku minutach uruchomił mi się emulator ale nale przestał działać. Trzeba liczyć się z tym że przy każdym uruchamianiu emulatora pojawiał się komunikat Alertu zabezpieczeń systemu Windows o pozwolenie na uruchamianie aplikacji w emulatorze. Więc wyłączyłem firewall wirtualnego Windowsa XP. Po przeszuakniu Forum Nokia przyczyny tego problemu doszedłem do wniosku że trzeba będzie sprawdzić komunikaty jakie zapisuje emulatror w pliku epocwnd.out Wszedłem w menu Start -> Uruchom i wpisałem %temp% Po znalezieniu pliku epocwnd.out przeanalizowałem go i wysłałem zapytanie na Forum Nokia to dostałem uwagę żebym wyłączył sterownik karty dźwiękowej.
Wszedłem w ustawienia Virtual PC dla wirtualnego Windowsa XP i przy ustawieniach intergacji odfajkowałem udostępnienia Audio. Zrobiłem restart wirtualnego PC i po tych zmianach wpisałem znowu z linii poleceń epoc.exe to tym razem uruchomił się bez problemu. Dokonałem rejestracji emulatora. Uruchomiłem Carbide.C++ i emulator zadziałał.
Denerwowało mnie że przy starcie Carbide.C++ informował mnie że nie może połączyć się z komórką. W tej sytuacji zainstalowałem Nokia PC Suite w wirtualnym Windowsie XP. Gdy podłączyłem Nokię XM 5800 to z menu wirtualnego Windowsa XP trzeba było wybrać USB ->Nokia 5800 Dołącz. W tej sytuacji komórka była już przygotowana do debugowania.

Zaciekawiło mnie jak będzie wyglądała kompilacja z linii poleceń. Uruchomiłem z linii polecen:

cd C:\S60\devices\S60_5th_Edition_SDK_v1.0\S60CppExamples\Note\group

potem wpisałem

bldmake bldfiles

i zrobił się plik abld.bat

Następnie wpisałem

abld build gcce urel

co powinno było mi zrobić kompilacje binarną na komórkę. Jak wszystko poszło w porządku to wpisuję

cd C:\S60\devices\S60_5th_Edition_SDK_v1.0\S60CppExamples\Note\sis

a potem

makesis note_gcce.pkg

zrobił się plik note_gcce.SIS

Następnie zrobiłem folder c:\key gdzie trzymam certyfikaty developerskie od chińczyków

wróciłem do okna i z linii poleceń napisałem

signsis -s note_gcce.sis note_gcce.sisx c:\key\imobile.cer c:\key\imobile.key

otrzymałem plik note_gcce.sisx do zainstalowania w komórce.

Na koniec pozostało wyczyszczenie tego co wygenerowałem podczas kompilacji

cd C:\S60\devices\S60_5th_Edition_SDK_v1.0\S60CppExamples\Note\group\

i wpisałem

abld reallyclean gcce urel

Pozostało sprawdzenie czy działa kompilacja pod emulator i wpisałem

abld build winscw udeb

następnie wpisałem

epoc.exe

i uruchomił mi się emulator

poszukałem programu Note i odpaliłem i zadowolony zamknąłem emulator

i pozostało posprzątanie więc wpisałem

abld reallyclean winscw udeb

tym poleceniem wyinstalowałem z emulatora program.
Mając już dobrze zainstalowane SDK i skonfigurowane środowisko programistyczne to mogłem już myśleć o programowaniu na Symbiana. Zamknąłem wirtualnego Windowsa XP w poczuciu dobrze zrobionej roboty.

Brak komentarzy: