pisanie softu pod SPV (assembler?)

  • 8 Odpowiedzi
  • 1550 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

pisanie softu pod SPV (assembler?)
« dnia: Kwiecień 13, 2005, 23:42:11 »
Witam wszystkich. Na forum jestem nowy. SPV kupilem wlasciwie tylko dlatego, ze widze niezly business w pisaniu softu pod urzadzenia przenosne, a MS Smartphone jest chyba najlatwiejszy na poczatek. Przy tym telefon jest raczej nieciekawy, microsoft znow sie postaral i napisal system, ktory potrafi zamulic tak potezny procesor, a przy tym jest niestabilny, ma wiele dziur i bardzo oryginalnie rozwiazana kwestie wspoldzielenia zasobow. Probowalem pisac soft pod SPV uzywajac MS eMbedded Visual C++ 3.0. Jednak API win ce3.0 jest dla mnie bardzo niewygodne. Idealnym rozwiazaniem byloby cos w stylu assemblera dla SPV. Korzystajac z API pisze mnostwo nieuzytecznego kodu zwalniajacego tylko prace aplikacji. Dzieki assemblerowi moznaby stworzyc duzo bardziej wydajne aplikacje, no i bardziej stabilne, bo w mniejszym stopniu polegajace na kolejnym nieudanym systemie microsoftu.
I tu swoje pytanie kieruje do programistow, ktorzy maja juz jakies doswiadczenia z pisaniem softu pod SPV, czy istnieje jakis udokumentowany zbior przerwan i funkcji dla tego telefonu? Czy piszac soft korzystacie z nich czy tylko z API? Preferujecie raczej VB czy VC++? Czy istnieja funkcje API umozliwiajace sterowanie wibra, irda i odczyt z sensorow np. baterii czy termometru?
Bede wdziieczny za wszelka pomoc, odpowiedzi na ktorekolwiek z moich pytan, wskazanie pomocnych linkow...

pisanie softu pod SPV (assembler?)
« Odpowiedź #1 dnia: Kwiecień 14, 2005, 16:51:53 »
Czy chcesz zamiast w C/C++ i pisać w asemblerze i korzystać z api pod Windows Mobile? To zerknij tutaj: http://www.pdaclub.pl/forum/posty.php?temat_id=13466
Wydaje mi się jednak że ty planowałeś zastąpić czymś samo Windows, to masz w takim razie nie lada wyzwanie przed sobą, bo zanim zaczniesz pisać aplikację będziesz musiał najpierw oprogramować całą funkcjonalność telefonu od nowa, skoro zamierzasz skasować Windows. No chyba że się mylę, to mnie poprawcie.


