» »

asembler in c++

asembler in c++

blay44 ::

Živjo.
Najprej, da se predstavim ker nastopam kot nov uporabnik.
Malo se ukvarjam z elektroniko in do sedaj mi je za programiranje čisto v vsem zadostoval VB.
Sedaj pa "sanjam" o računalniškem vidu. Da bi izkoristil polno hitrost sem se pretolkel preko vseh heroglifov C++. (zadnje dni). Torej začetnik v c++.
Ko pa sem hotel dostopati do ui portov(registrov) se je pa ustavilo.
Morda kdo ve kako to izvesti, ne da bi se pritoževal (sumim da je lupina kernela) win7 64x.
Recimo, tale izsek kode;
.....
...
_asm
{
...
mov al, 2
mov dx, neko število
out dx, al
...
}
...
Hvala. Prosim upoštevajte, da sem frišni začetnik v C++

technolog ::

Ne vem kaj misliš z UI porti, ampak raje išči knjižnico, ki bo delala z njimi.

Pa še gratis boš dobil prenosljivost med arhitekturami in operacijskimi sistemi.

phantom ::

Do portov ne moreš kar direkt dostopat, razen v DOS-u. Če bi bilo to mogoče, bi ti preko tega lahko vsak program totalno sesul računalnik, prisluškoval napravam (recimo tipkovnici) ... To moraš delati preko API-ja od OS (če je sploh mogoče, morda da boš moral kar svoj driver spisat), pozabi na assembler.
~
~
:wq

blay44 ::

Tega sem se bal. Sem nekaj takega slutil.
Knjižnica za ui je načelno conio. Ampak v win7 z njo ne bo šlo.
Mogoče bi moral zasnovati z njo en .dll ali kaj podobnega. V sami aplikaciji pa te ne spusti skozi.
Kateri API pa bi to bil? Potem grem lahko nazaj na VB:)
Pišuka, a zdej bom rabim še en teden za učenje pisanja .drv -jev
Sploh ne vem kako začeti.
Kaj nam bo OS s katerim ne moreš enostavno upravljati s strojem.
Ima kdo še kašno rešitev? Je to v linuxu možno?

garamond ::

Tole bo bolj splošni odgovor:

Zadal si si zelo ambiciozen projekt. Če boš delal vse sam od začetka, bo trajalo precej, preden boš sploh začel pisati kodo za računalniški vid. Ker poudarjaš hitrost, mislim da najhitreje dela (nevronske mreže) na GPU. Koda za GPU mora biti seveda tudi optimizirana, to je še en dodaten jezik.

Lahko pa vzameš odprtokodne knjižnice in jih spreminjaš, če hočeš vedeti podrobnosti. Vsi trije veliki (Google, Microsoft, FB - samo Appla ni?) so v zadnjem letu izdali knjižnice za strojno učenje. Recimo od Googla je https://www.tensorflow.org/
A parody of extremism is impossible to differentiate from sincere extremism.

Randomness ::

Kako si uspel povezati računalniški vid in io (ne ui) porte?

blay44 ::

Garamond, tole z nevronskimi mrežami in gpu procesorji je pa prehudo zame.
Za moje pojme je že c++ nevronska mreža oklepajev.
Povezati senzorje, ki so običajno počasni in jih obdelati je dovolj že VB.
Vsaj za moje znanje.
Randomness, zaenkrat imam modul preko katerega zajemam sliko preko isp vodila in navideznega serijskega porta (usb\rs232 pretvornik). V VB uporbljena običajna IO knjižnica. Enostavno.
Zadeva je pri večji rezoluciji počasna. Pred vsem zaradi spi-ja in rs232. 115K prenosa.
Z C++, njegovimi kazalci lokacije spremenljivke in možnostjo uporabe asm kode se obdelava ene zajete slike zmanjša...na nepomembno. Mislim da bi z lahkoto sledil določeni skupini pikslov,
hitrosti in smeri.
Problem pa je hitrost prenosa. Zato sem mislil uporabiti pci port in zajemati direktno iz SSCB vodila čipa(Fclk 36MHz). Seveda preko PCI vmesnika(dekoderja), ki pa je z naslovi ui porta bistveno eneostavnejši. Če naslov preslikam v memorijo, tukaj brez težav uporabljaš _asm, pa brez kakega cpldja ne bo šlo.
Kje je tukaj MS logika?
Ostane le še kakšen usb stream, ki pa ga še ne obvladam.

Senitel ::

Čakaj malo... Enkrat omenjaš USB/RS232, drugič PCI vmesnik. In kot drugo rineš v neke globine "just because". Kaj imaš sploh za en hardware?

noraguta ::

blay44 je izjavil:

Tega sem se bal. Sem nekaj takega slutil.
Knjižnica za ui je načelno conio. Ampak v win7 z njo ne bo šlo.
Mogoče bi moral zasnovati z njo en .dll ali kaj podobnega. V sami aplikaciji pa te ne spusti skozi.
Kateri API pa bi to bil? Potem grem lahko nazaj na VB:)
Pišuka, a zdej bom rabim še en teden za učenje pisanja .drv -jev
Sploh ne vem kako začeti.
Kaj nam bo OS s katerim ne moreš enostavno upravljati s strojem.
Ima kdo še kašno rešitev? Je to v linuxu možno?

Ne kak teden, par let pa bo... Če si se namenil pisat gonilnike. Še vedno pa nevemo kaj bi splohbrad naredil.
Pust' ot pobyedy k pobyedye vyedyot!

