Cześć, patrząc po poradnikach pisania driverów do Linuxa, zauważyłem, że np. w przykładzie jakiegoś drivera, który korzysta z GPIO, numer GPIO jest hardcodowany w źródle drivera. A co jeżeli mam board A, na którym chce wykorzystać GPIO10, oraz board B, na którym ten sam driver chce użyć ale z GPIO25?

#linux #embedded #programowanie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bielu000: przy ładowaniu modułu można mu w parametrze dać opcje. Mogłoby to mówić driverowi na jakiej płytce działa, albo jaką mapę GPIO załadować etc. Podobnie możesz stworzyć interfejs do edycji tego z poziomu np. /dev
  • Odpowiedz
#anonimowemirkowyznania
Potrzebuje pomysłu na pracę inżynierską. Studiuję elektronikę i interesują mnie tematy związane z branżą #embedded Obecnie jestem na stażu jako programista embedded w automotive, ale raczej wolałbym tematy typu IoT. Planuję zrobić coś w oparciu o STM32. Macie może jakieś pomysły, potrzebuję natchnienia, bo obecnie wszystko co wymyślę za 5 minut stwierdzam że się nie nadaje ( ͡° ʖ̯ ͡°) Smart Home już oklepany, chyba
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AnonimoweMirkoWyznania: zaadaptuj stm32 do zrobienia audio multiroom który zmienia urządzenie output gdy użytkownik przechodzi z pomieszcenia do pomieszczenia

czujnik przeciwpożarowy oparty o miernik cząstek pm i kamerę termowizyjną przesyłający alert w formie mms albo mail w przypadku pożaru

ot, takie rzeczy na szybko mi przyszły do głowy
  • Odpowiedz
Mam problem z komunikają z modułem ESP8266.
Piszę sobie parser do tych komend AT i natrafiłem na coś dziwnego.
Modem domyślnie ma włączone echo co mi akurat odpowiada.
Po wysłaniu przez DMA komendy AT+CWMODE i otrzymaniu danych moje bufory wyglądają tak:

TX[0...n] = AT+CWMODE=1\r\n
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jaka jest najlepsza metoda do zapisywania danych do pliku tekstowego na kartę SD? Zakładając, że mam projekt, który
w przerwaniach odczytuje jakąś wartość z sensora co 1 ms.

Miałem pomysł żeby zapisywać dane w pliku tekstowym co jedną linijkę np. usawtić sobie bufor na 30 znaków i za pomocą
funkcji sprintf, a następnie fprintf bądź fwrite zapisywać tą linijkę na kartę
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ithan: pooling ci blokuje wykonanie i to nie da rady tak dalej.
Polecał bym RTOS i DMA bo wtedy sobie to na zadaniach możesz rozbudowywać jak chcesz ale musisz zdecydować ile cie to pracy będzie kosztować.

Jesli nie RTOS to minimum moim zdaniem to DMA do SD w obslugowane w main na poolingu, i uzupelnianie kolejki dla DMA w przerwaniu od timera (odczyt i formatowanie danych), przy czym to nie
  • Odpowiedz
@Ithan: ew odwrotnie, dorzucanie do DMA w przerywaniu a timer tylko zapala flage i odblokowuje odczyt danych z czujnika i formatowanie w main.
I to szczerze było by rozsądniejsze.
  • Odpowiedz
Podczas pisania biblioteki w C na pewien moduł napotkałem na taki problem. No więc jest sobie projekt w cmake'u, gdzie
ustawiona jest flaga kompilatora na: -0g, czyli lekka optymalizacja z opcją debuggowania - no i ok.

Mamy taki kod:

