Procesor x86 w amatorskich zastosowaniach

Jun 11, 2006 39 Replies

U¿ytkownik "Pszemol" snipped-for-privacy@PolBox.com napisa³:

Niestety jest rzeczywisty, bo raz, ¿e nie jestem specjalnie zdolny i chêtny do optymalizacji, a dwa, ¿e C++ z natury (to przynajmniej moje spostrze¿enie) dzia³a wolniej od tego, napisanego w czystym C. Sterownik jedynie do kamery internetowej USB, reszta to RS232.

Piotr

Piotr napisał(a):

Jak najbardziej nie. Możesz napisać ew. coś pod Palm OS albo zastosować pocket pc z windows ce. IMHO masz zbyt wygórowane wymagania, 10x10cm i duże możliwości sprzętowe; tak, to tylko w Erze. Może uda się zastosować coś w stylu Toshiba Libretto.

Ktos chyba bardzo chce zebys uzyl PC-104 .. czy moze zabraknie paru mm ?

Przepiszesz. tzn przekompilujesz. Ale i tak potrzeba niezlego procesorka z duza pamiecia - sugerowany arm albo motorolka 68k. A moze PowerPC ?

J.

Hmmmm cos takiego pod nazwa Geode to swojego czasu wypuszczal National - bylo to PII - max zegar na poziomie 300MHz chyba... Ale sie national szybko wycofal z tego chipa. Mam taka plytke PC104 z takim chipem - jest o tyle fajnie, ze Geode z nationala ma sterownik do matrycy LCD.

Je¶li jeste¶ wystarczaj±co zdolny aby napisaæ software do analizy obrazu z kamery CCD modyfikuj±cy tor lotu samolocika to nie powiniene¶ byæ fa³szywie skromny i bajaæ nam tu ¿e nie jeste¶ w stanie odpaliæ tego samego kodu na innym systemie... Tak jak napisa³em wczesniej, je¶li ten soft jest napisany pod ten sam system operacyjny co Twój nowy procesor to praktycznie 100% kodu pozostanie identyczna...

??? To s± ju¿ jakie¶ wierutne brednie :-)) Albo Ty po prostu znasz C++ gorzej ni¿ C i robisz w nim z³y kod :-)

No to nie widzê problemu z przeniesieniem kodu na inny procesor... W koñcu je¶li napisa³e¶ kod np. pod linuxa czy Win32API to czy uruchomisz tego linuxa czy Win32 na pececie z x86 czy na jakiej¶ p³ycie embedded z innym prockiem, np. wspomniane wcze¶niej Alchemy z AMD to z punktu widzenia aplikacji niewiele siê tu zmieni...

Je¶li my¶lisz o Windows XP to z pewno¶ci± nie uda siê. Je¶li my¶lisz o Windows CE to prawdopodobnie siê to uda. Wybierz siê na witrynê microsoftu i sprawd¼ czy procesor tam u¿yty jest wspierany w Windows CE 5.0:

formatting link

Teraz jest nowa tego wersja pod sztandarem AMD.

Nie wiem czy on siê wycofa³ ale AMD podkupi³a pomys³.

Wiele proców "embedded" dedykowane jest do urz±dzeñ typu palmtop i ma sterownik LCD na pok³adzie jako standard. Nowoczesne wersje proców maj± takie, które obs³uguj± bardzo du¿e matryce kolorowe LCD VGA, SVGA, XGA itp...

Nie ma sensu konwersja urz±dzenia pracuj±cego pod Palm OS do Windows CE. Ju¿ lepiej wzi±æ sobie jako bazê jakie¶ urz±dzenie pracuj±ce pod WinCE. Przyk³adem mog³a by byæ jaka¶ stara Casiopea firmy Casio z eBay/Allegro. Mam tak± zepsut± gdzie¶ w szufladzie nawet... P³ytka mniejsza ni¿ 10x10.

Albo jaki¶ telefon z Windows CE na pok³adzie. Potrzebuje jedynie embedded VC++ (eVC++) i odpowiedni SDK aby przekompilowaæ swoj± aplikacjê pod wybrane urz±dzenie... Czy dostanie SDK od producenta? To ju¿ inna bajka... :-)) Bedzie sie trzeba usmiechnac do kogo trzeba...

U¿ytkownik "Pszemol" snipped-for-privacy@PolBox.com napisa³

Po prostu bojê siê, ¿e zainwestujê pieni±¿ki w jaki¶ sprzêt, który nie wyrobi siê z tym w okre¶lonym czasie. Piszê wszystko na laptopie 2,2 GHz (AMD Athlon64 3400+), ale skrêcaj±c go w dó³ do 800 MHz wyra¼nie widaæ ró¿nicê w pracy aplikacji - szczególnie w liczbie analizowanych klatek/s. Je¶li to postawiê na czym¶ wolniejszym, to mo¿e mi to wszystko dzia³aæ zbyt wolno.

Prawdopodobnie nie jestem najlepszy z C++ :), ale ni w z±b nie mam powodów aby s±dziæ, ¿e skompilowany kod C++ dzia³a szybciej lub tak samo szybko jak ten sam przyk³ad, ale zapisany w czystym C. Ale nie o to tu chodzi.

Piotr