blay44 ::

Senitel sedaj uporabljam usb\rs232 port, ki komunicira z avrjem ta potem komunicira z spi in neko ceneno, na ebayu kupljeno Arduino združljivo kamerco. Le ta ima OV2640 senzor, kateri omogoča precej hitrejšo komunikacijo preko SSCBja. In zato bi jo priključil kar na pci+vmesnik. Dobro nima veze.
Za nekaj časa imam dovolj c++ja in MSjevih omejitev UI naslavlanja. Očitno ta C++ le ni vsemogočen.

Zgodovina sprememb…

  • spremenil: blay44 ()

kihc ::

Ti si se malo zaplezal s temle ... kupi si USB webcam in jo priključi na računalnik in uporabljaj OpenCV.
x

Senitel ::

blay44 je izjavil:

Senitel sedaj uporabljam usb\rs232 port, ki komunicira z avrjem ta potem komunicira z spi in neko ceneno, na ebayu kupljeno Arduino združljivo kamerco. Le ta ima OV2640 senzor, kateri omogoča precej hitrejšo komunikacijo preko SSCBja. In zato bi jo priključil kar na pci+vmesnik. Dobro nima veze.
Za nekaj časa imam dovolj c++ja in MSjevih omejitev UI naslavlanja. Očitno ta C++ le ni vsemogočen.

Kako bi to priključil kar na PCI? Problemi s katerimi se ukvarjaš nimajo ničesar ne s C++ in ne z asemblerjem in ne z Microsoftom.
Kot je kihc omenil pred mano... Vzameš nek pocen webcam in je to to.

blay44 ::

Odgovor samemu sebi.
Morda komu prav pride in si s tem prihrani bolščanje v monitor.
Novi wini pa tudi linuks, ne dopuščajo nobenih direktnih dostopov do io portov. Zadevo ustavi kernel. Napisati je potrebno driver z Ms ddk orodjem in driver istalirati, da bo pravilno komuniciral s kernelom (.sys).
Res, zakaj bi bilo preprosto, če je lahko ...

Senitel ::

Saj sam hočeš komplicirat...
Za preprosto rešitev je bil že zgoraj predlagan OpenCV. Če si hočeš malo bolj umazat prste pa vzameš DirectShow ali pa WIA.

blay44 ::

Ma gre za učenje in hobi. Da ne ostanem celo življenje na ravni potrošnika>:D
En usran driver bom pa že spisal, čisto za hec.
Drugače so pa že spisane vse knjižnice za ustrezni dostop. V win10 pa bo menda lažje z giop.h

Tole bi morali moderatorji zbrisati, kompletno.

Zgodovina sprememb…

  • spremenil: blay44 ()

noraguta ::

blay44 je izjavil:

Ma gre za učenje in hobi. Da ne ostanem celo življenje na ravni potrošnika>:D
En usran driver bom pa že spisal, čisto za hec.
Drugače so pa že spisane vse knjižnice za ustrezni dostop. V win10 pa bo menda lažje z giop.h

Tole bi morali moderatorji zbrisati, kompletno.

Moje laučno menje, čeprav je gonnik v osnovi simpl kos programjaniz stališča prekladanja adress po pomnilniku je to zgolj vaja iz sloga uskladit zadevo z protokolom katerega podpira os pa ni več trivialno. Da stvar zares dela.zakaj os zaščiti pomnilnik, kolikor se gori kurčiš jenpandruga reč.
Pust' ot pobyedy k pobyedye vyedyot!

Brane22 ::

blay44 je izjavil:

Odgovor samemu sebi.
Morda komu prav pride in si s tem prihrani bolščanje v monitor.
Novi wini pa tudi linuks, ne dopuščajo nobenih direktnih dostopov do io portov. Zadevo ustavi kernel. Napisati je potrebno driver z Ms ddk orodjem in driver istalirati, da bo pravilno komuniciral s kernelom (.sys).
Res, zakaj bi bilo preprosto, če je lahko ...


To v bistvu ni res na kar nekaj nivojih. Za to so ustrezna orodja. Vsaj na Linuxu. Za Winse ne vem.

Zgodovina sprememb…

  • spremenilo: Brane22 ()

blay44 ::

Kihc, oziroma tudi drugi. Prav ste imeli. Danes zjutraj sem na hitro spisal
programček v vb za zajem videa in slike kar z vgrajeno kamero na maminem malčku.
Stvarca čisto dovolj hitro zajema sliko, čeprav ima atom n270 na 1,6 gHz.
Zadaj pa v nabavo dveh usb kamerc, da bom lahko še izračunal oddaljenost zajete skupine točk.
....
Tolažim se, da sem se vsaj malo naučil pisati,regi.. driverje.

Hvala


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Siemens m35 - rs232 - AT commands

Oddelek: Mobilne tehnologije
232946 (2132) JanezovJanez
»

Kje kupit prenosnik z RS232 COM portom

Oddelek: Kaj kupiti
353637 (2595) johnnyyy
»

Prenos podatkov iz odrezanih koncev sveta preko SMS-ov, satelita, ?, ...

Oddelek: Omrežja in internet
102136 (1712) mojca
»

Prenosnik z rs323 izhodom

Oddelek: Kaj kupiti
101622 (1362) solatko
»

RS-232 (COM) port PCMCIA adapter za prenosnik

Oddelek: Strojna oprema
51334 (1290) Ginginova

Več podobnih tem