Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

USB driver - Jak napisać driver w VS?

30 Kwi 2014 12:09 4455 31
  • Poziom 13  
    Witam
    Zrobiłem pierwsze programy na armie obsługujące USB. Zabrałem się za pisanie drivera i tutaj jestem teraz zielony.
    Zainstalowałem WDF ale pojęcia nie mam co dalej. Doczytałem gdzieś na www żeby wykorzystywać UMDF a nie KMDF.
    Gdy tworzę nowy projekt w VS to mam opcje między innymi: UMDF, KMDF oraz USB UMDF, USB KMDF oraz WinUSB Aplication.

    Pytanie teraz to który tryb wybierać i dlaczego? Dodam że na procku mam w tej chwili mass storage. Chciałbym coś najprostszego aby się tylko skomunikować.
    Jakieś tutoriale albo opisy jak napisać funkcje w plikach device.cpp oraz driver.cpp

    Gdy utworzyłem nowy projekt i zmodyfikowałem tylko plik inf to udało mi się osiągnąć tak jak jest na screenie. Mam status że nie udało się uruchomić urządzenia.
    Jeżeli znacie jakieś fajne programy do pisania driverów w C#/C++ ze wskazaniem na C# to również będę wdzięczny za sugestie.

    USB driver - Jak napisać driver w VS?
  • Computer ControlsComputer Controls
  • Poziom 38  
    w C# drivera nie napiszesz ;) to jest .NET... a musisz miec pojecie o czym takim jak programowanie w kernel mode :)

    Co ja ci moge napisac ;) MSDN, MSDN i jeszcze raz MSDN ;) czytac i czytac. Niestety pisanie driverow nie jest proste i znacznie odbiega od programowania w C# .NET (co jest bajecznie proste w porownania do pisania driverow) :)

    http://blogs.msdn.com/b/usbcoreblog/archive/2...ting-started-with-usb-driver-development.aspx

    http://msdn.microsoft.com/en-us/library/windows/hardware/hh406260%28v=vs.85%29.aspx
  • Computer ControlsComputer Controls
  • Poziom 13  
    To mam jeszcze pytanie czy dobrze rozumiem idee driverów.
    Muszę napisać funkcje, tak jakby frameworka, które będą np. odczytywały z USB dane, zmieniały tryb pracy itp. a później każdy może napisać aplikację która przy wykorzystaniu mojego drivera będzie będzie komunikowała się z urządzeniem?
  • Poziom 38  
    Dokladnie cos w tym stylu... Z tym ze jak uzywasz trybow HID czy USB Storage to tego robic nie musisz bo masz juz to rozwiazane w systemie. Potrzebne jest to jak potrzebujesz stworzyc sobie po USB jakis wlasny protokolik komunikacji.

    Nie wiem na ile korzystales na procku z gotowych bibliotek (bo to niestety sporo utrudnia wbrew pozora), warto zapoznac sie choc czesciowo z dokumentacja USB bo bez tego bedzie bardzo trudno cokolwiek zrobic. To samo od strony windows proponowal bym obsluzyc np. HID bez gotowej biblioteki typu libusb. Ot najpierw wykorzystujac hid.dll i potem przerobic to na DDK uzywajac hidsdi.h

    Jak przez to przebrniesz to mozna bawic sie w zabawe z wlasnymi driverami (ale prawde mowiac ja bym tego unikal do puki jest mozliwosc pracy w trybach HID, VCP itp.)
  • Poziom 13  
    Obecnie korzystam z CubeMX i STM32F429 (disco). Specyfikację samego USB poznałem dość dobrze na procku cypressa bo przyznaję że nauka z bibliotek USB w wydaniu ST to byłaby bardzo ciężka. Teraz jak już wiem co i jak to swobodnie poruszam się po tym co cube wygeneruje.
    Dzięki za nakierowanie, zajmę się tym HIDem ale widzę że jeszcze trochę walki mam przed sobą. VCP omijam z daleka (no chyba że do zdobywania doświadczenia to mogę wyjątek zrobić) bo właśnie dlatego zająłem się tematyką usb żeby wyeliminować RS232 i nawet w postaci wirtualnej nie chcę go widzieć.
  • Poziom 38  
    VCP wbrew pozora nie jest zle :) jak sie dobrze zrobi... a biblioteki od ST co juz nie raz bylo powiedziane nalezy unikac jak ognia bo to idealny przyklad jak nie powinno sie pisac kodu :) Ja wczesniej znowu na ATMega z wbudowanym USB (u8) bawilem sie i pisalem od podstaw VCP bo nie podobaly mi sie rozpasione biblioteki Atmela i LUFA. Wiec tez przebijalem sie przez dokumentacje USB by to zrobic, jak zerklem na te od ST to nie moglem zakumac o co tam biega i wolalem nie tracic na to czasu. Szybciej wyszlo napisac swoja obsluge ;)

    Natomiast co do reszty to VCP jest fajnym krokiem na PC wlasnie w postaci treningu bo musisz odebrac dane i stworzyc urzadzenie w systemie tzn. port COM :)

    Natomiast dlaczego nie jest zle - z prostej przyczyny jak robisz jakas elektronike OpenHardware/OpenSource znacznie latwiej ludzia mniej zaawansowanym pisac do tego alternatywny soft na PC niz uzywac np. przygotowanego przez ciebie drivera. Zreszta jak pobawisz sie z HID gdzie driver jest gotowy zrozumiesz o co chodzi :)

    Przynajmniej ja osobiscie wole uzywac VCP (ale to chyba z lenistwa he he) bo nawet przy wolnym HID jest wiecej roboty od strony aplikacji dla Windows :) ot przy VCP otwierasz strumien do pliku i tyle z calego zamieszania :) - a w .NET jeszcze prosciej...
  • Poziom 21  
    Chcialbym sie zapytac dlaczego nie chcesz skorzystac z gotowych rozwiazan (?) ale nie typu HID czy VPC bo one maja ograniczenia (okreslona wielkosc przesylanych danych w okreslonym czasie {co wiaze sie nieduza predkoscia w porownaniu z innymi klasami} - HID czy inna enumeracja uzadzenia na roznych pc - VPC) ale stworzyc urzadzenie generic usb i komunikawac sie poprzez winusb czy libusb. Protokol transmisji mozesz sobie przygotowac swoj , a np. ja dzieki wykorzystaniu biblioteli-nakladki (zrobionej przez ti) na winusb korzystam z w/w w sposob dziecinnie prosty na pc - uzywam do komunikacji 3 polecen: na poczatku 'open', gdzie w parametrach podaje swoj unikatowy nr guid i wiem ze bede komunikowal sie tylko z moim urzadzeniem. Zostaja tylko polecenia 'write' i 'read', gdzie jako parametry podaje uchwyt do wczesniej otwartego urzadzenia i bufory danych.

    Co do pisania na st urzadzenia usb ,to nie wydaje mi sie zeby ktos sie porywal bez uzycia bibliotek od st. Kolega @tplewa pewnie mial na mysli unikania bibliotek standardowych a nie usb...
  • Poziom 38  
    USB tez jest spaprana do reszty przez to wolna... Dlaczego nikt ma sie nie porywac ja sie porywalem bo potrzebowalem choc by USB pod FreeRTOS i to VCP ktore dziala na rozsadnym poziomie, a nie muli do tego nie chcialo mi sie dochodzic co oni tam odstawili w tej bibliotece i na jakiej zasadzie to dziala. Szkoda czasu na walke z wiatrakami...

    libUSB tez nie jest idealna... pisanie driverow jeszcze bardziej. Praktycznie pisanie wlasnych driverow oplaca sie jedynie dla komercyjnego sprzetu. Mimo ze w Win nie ma juz rozgwizdu jak byl kiedys z driverami - to mimo wszystko trzeba utrzymac drivery dla wszystkich popularnych systemow (a nie wiadomo czy M$ znowu czegos nie zmieni) :) nie wspominajac o modulach dla Linux-a czy OS X-a

    Mi osobiscie do znacznej ilosci projektow wystarcza VCP, w kilku stosowalem HID bo tez byl wystarczajacy i potrzebna byla obsluga na Linux, OS X, Android i Win :) Prawde mowiac to tylko dwa razy pisalem drivery :) ale to akurat nie bylo zbytnio wyjscia i byly to komercyjne projekty. Zreszta tam nie bylo tez STM32 bo sa za wolne po prostu :)
  • Poziom 13  
    Ja narazie nie potrzebuję robić komercyjnego projektu jednak chcę mieć świadomość że jestem w stanie to zrobić. Robię raz i później korzystam z tego za każdym razem i wiem że jest dobrze.
    Co do bibliotek ST, dziś analizowałem drogę odczytu np. device deskryptora i powiem szczerze że mocno się przeraziłem. Nie przesadzę jeśli napiszę że chyba z 10 funkcji trzeba było wywołać aby dojść do właściwej zwracającej deskryptor.
    Mam wrażenie że to jest zrobione celowo aby utrudnić analizę kodu, jeśli tak to programiści ST bardzo dobrze się spisali. W życiu nie widziałem tak pogmatwanego kodu.

    Jeśli ktoś myśli że otworzy jeden plik i tam zobaczy wszystkie deskryptory i wszystkiego się dowie to bardzo się myli.
    Jeśli ktoś myśli że łatwo dopisze swoje requesty to mu życzę duuużo szczęścia bo będzie mu bardzo potrzebne.

    Pozatym do dziś nie wiedziałem że takie cuda niewidy można wyprawiać ze strukturami.
    Na koniec napiszę że takie biblioteki mogą naprawdę skutecznie odstraszyć początkującego programistę od USB. Gdybym nie znał usb to na podstawie tego kodu nie doszedłbym nawet za 100 lat o co biega no chyba że najarałbym się czegoś mocnego to może coś bym zobaczył.
  • Poziom 38  
    @mikkel

    Dlatego mowie warto sie pobawic, ale na dluzsza mete nie ma sobie co utrudniac. Tak jak wspominalem przegladaj MSDN jest tam na prawde sporo informacji - M$ mimo wszystko ma bardzo dobra dokumentacje do systemu.

    A co do biblioteki nie dosc ze jest pogmatwana i mozna to napisac o niebo czytelniej to sa tam i inne gnioty ktore mocno zwalniaja... Ja poswiecilem jakies 2 godzinki na przegladanie tego gniota i stwierdzilem ze mam dosyc :) Lepiej spedzic troche czasu i zrobic cos od zera niz zrobic szybko projekt i potem spedzic miesiac bo cos nie dziala lub zle dziala - i zero pomocy w temacie bo nikt nic nie wie :)

    @oloam
    Zaprezentuj jakis projekt :) bo jestem ciekawy co ty robisz na tych STM32 :) ostatnio piny byly za wolne, potem SPI :) teraz USB wolne itd. :) Jestem az ciekawy co ty na tych prockach wyczyniasz :) mi osobiscie jak na razie w 100% projektow na STM32 do komunikacji z PC wystarcza USART :), a USB daje dla wygody bo trudno teraz o komp z portem szeregowym :)
  • Poziom 21  
    @tplewa, ciekawosc to pierwszy stopien do... ale moge ja zaspokoic i podeprzec moje wypowiedzi praktyka.
    Programator flash spi na ti (stad wolny spi w 103 w porownaniu z ti , ten co prawda cm4 ale i w porownaniu z lpc2148). Zeby nie byc goloslownym prawie rownolegle do opublikowanego programatora zrobilem programator na stm32f103 z tym, ze ten obsluguje dodatkowo pamieci nor i nand. USB driver - Jak napisać driver w VS?
    Co prawda, jako ze usb full speed wciaz jest wolniejsze niz to nieszczesne spi w 103 to nie widac (czyt. nie sprawdzalem) roznicy transferu na stm i ti.

    W zwiazku z tym ze popelnilem 2 programatory na roznych prockach zachowujac ten sam protokol transmisji, te same sterowniki i ten sam kompilator programu na pc, widze ze czas transmisji przesylu danych nie rozni sie miedzy nimi co pozwala wnioskowac ze nie takie biblioteki st sa wolne albo ti tez skopalo biblioteki...

    Co masz na mysli piszac ze biblioteki sa wolne, o ile w przypadku bibliotek standardowych 'normalne' , no moze ponad 'normalne' wykorzystanie powoduje beldy w dzialaniu procesora o tyle nie widzialem postu uzytkownika , ktory mowi o bledach w trakcie uzytkowania bibliotek usb. Moze dla odmiany podasz mi linki bo ja jestem ciekawy jakie to problemy maja uzytkownicy(?).

    Jezeli masz na mysli, ze biblioteka spowalnia transmisje, to jak to sie ma do transmisji HID gdzie max moze byc wyslane 64 bajty w ciagu sekundy ? To samo dotyczy VCP, nie pracowalem na tym ale czy predkosc nie jest ograniczona do predkosci ktora mozesz wybrac w sterownikach (dla st 128 kbit/s)? Jezeli tak to to komunikacja , ktora napisalem na wolnych bibliotekach stm usb wciaga nosem transfer VCP.

    I tak,mimo twoich drwin, usb full speed staje sie na dzien dzisiejszy za wolne, bo co to jest 12mbit , przy high speed 480mbit , usb3.0 5gbit czy 3.1 10gbit, jak rownierz wszelkich pryferiach (np. pamieci, inne procki) gdzie ich taktowanie i predkosci komunikacji wybiegaja daleko poza 18mbit...

    P.S. @mikkel biblioteki sa po to, zeby z nich korzystac (o ile prawidlowo dzialaja i nie posiadaja bledow - kolega @tplewa wskaze nam takowe) a nie analizowac ich kod, chyba ze chcesz cos w nich poprawic. Tak samo swojego czasu bylo narzekanie na cport do obslugi rs232. Niektorzy twierdzili, ze sa wolne (nie dzialaja tak samo jakby obslugiwac piszac 1000 lini kodu obslugi) ale zagladajac w kod zrodlowy mozna bylo zobaczyc czyste api dla windows...
  • Poziom 38  
    Wiesz co nie chce mi sie szukac ;) masz ostatni jeszcze z pierwszej strony dzialu ARM akurat tez problem z FreeRTOS :) Jest osoba co tez olala i sobie pisala, a zalozyciel tematu olal totalnie USB w tym wydaniu :)

    https://www.elektroda.pl/rtvforum/topic2796952.html

    Programator - no fanie i ile zyskujesz na czasie programowania ? Powiedz ze jest to tak cholernie istotne w zastosowaniach hobbystycznych...

    Fajnie jest USB 3.1 i co na tym zrobisz ? Bo ja uzywalem do tej pory 2.0 i wystarczalo gdzie masz elektronike przetwarzajaca obraz z kamery i inne cuda (EyeTracking) itp. Jak na razie nie mam tak wysokich wymagan :) Wiem ze sa i co z tego :) jest 10Gbps Ethernet sa dyski SAS 15k RPM itd. uzywasz tego w domowym komputerze. A moze masz w domu jakies MainFrame od IBM z prockami z196 bo Xeony od intela nie mowiac o ARM-ach to slimaki :) Nie mowiac juz o glupim Ethernet 1Gbps i switchach :) powiedz ze masz switch ktory ma matryce pozwalajaca przelaczac 1Gbps ethernet na wszystkich portach rownoczesnie w domu :) ot taki glupi wolny Ethernet :) A moze masz router sprzetowy ktory pozwoli na 10Gbps :) z pelna tablica BGP itd. tez w domu :)

    o to w tym chodzi by podchodzic do tematu z rozsadkiem - czy tego na pewno potrzebujesz :) Nie mowiaz ze koszty rosna niesamowicie bo sama PCB 4-8 albo i wiecej warst niezle kosztuja - a tego nie unikniesz przy szybkich magistralach. Nie wspominajac o tym by takie PCB zaprojektowac.

    Ja nawet w komercyjnych projektach nie uzywam tego co ty bys chcial... A na moich rozwiazaniach software/hardware pracuja firmy w PL, Japoni, UK, USA itd. ot takimi bzdurami bawie sie zawodowo: http://bioscope.pl/technologia/

    W zastosowaniach hobby (krotkofalarstwo, tuning a konkretnie sterowanie silnikami spalinowymi + inne mniej istotne pierdoly robione chyba z nudow) to juz nawet nie mowie bo uzywam rozwiazan przedpotopowych ;)

    Wiesz dlaczego ja nie uzywam libUSB ? bo nie chce mi sie ludzia majacym jakas wersje Win tlumaczyc jak to zainstalowac bo cos im nie dziala :) osobiscie tez mialem problem z OpenOCD i lubUSB pod OS X i to olalem he he bo szkoda bylo czasu :) - to odnosnie JTAG-a na ftdi ktorego kiedys uzywalem :)

    Dlatego staram sie robic projekty ktore podlaczasz i dzialaja :) bez instalacji czegokolwiek poza softem ktory daje do projektu :) VCP czy HID mi to zapewnia :) A ze do tego co przesylam mi te predkosci wystarczaja no to po co mam kombinowac :)

    Odnosnie biblioteki od ST kolega mikkel juz ja tez ocenil :) Mozna to zrobic czytelnie i tak ze przerobisz sobie ja w kazdej chwili pod wlasne potrzeby. Zwalnia tak zwalnia bo nie wiadomo po cholere jest wywolywania tysiaca funkcji ;) jak mozna to zrobic prosciej i przez to kod jest czytelniejszy. Mozna uzyc DMA itd. Ja nie pisze uniwersalnych bibliotek obslugujacych wszystko bo nie lubie takich, robi sie z tego ogromny kod zawily - a to niczemu dobremu nie sluzy. Zwlaszcza jak ktos po tobie ma to potem dalej rozwijac :)

    Moje VCP pod AVR i STM32 to sa 2 pliki jeden c i jeden h :) proste do dolaczenia do jakiegokolwiek projektu ze az boli :) do tego uzywaja z Win wbudowanego sterownika do VCP wiec nic nie trzeba instalowac... podpinasz i dziala :)

    Owszem uzywam gotowych bibliotek - problem w tym ze te dobre to za zwyczaj komercyjne i nie na kieszen amatora (ale to w firmowych projektach gdzie czas tez ma znaczenie). W hobby moge sobie pozwolic na robienie czegos nawet 2 lata :) Przy okazji uczac sie czegos nowego - co tez czesto procentuje w pracy zawodowej :)
  • Poziom 13  
    oloam, zacznę od tego że do tej pory jestem zwolennikiem bibliotek od ST w tej wcześniejszej wersji (przed CubeMX). Czytałem dużo narzekań ale wiedziałem że jestem w stanie szybko coś sklecić i łatwo było modyfikować po dłuższym czasie bo wszystko było na tacy wyłożone. Zabawę z cube zaczynam od usb i tu się zawiodłem. Idea cuba bardzo mi się spodobała. Myślę sobie tak: zrobię bazę a potem poedytuję tak aby było to co ja chcę.
    No i więc wygenerowałem sobie projekt no i załamka bo pojęcia nie mam gdzie co jest i jak to wszystko działa. Żeby coś pozmieniać to trzeba rozkminić większość funkcji i co chwila ctrl-f.
    W dodatku mam porównanie do firmwera od cypressa i uwierz mi że "niebo w gębie". Wszystko sensownie poukładane, jedna funkcja z requesteami w switchu i czegoś takiego szukałem tutaj. Szukałem jednej funkcji gdzie są requesty i się nie doszukałem.

    Pójdę za radą kolegi tplewa i sam sobie napiszę obsługę usb. Będzie inicjalizacja i będzie przerwanie a w nim switch z requestami i dalej wszystko po kolei w dół. Będzie też jeden plik z deskryptorami i gitara.

    Jeśli ktoś nie wie co potrafi cube to polecam się zabawić. Do ustawiania ADC czy innych peryferiów może się nadaje ale od usb to go lepiej zdaleka trzymać.
  • Poziom 38  
    @mikkel

    Malo czytelny kod ? Ustawienei ADC, DMA itd. :)
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=11809746#11809746

    @oloam

    Odnosnie TI to nie wiem bo nie uzywam, TI ma wredne podejscie do Hobbystow :) Jednak jakis czas temu rozmwaialem z kolega ktory zajmuje sie profesjonalnie :) robia jakas elektronike stosowana w tramwajach (chyba sterowanie napedem itp.) Okropnie na nich jechal ze za gruba kase kupili do firmy development kit i nawet przyklady na nim nie dzialaja :)

    Ja na prawde nie rozumiem dlaczego tak jest i po co tak nieczytelnie sie pisze obecnie :) Moze to jest przyczyna ze programisci z nawykami w programowaniu na PC itp. probuja to przenosci na tak male procki i wychodza z tego potem takie cuda wianki. A moze to ze poziom na uczelniach spada dramatycznie i juz niemal siega dna :)

    ---
    jeszcze moze taka mala zabawa odnosnie programowania :) napisz tutaj najkrotszy kod w C ktory da sie przekompilowac (im mniej znakow tym lepiej). Ja napisze na koncu :) chyba ze wczesniej ktos napisze taki ze mniej znakow juz sie nie da :)
  • Poziom 21  
    tplewa napisał:
    Wiesz co nie chce mi sie szukac :wink: masz ostatni jeszcze z pierwszej strony dzialu ARM akurat tez problem z FreeRTOS :) Jest osoba co tez olala i sobie pisala, a zalozyciel tematu olal totalnie USB w tym wydaniu :)

    https://www.elektroda.pl/rtvforum/topic2796952.html


    Gdzie tam masz wykorzystanie bibliotek stm usb?
    Jezeli nie chce ci sie szukac , to na jakiej podstawie wysuwasz swoje stwierdzenia? Myslalem, ze rozmawiamy merytorycznie,a wnioski podparte sa jakimis faktami a nie ' wyczytalem gdzies' i nawet nie potrafisz podac linka odnosnie meritum sprawy.
    tplewa napisał:
    Programator - no fanie i ile zyskujesz na czasie programowania ? Powiedz ze jest to tak cholernie istotne w zastosowaniach hobbystycznych...

    Jezeli przeczytalbys pierwszy post w temacie o programatorze to wiedzialbys , ze napisalem komunikacje po HID - teraz sobie oblicz 32mbit flash , 64 bajty na sekunde (komunikacja w jedna strone), ile czasu potrzeba na zaprogramowanie pamieci. Teraz wez dla przykladu nand 512Mbit lub 1Gbit. Moze wyczytales , ze nawet z ftdi nie dalo sie wyciagnac satysfakcjonujacej szybkosci. Widzisz juz, jak to jest cholernie istotny wybor klasy/protokolu transmisji ?
    tplewa napisał:
    Fajnie jest USB 3.1 i co na tym zrobisz ? Bo ja uzywalem do tej pory 2.0 i wystarczalo gdzie masz elektronike przetwarzajaca obraz z kamery i inne cuda (EyeTracking) itp. Jak na razie nie mam tak wysokich wymagan :) Wiem ze sa i co z tego :) jest 10Gbps Ethernet sa dyski SAS 15k RPM itd. uzywasz tego w domowym komputerze. A moze masz w domu jakies MainFrame od IBM z prockami z196 bo Xeony od intela nie mowiac o ARM-ach to slimaki :) Nie mowiac juz o glupim Ethernet 1Gbps i switchach :) powiedz ze masz switch ktory ma matryce pozwalajaca przelaczac 1Gbps ethernet na wszystkich portach rownoczesnie w domu :) ot taki glupi wolny Ethernet :) A moze masz router sprzetowy ktory pozwoli na 10Gbps :) z pelna tablica BGP itd. tez w domu :)

    o to w tym chodzi by podchodzic do tematu z rozsadkiem - czy tego na pewno potrzebujesz :)

    Gdybasz , a ja podaje konkretne problemy (wolny transfer, HID czy VCP nie do zaakceptowania)) w konkretnym urzadzeniu (programator pamieci - flashe dowolnego typu o duzej pojemnosci dostaniesz za grosze do wykorzystania w urzadzeniach hobbystycznych)
    tplewa napisał:
    Ja nawet w komercyjnych projektach nie uzywam tego co ty bys chcial... A na moich rozwiazaniach software/hardware pracuja firmy w PL, Japoni, UK, USA itd. ot takimi bzdurami bawie sie zawodowo: http://bioscope.pl/technologia/

    Co to ma do rzeczy? Przedstawianie procesorow do dedykowanych zadan a mikrokontrolery. Ja zajmowalem sie zawodowo (nie wiem jak to napisac- dzial developerski urzadzen medycznych) 'wymyslaniem' urzadzen medycznych. Sprzet kupuje jedna z najwiekszych jak nie najwieksza firma w usa powiazana z rynkiem medycznym. Ta wiedza, ktora posiadam nie upowaznia mnie do robienia operacji na ludziach (mimo ze cwiczylem, testowalem urzadzenie na organach zwierzecych). Jak to technologia , ktora uzywalem (mikrofale 2.4ghz , ptorafiace gotowac tkanki zamkniete w w sondzie o grubosci zapalki) ma sie do programowania arm? Nijak, wiec po co gdybac(?).
    tplewa napisał:
    Wiesz dlaczego ja nie uzywam libUSB ? bo nie chce mi sie ludzia majacym jakas wersje Win tlumaczyc jak to zainstalowac bo cos im nie dziala :)

    Tu juz ewidentnie twoja wina, sprawdzanie czy sa sterowniki, zainstalowanie ich mozna zrobic z poziomu programu ,ktory napiszesz na PC (przynakmniej pod win).
    tplewa napisał:
    Dlatego staram sie robic projekty ktore podlaczasz i dzialaja :) bez instalacji czegokolwiek poza softem ktory daje do projektu :) VCP czy HID mi to zapewnia :) A ze do tego co przesylam mi te predkosci wystarczaja no to po co mam kombinowac :)

    Dlaczego wiec na sile starasz sie udowodnic ,ze biblioteki stm usb + wlasne sterowniki sa be? @mikkel chcial wlasny protokol transmisji ,co wlasnie takie polaczenie mu umozliwia, poza tym, jest szybsze a nawet jezeli porownac z HID latwiejsze do implementacji jezeli chodzi o program na PC.

    Poki co to starasz sie drwic z mojego podejscia do tematu, w sposob podobny do przytoczonego przez ciebie tematu (1MHz) - "moze zaczniesz pisac na i5 czy i7", to moge ci odpowiedziec ,ze owszem pisze programu pod te procesory o osiagam zamierzony cel - zadane obliczenia , komunikacja usb, wyswietlanie na monitorze wynikow w postaci graficznej, GUI itp.
    Z takim podejsciem 'rob tak i tak,bo mi dziala i tak ma byc' do niczego nie dojdziemy.
    Uwazam, ze jako taka wiedze posiadam i wiem o czym pisze (przynajmniej staram sie to poprzec przykladami) i niech cie nie zwiedzie moja ilosc dotychczasowych postow, bo przed resetem konta mialem blisko 900 w tym grubo pona 100 pomogl i to w tym dziale wiekszosc, wiec uzytkownicy sami dali tym znac ,ze jednak nie tak glupio pisze.

    mikkel napisał:
    oloam, zacznę od tego że do tej pory jestem zwolennikiem bibliotek od ST w tej wcześniejszej wersji (przed CubeMX). Czytałem dużo narzekań ale wiedziałem że jestem w stanie szybko coś sklecić i łatwo było modyfikować po dłuższym czasie bo wszystko było na tacy wyłożone. Zabawę z cube zaczynam od usb i tu się zawiodłem. :idea: cuba bardzo mi się spodobała. Myślę sobie tak: zrobię bazę a potem poedytuję tak aby było to co ja chcę.
    No i więc wygenerowałem sobie projekt no i załamka bo pojęcia nie mam gdzie co jest i jak to wszystko działa. Żeby coś pozmieniać to trzeba rozkminić większość funkcji i co chwila ctrl-f.
    W dodatku mam porównanie do firmwera od cypressa i uwierz mi że "niebo w gębie". Wszystko sensownie poukładane, jedna funkcja z requesteami w switchu i czegoś takiego szukałem tutaj. Szukałem jednej funkcji gdzie są requesty i się nie doszukałem.

    Pójdę za radą kolegi tplewa i sam sobie napiszę obsługę usb. Będzie inicjalizacja i będzie przerwanie a w nim switch z requestami i dalej wszystko po kolei w dół. Będzie też jeden plik z deskryptorami i gitara.

    Jeśli ktoś nie wie co potrafi cube to polecam się zabawić. Do ustawiania ADC czy innych peryferiów może się nadaje ale od usb to go lepiej zdaleka trzymać.


    Implementacja USB poslugujac sie przykladami z biblioteki st jest dziecinnie prosta. Bierzesz projek przykladowy, kompilujesz , sprawdzasz czy dziala, zmieniasz deskryptory, ktore masz ladnie opisane w usb_desc.c (w moim przypadku), na urzdzenie generic, a cala transmisja znajduje sie w jednej funkcji przerwania EP3_OUT_Callback (w moim przypadku)... i to wszystko , nic wiecej cie nie interesuje.
    W funkcji
    Kod: c
    Zaloguj się, aby zobaczyć kod
    czytam dane z bufora usb
    Kod: c
    Zaloguj się, aby zobaczyć kod
    wysylam dane do PC. Dlaczego taka dziwna funkcja wysylania? Poniewaz korzystam z przerobionego przykladu VCP. W przykladzie powyzej teoretycznie potrzebuje wysjac jeden bajt ale praktyka nauczyla mnie, zeby wysylac cala ramke.
    To tyle , teraz wystarczy zainstalowac sterowniki (moge ci przeslac na pw, te ktore dostarcza ti, sa porstsze w obsludze jezeli chodzi o aplikacje na PC) i napisac program na PC.
    tplewa napisał:
    Odnosnie TI to nie wiem bo nie uzywam, TI ma wredne podejscie do Hobbystow :) Jednak jakis czas temu rozmwaialem z kolega ktory zajmuje sie profesjonalnie :) robia jakas elektronike stosowana w tramwajach (chyba sterowanie napedem itp.) Okropnie na nich jechal ze za gruba kase kupili do firmy development kit i nawet przyklady na nim nie dzialaja :)

    Ja na prawde nie rozumiem dlaczego tak jest i po co tak nieczytelnie sie pisze obecnie :) Moze to jest przyczyna ze programisci z nawykami w programowaniu na PC itp. probuja to przenosci na tak male procki i wychodza z tego potem takie cuda wianki. A moze to ze poziom na uczelniach spada dramatycznie i juz niemal siega dna :)

    Odnosnie ti ,to uzywam czysto z ciekawosci i dlatego ze cenowo powalaja, jezeli chodzi o taniosc launchpadow. Wlasnie lezy kolo mnie launchpad na TIVA129, jako ze posiada quad spi i ulpi , to postaram sie rozbujac transmisje uc <=> flash spi na maxa (chyba mam flash 200mhz) i usb na maxa czyli hi-speed.
    tplewa napisał:
    jeszcze moze taka mala zabawa odnosnie programowania :) napisz tutaj najkrotszy kod w C ktory da sie przekompilowac (im mniej znakow tym lepiej). Ja napisze na koncu :) chyba ze wczesniej ktos napisze taki ze mniej znakow juz sie nie da :)

    Ze mna sie nie pobawisz - najlepiej czuje sie w delphi...
  • Poziom 38  
    @oloam

    Nie nie kpie z ciebie, staram sie troche sprowadzic na ziemie :) bo jak kiedys napisalem z jednej strony chcesz profesjonalnie - a z drugiej mowisz ze trzeba oszczedzac itd. (chodzilo o IDE). Dla mnie Hobby ma na celu nauke i zabawe - ktora jak napisalem procentuje w zyciu zawodowym :) Dlatego warto cos pisac samemu, czasami isc na kompromisy itd. Natomiast profesjonalne podejscie jest calkiem inne i tam sie inaczej wszystko kalkuluje i na prawde uwierz mi mozna i w PL inwestowac bez bankructwa :) Trzeba tylko realizmu i kalkulacji :) Natomiast co do firmy to powiem ci ze stanowi ja kilka osob - razem pracowalismy dla kogos i stwierdzilismy ze nie warto pracowac na swoj garb :) Na prawde jak na okres dzialania osiagnelismy sporo - ale wlasnie przez rozsadne podejscie i czasem kompromisy. Nie potrzeba bylo dotacji z UE i innego syfu... jak wiadac mozna tylko potrzeba checi i rozsadku (a obecnei pracujemy dla na prawde duzych firm). Od strony technicznej i programowania to tak na prawde sa dwie osoby ot dwoch takich Tomkow oszolomow ;)

    Mowisz dalej o szybkosci ok trzeba bylo dac STM32F4 + PHY :), a moze lepiej bylo by zrobic karte na PCI-x ? Jest w tym sens ?

    Co do postu ktory podalem jest tam o bibliotece ze jest z nia problem choc by odpalic pod FreeRTOS-em :) jest problem ze kolega sobie odpuscil jej analize bo jest cholernie nieczytelnie napisana itd. To sa na prawde istotne sprawy. Po co brac kod ktory cie ogranicza jesli chcesz choc ciut wyjsc poza jego ramy ? Sam predzej czy pozniej zostaniesz zmuszony do uzycia RTOS-a i trzeba bedzie jej powiedziec PA PA i co wtedy ?

    Po prostu pamietam tutaj troche tematow odnosnie tej biblioteki gdzie ludzie mieli spore problemy aby ja uzyc. Szybkosc szybkoscia ale te procki nie oklamujmy sie sa wolne i tam tez trzeba cykle czasem oszczedzac jak sie robi cos wiekszego. Wiec po co je mam marnowac uzywajac jakiejs rozpasionej biblioteki, jak tak prawde mowiac mozna to zrobic lepiej i na prawde nie duzym nakladem kosztow jak masz pojecie o USB. U ciebie wlasnie problemem z tym USB jest ta biblioteka, bo nie dziwie sie ze cie wystraszyla i twierdzisz ze robienie swojego USB na STM32 to jakas abstrakcja :)
    Mnie jej uzywanie mocno zniechecilo jak przegladalem kod... a moze fakt jestem za cienki i powinienem jej uzywac. moze faktycznie nie potrafie jej uzywac i pora sie nawrocic ;)

    Mowisz o instalatorze :) a po co ? jak wspomnialem jesli taka predkosc mi wystarcza jaka oferuje VCP... Ja wole minimalizowac problemy niz dawac cos co nie jest potrzebne, a moze je wywolac.

    Co do tej biblioteki mowisz zowu o Delphi :) w Delphi tez piszesz na STM32 ? na tej podstawie oceniasz ta biblioteke ze jest dobrze napisana ? Dziala jak dziala - ale mozna to zrobic lepiej i tyle w temacie :) Ci sie nie chcialo ja zrobilem i tyle. Duzo pracy az tak nie bylo... Zreszta nie dlugo bedzie dostepna wraz z calym kodem licznika Geigera ktory robie - musze tylko kod doprowadzic do ladu i skladu (komentarze itp. i wyladuje na GitHUB). Ale to niestety VCP :( Bede potrzebowal czegos szybszeko napisze teraz w pare dni i tyle :)

    W tym temacie tez wspomnialem ze HID jest wolny ale do tego do czego zostal stworzony jest wystarczajacy :) To jest wlasnie tez rozsadne dobieranie sposobu transmisji.

    Nie zrozum mnie zle, ale nie pisze by cie osmieszyc itp. a jak wspomnialem bardziej sprowadzic na ziemie... do tego troche oddzielic podejscie w hobby do tego co sie robi zawodowo... bo to sie nijak ma do siebie.

    Na koniec chcesz biblioteki :) uzywaj np. libopencm3 - jest o niebo lepsza... USB tez ma i to calkiem sympatycznie roziwazane :)
  • Poziom 21  
    tplewa napisał:
    Mowisz dalej o szybkosci ok trzeba bylo dac STM32F4 + PHY :), a moze lepiej pilo by zrobic karte na PCI-x ? Jest w tym sens ?

    Oczywiscie, ze jest sens - nauka,wiedza,rozwiazywanie problemow i nie widze nic smiesznego pytajac tu na forum o rzeczy, ktore innym wydaja sie oczywiste. Pije tu do tematu 1Mhz, bo ja potrzebuje wiedzy i chcialbym wiedziec dlaczego cos dziala tak nie inaczej a odpowiedzi 'bo tak' mnie nie satysfakcjonuja. Dlaczego mam sie ograniczac? 'Madre' glowy czasami wypowiadaja sie niemadrze, wracajac do tego tego nieszczesnego 1Mhz stanelo na tym, ze od tego jest pwm, jednak na pytanie o reczne machanie padaly rozne odpowiedzi, po czym stanelo ze byloby szybciej gdybym zastosowal bitbanding . Oczywiscie inni na tym by poprzestali , lecz ja wlaczylem timer w tryb toggle i... o dziwo max predkosc byla taka sama jak dla mojego kodu, wiec skoro sprzetowo procek nie potrafi szybciej przelaczac to nie wydaje mi sie stosujac programowy bitbanding bedzie szybciej... ale to dygresja. Ja poprostu lubie znac zrodlo rozwiazania problemu a nie tylko same rozwiazanie.
    tplewa napisał:
    Co do postu ktory podalem jest tam o bibliotece ze jest z nia problem choc by odpalic pod FreeRTOS-em :) jest problem ze kolega sobie odpuscil jej analize bo jest cholernie nieczytelnie napisana itd. To sa na prawde istotne sprawy. Po co brac kod ktory cie ogranicza jesli chcesz choc ciut wyjsc poza jego ramy ?

    Ale teraz mowisz o zagmatwaniu kodu a nie o jego blednym (wolnym) dzialaniu.Sorry ale jak ktos , nie moze poradzic sobie z biblioteka to jak chce wykorzystac api? Nie raz przerabialem zrodla komponentow pod delphi dla lepszego wykorzystania w moich programach, bez znajomosci chociazby windows api i delphi nie masz szans na wprowadzenie znaczacych zmian, a co dopiero 'wymyslac kolo' od poczatku i pisac wszystko oddzielnie. Jak napisalem wyzej, po to sa biblioteki, zeby z nich korzystac, z ich ulomnosciami rowniez, chyba ze, sa to ulomnosci rujnujace nasza prace (chocby standardowe biblioteki stm i to w niektorych przypadkach). Tak jak napisalem wyzej nie spotkalem sie z problemem tej natury, ktory opisujesz (ze spowalniaja procek, czy 'zabieraja' cykle), dlatego prosilem cie o linki , chcialbym zobaczy w jakiej aplikacji wystepuja te problem ,zeby uniknac ich w przyszlosci.
    tplewa napisał:
    Mowisz o instalatorze :) a po co ? jak wspomnialem jesli taka predkosc mi wystarcza jaka oferuje VCP... Ja wole minimalizowac problemy niz dawac cos co nie jest potrzebne, a moze je wywolac.

    A co jak koledze @mikkel taka predkosc nie wystarczy, nie okreslil w sumie do czego potrzebuje, chcial pisac wlasne sterowniki wiec zaproponowalem wykorzystanie gotowych, standardowych (winusb,libusb).
    tplewa napisał:
    Co do tej biblioteki mowisz zowu o Delphi :) w Delphi tez piszesz na STM32 ? na tej podstawie oceniasz ta biblioteke ze jest dobrze napisana ? Dziala jak dziala - ale mozna to zrobic lepiej i tyle w temacie :) Ci sie nie chcialo ja zrobilem i tyle. Duzo pracy az tak nie bylo... Zreszta nie dlugo bedzie dostepna wraz z calym kodem licznika Geigera ktory robie - musze tylko kod doprowadzic do ladu i skladu (komentarze itp. i wyladuje na GitHUB). Ale to niestety VCP :(


    Widzisz i tu sie zdziwisz, moze nie pisze na stm32 w delphi ale w pascalu moge jednak jak pisalem wyzej chce poszerzac wiedze , dlatedo jednak uzywam C.
  • Poziom 38  
    Zagmatwanie i bledne pisanie tez spowalnia... powiedz mi co sie dzieje przy wywolaniu jakiejs funkcji w C i powrocie z niej ? Jak ich da sie sporo co sie dzieje ? Zerknij od strony tego co masz po kompilacji... Czy nie lepiej jak cos przepisujesz czasem w pamieci uzyc np. DMA skoro je masz :) i tym podobne sprawy.... Dlaczego czasami warto dawac w C "inline" ;) ?

    Czego unikac abys wiedzial na przyszlosc nie wiem :) Ja mowie unikaj tego badziewia od STM :) masz choc by wspomniany zamiennik o ktorym wspomnialem i powstaje na nim na prawde kupe ciekawych projektow. Wszystko zalezy od skali kodu - jak cos sie robi rozbudowane to te wszystkie biblioteki od ST tylko utrudniaja tak na prawde. Ja znowu mam taka nature ze lubie niektore roziwazania pisac po swojemu bo mi sie nie podobaja i tyle. Przydatne to jest jak wracam do projektu po dlugim czasie i nie mam problemu ze patrze na kod i zastanawiam sie jak to dziala :)

    Nie wiem jak ci to wytlumaczyc ale chodzi o to ze jak sie pisze na takie procki to trzeba myslec i to mocno o optymalizacji kodu pod wzgledem wielkosci jak i szybkosci wykonywania :) Niestety tej optymalizacji w przykladach od ST mocno brakuje.

    Ahhh i zaznaczam pisze o projektach hobbystycznych :) bo w pracy mam czasem inne podejscie - ale jak wspominalem to nalezy mocno rozgraniczyc :)

    ahhh i musisz tez brac poprawke ze nie wszyscy zglaszaja problemy na forum czy o cos pytaja. Ja za zwyczaj siadam i pisze - a nie pytam :) Wiele osob tak samo robi. Czasami przeportowuje tez kod napisany kiedys itp. ot po pewnym czasie ma sie tez wiele swoich bibliotek i odpada uzywanie gotowcow.


    Co do tej biblioteki to na prawde na chwile obecna nie pamietam, ale bylo tutaj troche tematow odnosnie USB na STM32 i wiedze ile ludzie mieli z tym niepotrzebnych problemow. A nie mam czasu przegladac teraz calego dzialu ARM by je wyszukac bo siedze tez teraz nad kodem :) i tak w miedzyczasie cos tutaj klepie.
  • Poziom 21  
    To ciekawe co piszesz ,biorac pod uwage, ze usb w stm dziala w fs (12mbit),zastanawia mnie wiec co takiego musi robic procek, zeby biblioteka spowolnila jego dzialanie. Jezeli ustwisz priorytet transmisji usb jako mniej wazny od tego, ktory tak pozera zasoby procka, to fakt, jezeli jest tak jak mowisz,ze biblioteki st tak spowalniaja procka, to przy HID moglbys miec problemy z transmisja ,bo wykorzystywany jest tryb przerwaniowy i dane powinny sie znalezc w buforze najpozniej co 1ms w max szybkosci, co tez wydaje mie sie nieprawdopodobne zeby procek wykonywal jakes zadanie tak dlugo. Ale co stoi na przeszkodzie ustawienia przerwan HID na dluzszy czas? Nie mowiac juz to transmisji bulk (czyli np proponowane przeze mnie rozwiazanie) gdzie jezeli biblioteki faktycznie spowalniaja procka to ,transmisja poprostu zwolni na czas 'zajetosci' procka, jezeli procek zwolni zasoby transmisja znowu przyspieszy. Poki co nie moge sobie wyobrazic takiej aplikacji gdzie, biblioteki tak zwalniaja procka, ze potrzeba pisac wlasna obsluge usb
  • Poziom 38  
    Poprawilem post wyzej - dalej nie rozumiesz.... nie pisze sie kodu by byl dlugi i rozwlekly bo kazda instrukcja to stracone cykle procesora. Kazda funkcja to odkladanie i pobieranie ze stosu itd. Chodzi po prostu o optymalne pisanie. Na PC obecnie to mozesz olewac... i ludzie to olewaja - skutki sa oplakane :) Zobacz kiedys jak o tym ludzie mysleli co sie robilo np. na DemoScenie piszac w ASM od strony grafiki 3D itp. Teraz zamiast optymalizowac ludzie wola brac procka z XXX Flashu i szybszym zegarem, a czasami nie ma to sensu bo nagle okazuje sie ze proste procki nie wystarczaja. Natomiast to do czego pije to to ze tej bibliotece od ST daleko do optymalnego kodu - przez to tez jest zagmatwana i co kolwiek w niej zmienic to katorga... Mozna to wszystko generalnie zrobic o wiele lepiej...

    Ja w projekcie gdzie bylo pytanie o RTOS-a mam na prawde kupe kodu, jest tam Ethernet, LCD, Touchscreen, DSP (modulacja/demodulacja AFSK), USB, BT, karta SD i kupa innych spraw - tam nie ma miejsca na takie podejscie jakie jest w bibliotekach ST bo bys tego nie zrealizowal na STM32F4 :) Ale z opisu chyba wiem dlaczego nie lapiesz :) Chyba nie pisales jeszcze softu ktory dziala na wielu watkach i fajnie jest jak te watki sie szybko przelaczaja - a ile sie da zwala sie na wbudowane hardware... uzywajac tej biblioteki tego po prostu nie pogodzisz :) Zwlaszcza ze te procki nie maja wielu rdzeni :)
  • Poziom 21  
    Ja naleze do tej grupy co olewaja faktycznie optymalizacje kodu. Sam kiedys bylem fanem optymalizacji kodu (czasy dos i pascala), z tym ze zimienilo sie t z prostego powodu - technologia. Co z tego jak ja bede optimalizowal kod, skoro tworcy gier olewaja to i wymuszaja na uzytkownikach zakup coraz to wydajniejszego sprzetu? Teraz nawet bez optymalizacji i najgorzej napisany program pojdzie nawet na starym kompie z win 95... nie jestem w stanie nawet tak napisac programu (oczywiscie nie specjalnie) zeby zrzeral wszystkie zasoby pc. To samo niestety dotyczy uc. za czasow malych avr trzeba bylo sie miescic w 1kb flash i kilkudziesieciu/kilkuset bajtach ram, a teraz... procki arm w smiesznie niskich cenach po kilkadziesiat kb ram i kilkaset flash jako standard i nie wiadomo ile mzh zegar. Gdzie u mnie kod zajmie powiedzmy 16kb flash. Po co wiec ta optimalizacja. Sam napisales ,ze na iles tam zadan nie ma miejsca na takie pisanie np dla STM32F4. Dlaczego w dzisiejszych czasach nie siegnac po procek ,ktory to zrobi z palcem w ... Dlaczego w takim razie wy, w waszej firmie nie piszecie na stm tylko wykorzystujecie procesory dedykowane? Widzisz analogie? Sami pisaliscie (wiesz o ktorym temacie mowie) ,ze wybiera sie procka do projektu a nie pakuje projekt do procka...

    Zrobil sie maly off... wiec ja nie bede juz sie rozpisywal i odpowiadal na tematy , ktore nie dotycza tego watku
  • Poziom 38  
    Nie o optymalizacje dbamy bo nie bylo by to konkurencyjne... nie ma jakis cudow - ale troche wiecej niz jednoukladowe choc by ze wzgledu na potrzebe wiekszego RAM-u (czyli wymagany kontroler pamieci). Uzywa sie bardziej komercyjnych rozwiazan by nie tracic czasu na cos co jest dobrze zrobione i lepiej sie tego samemu nie zrobi (bo tutaj szkoda czasu).

    Optymalizowac warto ale nie do przesady, z tym ze w druga strone to tez jest niezdrowo - a to robi ST :) Ten kod na prawde wyglada tak jak by specjalnie ktos to robil - bo na prawde trzeba sie mocno starac by tak nieoptymalnie to napisac. Ja tak samo nie mam pojecia dlaczego oni tak to pisza i namawiaja do uzywania tych bibliotek (tutaj mowa o calosci). Zreszta z dokumentacja jest podobnie :) Jak by chcieli ludzi zniechecic do swojego produktu celowo :) Co do STM32F4... to w sumie ja bym dal wiekszy procek... ale to jest projekt dla krotkofalowcow i musze brac pod uwage cene, latwosc montazu itp. Mial byc na poczatku prostszy uklad z STM32F103... ale wyszedl babol ze te procki zaklocaja GPS (a konkrednie podobno pamiec Flash w nich wbudowana)... Ot wzielem F4 i postanowilem upchach tyle funkcji ile tylko zdolam :) Choc i tak ta latwosc montazu i cena dla wielu osob jak slysze jest za mocnym przegieciem i chcieli by cos mniejszego i tanszego :)
  • Poziom 13  
    Ja tu widzę że teraz mało kto zdaje sobie sprawę co to jest stos i do czego służy.
    W bibliotece ST jest sporo funkcji które tylko i wyłącznie wywołują kolejną. Wydaje się że ok. ale teraz pomyśleć że za każdym razem trzeba odłożyć rejestry na stosie a w drodze powrotnej przywracać.
    Marnotrawstwo cykli zegarowych a tym samym energii elektrycznej.

    Kolejna sprawa, aplikacja usb wygenerowana przez cube ma 3 poziomy. Usera, midleware no i hal. Idę sobie pokolei z samej góry, z usera do midle, z midle do hal i tu już myślę że dojdę do tego czego szukam atu zonk, znów skok do midle. No to sobie myślę, no ja piernicze takie biblioteki.

    tplewa, widzę że masz ciekawą pracę, jesteś wolnym strzelcem?
    Ja mam stałą pracę ale kusi mnie żeby kiedyś zostać freelancerem.
  • Poziom 38  
    Prawde mowiac to nad zakupem Cube tez sie zastanawialem :) za ta kase to fajna zabawka. Tylko niestety kiedy sie nia bawic jak mi przynajmniej 4 projekty hobbystyczne leza w szafce i czekaja az sie nimi zajme. Ot tak od czasu do czasu jakis sciagam i cos podlubie :)

    Ja znowu nie jestem zwolennikiem rozbijania wszystkiego na warstwy bo trudno to zrobic dobrze. Znowu wracam do postu o FreeRTOS-a gdzie dawalem pytanie. Ot takie rozbicie uniemozliwialo w wczesniej wybranym RTOS-e sprzegniecie Timera, ADC i DMA razem... Jak sie zrobi znowu uniwersalnie to powstaja znowu spory narzut kodu i przy prockach z malym Flashem jest to upierdliwe.

    Co do pracy to trudno to nazwac wolnym strzelcem, na poczatku w sumie tak mozna by nazwac prace w firmie :) Teraz niestety juz jest to firma z jakimis w miare standardowymi zasadami pracy... Choc developerke trudno tez zamknac w jakies scisle ramy bo wiadomo jak to jest z programowaniem itp. czasami trudno cos zaplanowac i nie zawsze rezultaty sa zgodne z tym co sie oczekiwalo :)

    Wracajac jednak do tematu... daj znac co i jak z tym USB :) Ja uciekam teraz do lutownicy - a wieczorem moze znowu do kodu :) ot chce nadgonic troche w projekcie ktory lezy na polce juz z rok czasu :)
  • Poziom 13  
    tplewa napisał:
    nad zakupem Cube tez sie zastanawialem

    Jak to nad zakupem, chyba mówimy o różnych rzeczach.
    Ja mówię o STM32CubeMX (w skrócie czasem cube), darmowym programie od ST:
    http://www.st.com/web/en/catalog/tools/PF259243

    Jeśli jest jakieś inne "cube" to ja o istnieniu takowego nie wiem.

    tplewa napisał:
    daj znac co i jak z tym USB

    No jednak wylałeś sporo zimnej wody na moją głowę i teraz muszę trochę zmienić podejście do tematu USB.
    W pierwszej kolejności chyba napiszę swój projekt na arma, później zrobię VCP tak aby nie było potrzeba żadnych sterowników, obecnie nie wiem jeszcze jak to ma wyglądać ale zakładam że musi być konkretny VID, PID no i deskryptory. Później zobaczę ale napewno będę próbował pisać własny driver. Ale to narazie w zasadzie tylko hobbistycznie...
  • Poziom 38  
    Hi jak bedziesz mial jakies problemy daj znac ;) cos pomyslimy... a co do Cube to cos mi sie pomieszalo - zdawalo mi sie ze tez tak nazywa sie plytka Discovery z wyswietlaczem (chyba na pokladzie jest STM32F4...)

    A co do kubla zimnej wody to bez przesady... to nie jest jakies trudne tylko aby dobrze zalapac lepiej powoli sobie testowac i patrzec jak dziala. Bo generalnie ogarniecie calego tematu USB to juz kupa czasu... ale to co sie najczesciej uzywa mozna obczaic w stosunkowo szybkim terminie.
  • Poziom 13  
    Dzięki za dyskusję, temat chwilowo jestem zmuszony zamknąć z powodu braku czasu, a szkoda.
  • Moderator Programowanie
    Na prośbę autora tematu, temat odblokowuję.
  • Poziom 13  
    Mam pytanie odnośnie pisania driverów na VS.
    Zainteresowałem się WinUSB ponieważ chciałbym tworzyć w Vendor class.
    Czy możecie mi napisać co pokolei należy zrobić aby zadziałało?
    Pod VS tworzę projekt "WinUSB application" w którym mam 2 projekty: usb driver oraz usb driver package. W tym drugim jest tylko plik "inf" w którym edytuję pid/vid. Pierwszy projekt to rozumiem że to jest przykład wykorzystania drivera.
    Po podłączeniu urządzenia zainstalowałem driver WinUSB i w managerze jest ono poprawnie wykryte jednak program nie widzi go.
    Mam pytanie jak podłączyć się do urządzenia oraz jak wygląda wysyłanie danych do endpointów i zgłaszanie requestów?