No skoro na 800MHz Athlon 64 siê to nie wyrabia, to jaki by³ sens Twojego szukania 486? :-) Ale w takim razie to Ty potrzebujesz czego¶ ca³kowicie niedostêpnego dla amatora w formacie 10cmx10cm... Albo potrzebujesz korepetycji z C/C++ ;-)

Kompilator C++ mo¿e byæ tak samo wydajny jak kompilator C i wiele zale¿y od tego, jakich struktur C++ u¿ywasz... Nie wiem za bardzo jak± przyj±³e¶ metodê analizy obrazu i jak bardzo nieoptymalny jest Twój kod, ale s±dzê ¿e musisz postaraæ siê aby to co napisa³e¶ chodzi³o Ci na laptopku skrêconym do powiedzmy 100-200MHz aby w ogóle my¶leæ o sprzêcie amatorskim robionym na swojej p³ytce.

Jedyn± nadziej± dla Ciebie to kupno gotowej p³ytki PC/104 z najszybszym prockiem jakiego dostaniesz - ale to s± ju¿ setki dolarów - nie wiem jakim bud¿etem jako amator dysponujesz. Tu masz specyfikacjê takich jednop³ytowych komputerów:

formatting link
ogóle zapoznaj siê z tym:
formatting link
zapomnij o trawieniu takiej p³ytki w domu w kuwecie i chlorku :-)

Na takiej p³ycie mo¿esz postawiæ Embeded Windows XP i bêdzie OK.

U¿ytkownik "Pszemol" snipped-for-privacy@PolBox.com napisa³:

:) Na 800MHz zauwa¿y³em spowolnienie, co nie oznacza, ¿e siê nie wyrabia. Dla mnie najistotniejszym parametrem jest liczba przeanalizowanych obrazów. W±tpiê aby wina le¿a³a po stronie z³ej znajomo¶ci C++, prêdzej nieznajomo¶ci technik wyliczania prêdko¶ci, przyspieszenia itd obiektów wykrytych na kolejnych klatkach. Jak i technik samego wykrywania takowych. Wszystkie te funkcje wymy¶li³em i zaimplementowa³em sam. Trzeba bêdzie chyba siêgn±æ po czyj±¶ wiedzê.

Poda³em 486 poniewa¿ ... hmmm strzela³em :) Chcia³em nazbyt dosadnie powiedzieæ o co mi chodzi :)

Tak czy owak kto¶ zaproponowa³ u¿ycie Palmtopa z Windows CE. To chyba bêdzie najlepsza ewentualno¶æ. Wyliczy³em, ¿e mieszcz± siê na przek±tnej pude³ka 10x10cm (nie wszystkie).

Piotr

ps: dziêki za tego pdf'ka

Troche od d* strony sie zabierasz do problemu. Napisz najpierw ten program na tym laptopie, sprawdz czy dziala, potem bedziesz wiedzial jak szybki procesor potrzebujesz.

Ogolnie analiza obrazu wymaga niestety duzej mocy obliczeniowej.

Mozna optymalizowac algorytmy, mozna zmniejszyc rozdzielczosc, mozna uzyc wielu procesorow albo jakiegos hardwarowego dopalacza - ale najpierw trzeba miec dzialajacy algorytm.

Tak czy inaczej - ma to niewielki zwiazek z procesorem - to co napiszesz da sie skompilowac na kazdy. Klopot bedzie z oblusga kamery itp - ale w porownaniu do rozpoznawania to jest zadny klopot.

J.

Elitel napisał(a):

Alternatywnym rozwiązaniem jest też komputer "gniazdkowy". Rozmiar 86 x

86 x 39 mm, chodzi na tym Windows CE, procesor AMD Au 1550 @ 500 MHz:
formatting link

Program ju¿ jest napisany :)

Od d* strony to by³o wymy¶lanie w³asnych algorytmów. Inni podpowiadaj± tutaj, ¿e powinno dzia³aæ przy 100-200 MHz, wiêc bêdê musia³ poszukaæ algorytmów ju¿ istniej±cych. Na PC u¿ywam zwyk³ej internetowej przez USB.

Piotr

O... to w³aœnie jest piêkne zastosowanie procesorów serii AMD Alchemy o których wczeœniej pisa³em... :-)

Z tego co tam pisz¹, Alchemy pracuj¹ce z zegarem 333MHz jest odpowiednikiem laptopa pracuj¹cego z zegarem 800MHz. Ciekawe jak to zosta³o obliczone, ale byæ mo¿e tu masz rozwi¹zanie swojego problemu z programem na laptopku 800MHz.

To może raczej mały pececik przemysłowy?

formatting link
TP>

raczej CF a nie 68K... IMO wracam jak pijany do ARM - ARM9 ma DSP, wbudowane mase zasobow... i jest energooszczedny.

Zerknij tu:

formatting link
to Ci siê przyda ?

Panie Piotrze,

Piotr napisał(a):

a moim zdaniem najlepsze i najtańsze będzie użycie procesorka Blackfin Analog Devices i darmowego uCLinux-a. Gotowy moduł STAMP można kupić za $200 od ALFINE czy innego dystrybutora AD. Z podłączeniem kamery, kompresją i transmisja nie powinno byc kłopotu.

formatting link
Pozdrawiam

Roman Rumian

Nie doczyta³e¶... ;-) Gostek pisze, ¿e on chce Windows a nie Linucha.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required