pisanie softu pod SPV (assembler?)
« Odpowiedź #2 dnia: Kwiecień 14, 2005, 18:23:52 »
Napisanie calego programu w asmie graniczy z cudem, a przynajmniej jest bardzo praco- i czasochlonne. Na poczatek chcialbym, piszac normalnie w C++, korzystac bezposrednio z przerwan sprzetowych za posrednictwem assemblera. Niestety wszystkie linki, jakie znalazlem na necie dotycza tylko przerwan systemowych. Napisac caly program w asmie ani bym umial, ani by mi sie chcialo. Najlatwiej byloby zrobic program w C++, a caly interfejs I/O w asmie z pominieciem api. W ten sposob udaloby sie ominac problemy zwiazane z bardzo zle rozwaizanym w tej platformie wspoldzieleniem zasobow.
A to, co piszesz, pominiecie systemu, byloby juz nie lada zadaniem :( Choc nie jest to zly pomysl, zeby stworzyc alternatywny system operacyjny dla SPV, gdyz od strony sprzetowej ten telefonik jest swietny, zas wszystkie problemy uzytkownikow sa zwiazane z badziewnym, zbyt uniwersalnym systemem operacyjnym. Ale ten pomysl pozostanie pewnie niestety w sferze odleglych planow, a raczej wrecz poboznych zyczen...

*

Offline darekkot

  • ****
  • 705
  • Sprzęt: Acer n311,HTC Touch Pro
pisanie softu pod SPV (assembler?)
« Odpowiedź #3 dnia: Kwiecień 14, 2005, 19:41:21 »
Hm, ostatnio koncepcja ktora prezentujesz (dostep do funkcji systemu operacyjnego z poziomu programu uzytkownika) byly dostepne w ms dos. Zaden system wielozadaniowy nie pozwala na dostep do jadra systemu wiec pozostaje ci jedynie napisac os od poczatku i zaladowac go z poziomu bootloadera.
Wlasnie walcze z bootloaderem do procesora arm zeby zaladowac na niego ce.... wiec zycze powodzenia
HTC Touch Pro,ROM: Lite v.3.0 by qsqa,Radio: 1.02.25.28

*

Offline timokie

  • ****
  • 610
  • Sprzęt: Loox C550
pisanie softu pod SPV (assembler?)
« Odpowiedź #4 dnia: Kwiecień 14, 2005, 20:58:24 »
Nie wiem dlaczego piszesz, ze "korzystajac z API pisze mnostwo nieuzytecznego kodu zwalniajacego tylko prace aplikacji."? Nie lubisz "windowsowego" programowania, z tworzeniem okien, petla wiadomosci, itp. i wolisz "dosowy" sposob? Jedyny sensowny dla mnie powod pominiecia API, to wyswietlanie grafiki - tu windows jest rzeczywiscie wolny. Ale przeciez jest na to sposob - na "duzych" windows jest DirectX, na WinCe jest GAPI. GAPI daje ci bezposredni dostep do pamieci ekranu palmtopa. Tu mozesz szalec, ile dusza zapragnie - nawet piszac procedury w assemblerze. To, ze w ten sposob mozna bardzo szybko wyswietlac grafike swiadcza np. gry przeniesione z PC - Quake, czy Duke3D. Inne proby ominiecia API wg. mnie nie maja sensu - przeciez nie powiesz, ze napiszesz lepsze procedury obslugi klawiatury, czy lepsza wersje protokolu IP ;). Do tego dochodzi, ze wykorzystujac jakies sprzetowe przerwania, Twoj program bedzie dzialal raczej tylko na tym konkretnym modelu telefonu, czy pocketa. A to sprawi, ze program nie bedzie sie dobrze sprzedawal i nici z "dobrego businessu" :). Ale to tylko moje zdanie...

pisanie softu pod SPV (assembler?)
« Odpowiedź #5 dnia: Kwiecień 14, 2005, 21:30:13 »
Tak, z gory zakladalem, ze korzystajac ze sprzetowych przerwan bede pisal soft pod konkretny model. Zaciekawilo mnie to, co piszesz o GAPI. To faktycznie rozwiazuje spora czesc moich problemow. Pzostaje jednak jeszcze m. in. kwestia dostepu do sensorow np. baterii czy do wibry. Czy api smartphona przewiduje i to? A co do pisania wlasnych procedur obslugi, na pewno nie napisze lepszych, ale jestem pelen podziwu dla programistow microsoftu, jak potrafia zamulic ponadstumegahercowy procesor systemem, ktory robi tak niewiele. A majac bezposredni dostep do sprzetu wiedzialbym co program fizycznie robi i jesli moglbym komukolwiek cos zarzucac, to tylko sobie.
Wiem, ze pewnie szerze herezje, dotychczas pisalem tylko programy na PC, a majac wieksze doswiadczenie z trybem dosowym, niz okienkami, probuje na sile ominac dobrodziejstwa API. Tak, odbija mi sie korzystanie z buildera w kazdym mozliwym miejscu zamiast winapi ;)
Za podpowiedz z GAPI jestem bardzo wdzieczny i zabieram sie do zglebiania tematu. A co do "dobrego businessu", to temat odlegly, na razie chce w ogole zapoznac sie ze specyfika programowania kieszonkowych windowsow.