void funkcja() {
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ithan: masz jakiś błąd w obsłudze SPI, który przez przypadek pojawia się gdy dasz -O0. Jeśli w ciele tego fora nie korzystasz ze zmiennej i, to powinna ona być volatile. Nie ma to jednak związku z HardFultem. Tutaj volatile dodajemy, bo kompilator może uznać zmienną za zbędną. Poza tym stosujemy w przypadkach, gdy zmienna może niespodziewanie dla kompilatora zostać zmieniona przez przerwanie, wątek lub sprzęt. To nie jest tak, że
  • Odpowiedz
@Ithan: @Ithan: volatile używasz tylko wtedy, gdy wartość zmiennej może się zmienić bez wiedzy kompilatora. Działa to na takiej zasadzie, że wygenerowany kod po prostu zawsze będzie się odwoływał do głównej pamięci zamiast optymalizować tak, żeby tego nie robić. W tym przypadku nie trzeba volatile, bo wartość i nie jest zmieniana sprzętowo, tylko w pętli. Błąd pewnie masz w tej wołanej funkcji
  • Odpowiedz
Chodzi za mną zrobienie kursu/wstępu do kernela Linux, ew jakaś seria filmów entry level z programowania C/Asm na Arm. Podstawowy problem?... Doba ma 24h :|

Natomiast jeśli są tu jacyś początkujący adepci #embedded z Krakowa, którzy szukają monitoringu i przy okazji odbycia stażu/praktyk studenckich to polecam wysłać CV pod inter@semihalf.com
Więcej w ogłoszeniu: https://www.semihalf.com/jobs/#programista-c-stazysta

#arm #embedded #programowanie #programista15k
Rosly - Chodzi za mną zrobienie kursu/wstępu do kernela Linux, ew jakaś seria filmów ...

źródło: comment_1617978314Xdb1oFpH6D13ndsQobpVK2.jpg

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mDvMatti: Ciezki temat bo wielu pracodawcow teraz jak szuka automatyka to chca kogos kto bedzie automatykiem, elektrykiem, mechanikiem, programista robotow i kto wie kim jeszcze.
Trzeba by mysle rozroznic przede wszystkim automatyka utrzymania ruchu od automatyka programisty.
Tutaj bedzie roznica w zarobkach.
Druga sprawa niektorzy automatycy faktycznie siedza w delegacjach na uruchomieniach, ale wielu ktorych znam pisze programy a potem jedynie wspiera uruchomienia zdalnie.
  • Odpowiedz
@mDvMatti: także no, wymyśl sobie jakiś projekcik, czytaj tutoriale, złóż coś swojego, potem doczytaj, czemu zrobiłeś to źle, bo nie użyłeś odpowiednich peryferiów mikroklocka i iteruj.
  • Odpowiedz
@mDvMatti: Moim zdaniem dość proste na początek będzie coś z AVR. Kup sobie jakąś płytkę uruchomieniową: procek + peryferia i książkę Mirosława Kardasia, tą niebieską nie pamiętam tytułu. Tu masz jego blog http://mirekk36.blogspot.com/ gość jest trochę nerwowy na forum ale tłumaczy bardzo przystępnie :)
Odżałuj 100-200 zł i masz kompletny zestaw do nauki.
  • Odpowiedz
#anonimowemirkowyznania
Kwartalne sprawozdanie z zarobków dla inżynierów pracujących na etacie z tagów:

#elektryka #elektrotechnika #energoelektronika #plc #elektronika #embedded #automatyka #robotyka #air #elektroda

Po co? Żeby poznać na jakie zarobki może liczyć inżynier czy technik w danym regionie Polski, żeby polepszyć świadomość w tej kwestii, a co za tym idzie polepszyć pozycję negocjacyjną
AnonimoweMirkoWyznania - #anonimowemirkowyznania 
Kwartalne sprawozdanie z zarobków d...

źródło: comment_16176969188gQUe1knlZpNDpgp2lCaE2.jpg

Pobierz
  • 51
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AnonimoweMirkoWyznania: Tytuł stanowiska: Automatyk utrzymania ruchu
Wykształcenie: średnie techniczne
Branża:produkcja wełny skalnej
Miesięczne zarobki brutto: 4320
Miesięczna dodatkowa premia: 1500 z nadgodzinami(około 20-30 godzin miesięcznie) PLN
Miesięczne koszty życia:1200 mieszkanie, 800 żarcie,
  • Odpowiedz
Muszę pisać skrypt linkera, nie pytajcie dlaczego... Muszę jeszcze zadeklarować początek programu (brakowało mi wektora przerwań i właśnie początku programu), ale w żadnych poradnikach, manualach czy innych opisach nie mogę tego znaleźć.
Jak oznacza się adres początku programu?


#embedded #arm
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Są tu jacyś fani Apple z zacięciem niskopoziomowym?
Po długiej przerwie wracamy z odcinkiem podcastu "Poziom niżej" w którym rozkładamy na części procesor Apple M1. Mam nadzieje że nie narazimy się "fanboy'om" ... a nie wróć ... to bardzo dobry produkt! choć nie taki znowu magiczny jak go opisują ;)

Tu klikamy
Albo tu jeśli ktoś lubi Spotify

#arm #apple #embedded #programowanie #programista15k
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Programirki,

Czy istnieje jakiś otwarty kod/ tutoriale odnośnie tworzenia własnego pilota tv? Zaprogramowałbym sobie jakiś swój, nawet dla picu do jakiegoś odbiornika.

( ͡° ͜ʖ ͡°)

#programowanie #embedded
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Stało się, że wchodzę w temat Embedded, z nadzieją na szeroko pojęte lepsze praco-jutro ( ͡~ ͜ʖ ͡°)

Robię na ARM M0 projekcik i co tu dużo ukrywać, programowanie w bare metal dopiero rozpracowuję. Część kodu naklepałem i bardzo polubiłem się z ustawianiem poszczególnych rejestrów /s.
Nie czuję się pewnie w zakresie ustawienia countera na TMR16B0CAP0 w LPC111x, bo manual jakiś taki ubogi.
Czy wystarczy włączyć timer w
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@macgajster: w rejestrze TMR16B0IR możesz sobie włączyć generowanie przerwania w momencie zdarzenia capture. Jak sobie będziesz kopiować wartość rejestru capture (CR0) do zmiennej, to przy kolejnym przerwaniu porównasz sobie aktualną wartość CR0 z zapisaną wcześniej i będziesz wiedzieć ile czasu upłynęło. Innymi słowy porównasz dwa timestampy.

Druga opcja to jest taktowanie timera tym zewnętrznym sygnałem. Wtedy CAP0 staje się wejściem zegarowym. Taktowanie zewnętrznym sygnałem włączasz w TMR16B0CTCR. Tylko że wtedy
  • Odpowiedz
@zarowka12: raczej łatwiej będzie mi pójść pierwszą drogą, bo łącznie będę miał już i tak wykorzystane 3 z 4 timerów.
Naprawdę sporo mi pomogłeś. To był mój największy ból i tym razem będzie dużo łatwiej go przeskoczyć :)
  • Odpowiedz
Hej załóżmy, że chciałbym sobie napisać "driver", który sterowałby za pomocą PWM moim silnikiem. W momencie kiedy odpowiedni sensor wykryje, że coś tam jest otwarte, powinien zatrzymać silnik. Czy takie coś powinno być tworzone w kernel space i tam powinna być cała logika? Czy może powinienem mieć aplikację w userspace, która sterowałaby PWM i robiła pooling na gpio sensora? Jak to ugryźć? Jak rozróżnić co powinno być w userspace, a co w
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 4
@MrStealYourGirI: no generalnie jak to nie jest zdalna to tak sobie. To jest jedno z najdroższych miast świata.

Zobacz ceny wynajmu i ew ceny jedzenia wtedy bedziesz miał poglad. To jest brutto?
  • Odpowiedz