*

Offline RMK

  • **
  • 157
    • http://przemelek.blogspot.com
  • Sprzęt: ASUS A636N
pisanie softu pod SPV (assembler?)
« Odpowiedź #6 dnia: Kwiecień 14, 2005, 23:40:50 »
Cytat: steeveman
Tak, z gory zakladalem, ze korzystajac ze sprzetowych przerwan bede pisal soft pod konkretny model.

Nie wydaje mi sie to byc zbyt rozsadnym podejsciem, biorac pod uwage to, ze sprzet rozwija sie teraz naprawde szybko, moze dojsc do takiej sytuacje, ze w momencie rozpracowania najnowszego modelu moze pojawic sie jego kolejna wersja, ktora z roznych powodow moze byc zbudowana na calkowicie odmiennej platformie sprzetowej.

Cytat: steeveman
A co do pisania wlasnych procedur obslugi, na pewno nie napisze lepszych, ale jestem pelen podziwu dla programistow microsoftu, jak potrafia zamulic ponadstumegahercowy procesor systemem, ktory robi tak niewiele. A majac bezposredni dostep do sprzetu wiedzialbym co program fizycznie robi i jesli moglbym komukolwiek cos zarzucac, to tylko sobie.

Z tego co pamietam to teraz uzywa sie najczesciej w urzadzeniach przenosnych procesorow bazujacych na architekturze ARM, sa to wiec RISCi. Zakladajac, ze kazda instrukcje sa w stanie wykonac w ciagu 1 taktu mozemy zalozyc, ze 100 MHz procesor ma moc 100 MIPSow. Wydaje sie to duzo, ale pamietac nalezy, ze jednak taka mikroinstrukcja RISCowa to cos naprawde prostego przy czym assembler x86 to strasznie rozbudowana machina, przez to biedny RISCowy procesorek musi wykonac kilka instrukcji zeby wykonac rownowazna operacje rozkazowi x86, a to powoduje, ze taki procesorek ma juz nie 100 MIPSow ale np. 25 MIPSow, a na tych 25 MIPSach musi stac komunikacja z osprzetem, zarzadzanie procesami i pamiecia, odsiwezanie ekranu i jeszcze pare takich rzeczy, wiec mozna zrozumiec czemu co jakis czas malenstwo sie zamula ;)

Cytat: steeveman
Wiem, ze pewnie szerze herezje, dotychczas pisalem tylko programy na PC, a majac wieksze doswiadczenie z trybem dosowym, niz okienkami, probuje na sile ominac dobrodziejstwa API. Tak, odbija mi sie korzystanie z buildera w kazdym mozliwym miejscu zamiast winapi ;)

Niestety jak to napisal ktos wyzej, windows to nie ms dos. Z moich doswiadczen [krotkich, bo bawie sie w programowanie PocketPC od stycznia, ale PC programuje od lat 12 ;)], najlepiej wybrac platforme, ktora zapewnia najlepsza przenosnosc przy stosunkowo znosnej wydajnosci. Jak na razie z bolem moj wybor pada na .NETa, choc wolalbym Java'e ;) Pisalem na PocketPC tez w C++ z wykorzystaniem WinAPI i wiem, ze sie da, ale w moich zastosowaniach nie bylo sensu ;)

Cytat: steeveman
A co do "dobrego businessu", to temat odlegly, na razie chce w ogole zapoznac sie ze specyfika programowania kieszonkowych windowsow.

IMHO podstawowym problem jest co chcesz pisac :) Czy bardziej programiki uzytkowe, czy bardziej gry. Jezeli to pierwsze to moja rada jest .NET, paskudne to to, nielogiczne, ale w miare wygodnie sie tu pisze i nie trzeba martwic sie o to jak zrobic takie strasznie skomplikowane rzeczy jak przekonwertowanie liczby na stringa, czy na odwrot, czy tez jak sformatowac kwote w zlotowkach. Jezeli myslisz o grach to masz do wyboru albo eVC++, albo .NET, jezeli o szybkich grach [szybka grafika i tym podobne] to chyba tylko eVC++.

Wtracilem swoje 3 grosze a teraz ide spac ;)

pisanie softu pod SPV (assembler?)
« Odpowiedź #7 dnia: Kwiecień 15, 2005, 00:19:44 »
Cytat: RMK
Nie wydaje mi sie to byc zbyt rozsadnym podejsciem, biorac pod uwage to, ze sprzet rozwija sie teraz naprawde szybko, moze dojsc do takiej sytuacje, ze w momencie rozpracowania najnowszego modelu moze pojawic sie jego kolejna wersja, ktora z roznych powodow moze byc zbudowana na calkowicie odmiennej platformie sprzetowej.
Zdaje sobie z tego sprawe. Jednak po spedzeniu kilkunastu lat nad programowanie w dosie i zaledwie roku nad windowsowym, najwygodniejszym sposobem dostepu do I/O jest dla mnie asm. Jednak puki co chcialbym przede wszystkim napisac pare programikow dla mojego SPV, nie na sprzedaz, wiec przenosnosc programu jest dla mnie nieistotna.

Cytat: RMK
...taki procesorek ma juz nie 100 MIPSow ale np. 25 MIPSow, a na tych 25 MIPSach musi stac komunikacja z osprzetem, zarzadzanie procesami i pamiecia, odsiwezanie ekranu i jeszcze pare takich rzeczy, wiec mozna zrozumiec czemu co jakis czas malenstwo sie zamula ;)
U mnie to zamulanie jest bardzo czeste. Nie znalem tych niuansow zwiazanych z architektura. Twoja wypowiedz sporo mi wyjasnia czemu tak zamula. Ale nie oszukujmy sie, MS nie slynie z pisania wydajnego oprogramowania...

Cytat: RMK
...Jak na razie z bolem moj wybor pada na .NETa, choc wolalbym Java'e ;) Pisalem na PocketPC tez w C++ z wykorzystaniem WinAPI i wiem, ze sie da, ale w moich zastosowaniach nie bylo sensu ;)
Tu mnie zaskoczyles. Java pod MS Smarthone? A istnieje jakis w miare sprawny interpreter javy na ta platforme? To by bylo najwygodniejsze, bo w javie pisze mi sie bardzo przyjemnie ;) Tylko chyba w ten sposob sam popelnilbym blad ktory tak potepiam,  te programy zamulalyby duzo bardziej niz pisane w c++. A za .NET sie jeszcze nie bralem. A to idzie na Smartphone?

Cytat: RMK
IMHO podstawowym problem jest co chcesz pisac :) Czy bardziej programiki uzytkowe, czy bardziej gry. Jezeli to pierwsze to moja rada jest .NET, paskudne to to, nielogiczne, ale w miare wygodnie sie tu pisze...
Ciezko zaczynac przygode z nowa platforma od gier 3D ;) Pracowalem ostatnio nad napisaniem na pc programu w stylu derive'a (kombajn matematyczny). Mysle ze przeniesienie tego ta platforme smartphone bedzie wyzwaniem jak w sam raz na poczatek ;) Choc martwie sie troche czy ten procesorek sobie poradzi...
Oczywiscie nie do tego potrzebuje assemblera i bezposredniego dostepu do sprzetu. Gdy juz poczuje sie na tej platformie nieco pewniej, chcialbym sie zajac m. in. takimi udogodnieniami jak profile wibracji (cos jak w siemensie c55), do czego bede jednak potrzebowal jakiegos srodka bezposredniej komunikacji z wibra. Na pewno istnieje jakis prostszy niz assembler interfejs komunikacji z wibra i sensorami... bede wdzieczny za informacje.

*

Offline RMK

  • **
  • 157
    • http://przemelek.blogspot.com
  • Sprzęt: ASUS A636N
pisanie softu pod SPV (assembler?)
« Odpowiedź #8 dnia: Kwiecień 15, 2005, 22:56:58 »
Cytat: steeveman
U mnie to zamulanie jest bardzo czeste. Nie znalem tych niuansow zwiazanych z architektura. Twoja wypowiedz sporo mi wyjasnia czemu tak zamula. Ale nie oszukujmy sie, MS nie slynie z pisania wydajnego oprogramowania...

Co prawda to nie jest dyskusja na forum o PDA, ale nie demonizowalbym zdolnosci programistycznych ludzi z MS, na tle reszty runku sa ponad przecietna. Jedynym ich problemem jest to, ze czasem zbyt duza role przykladaja do marketingu, ale w koncu firmy, nawet te produkujace oprogramowanie, istnieja glownie po to zeby zarabiac pieniadze ;)

Cytat: steeveman
Tu mnie zaskoczyles. Java pod MS Smarthone? A istnieje jakis w miare sprawny interpreter javy na ta platforme? To by bylo najwygodniejsze, bo w javie pisze mi sie bardzo przyjemnie ;) Tylko chyba w ten sposob sam popelnilbym blad ktory tak potepiam,  te programy zamulalyby duzo bardziej niz pisane w c++. A za .NET sie jeszcze nie bralem. A to idzie na Smartphone?

Napisalem, ze wolalbym Java'e ;) Niestety pod PocketPC [co do Smartphone to nie mam pojecia] nie ma darmowej maszyny wirtualnej, tzn. jest pare, ale albo tak jak PersonalJava z Sun'a nie jest juz wspierana, albo tak jak SuperWaba czy Ewe sa tylko javopodobne. IBM wypuscil J9, ale jak na razie nie probowalem jej uzywac z wlasnym kodem.
.NET, a dokladniej C# z .NET to taka zasmiecona Java, zasmiecenie polegalo na dodaniu do jezyka cudow w stylu rozroznienia metod wirtualnych i niewirtualnych, wprowadzeniu przekazywania referencji/kopi i kilka takich rzeczy, ktore Java dosc skutecznie usunela ;) ale nie jest to jakies strasznie zle, a napewno ulatwia pisanie. Podejrzewam, ze powinno to cos dzialac ze wszystkim co jest w okolicacj WinCE 4.x, ale glowy nie dam, nie testowalem.


Cytat: steeveman
Ciezko zaczynac przygode z nowa platforma od gier 3D ;) Pracowalem ostatnio nad napisaniem na pc programu w stylu derive'a (kombajn matematyczny). Mysle ze przeniesienie tego ta platforme smartphone bedzie wyzwaniem jak w sam raz na poczatek ;) Choc martwie sie troche czy ten procesorek sobie poradzi...

Ciekawy pomysl, i sam bym chetnie mial takiego cosia w swoim PocketPC ;)
A co do wydajnosci, to jak pamietam Derive 3 czy cos w tych okolicach dzialal na moim Pentium120 ;) a chyba tez na 386DX40 dzialal ;) a tam w porywach bylo 5 MIPSow czy jakos tak ;)

Cytat: steeveman
Oczywiscie nie do tego potrzebuje assemblera i bezposredniego dostepu do sprzetu. Gdy juz poczuje sie na tej platformie nieco pewniej, chcialbym sie zajac m. in. takimi udogodnieniami jak profile wibracji (cos jak w siemensie c55), do czego bede jednak potrzebowal jakiegos srodka bezposredniej komunikacji z wibra. Na pewno istnieje jakis prostszy niz assembler interfejs komunikacji z wibra i sensorami... bede wdzieczny za informacje.

Zapewne istnieja takowe, mozliwe nawet, ze czesc z nich wspiera sam system operacyjny, w przeciwnym wypadku czeka Cie rozmowa ze sprzetem, a to do najlatwiejszych nie nalezy, szczegolnie przy schodzeniu z dosc wysokiego poziomu abstrakcji takiego np. C# ;)