#linux #openwrt #programista15k #programowanie #embedded

Mirasy pracuję na płytce MT7628. Układ pracuje na openWRT. Potrzebuje zmienić tryb pracy jednego pinu GPIO. Według dokumentacji każdy pin może pracować w 4 trybach. Do zmiany pinu muszę pisać po rejestrach np. " devmem 0x10000064 32 0x0555555" Uprzedzam, mam w kernelu dodane /dev/mem. Mimo tego dostaje : "/bin/ash: devmem: not /bin/ash: devmem: not found". Ma ktoś
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

MT7628


@r00ti: wiele nie pomogę, ale tutaj masz przykładowy plik device tree:
https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/net/wireless/mediatek%2Cmt76.txt
W źródłach kernela są źródła devicetree, które się kompiluje. Niektóre (albo nawet wszystkie?) mają parametry które mogą być modyfikowane runtime jako parametry kernela. Musisz poszukać odnośnie swojego procesora, sam wiele tego nie ruszałem.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@r00ti: jeśli tak, to sprawdź czy ten procek nie ma tych interfejsów sprzętowych.
Co do i2c, to jest sterownik i2c-gpio w razie czego, gdyby nie było możliwości sprzętowego i2c. Do pwm jest też sterownik gpio-pwm

Bit-banging z poziomu user space się nie sprawdzi - wiem o czym mówię, bo raz podczas współpracy pewną z uczelnią jeden doktor odwalił takie coś i fakt działało, tylko procesor zajęty był w 70% kłapaniem
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@r00ti: pracuję, tylko że u mnie w pracbazie sam tyczę drogę w Linuxy i przydałby mi się bardziej ogarnięty w temacie leader. Na openwrt słabo się zanam, ale to też Linux i kernel oraz device-tree da się konfigurować. W Yocto ostatnio siedzę
  • Odpowiedz
Hej Mirki i Mirabelki z #programowanie
Pilnie szukam do projektu w #wroclaw eksperta w dziedzinie budowania projektów
#embedded c i #java - cmake,make, ant , gradle , maven

Mile widziana znajomość zagadnień z zakresu #devops , ale nie jest niezbędna.
Projekt trwa od kilku lat i jest przewidziany na dłuższy czas.
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#anonimowemirkowyznania
Mam pytanie do mirków z #embedded (linux, c). Zaczynam właśnie pierwszą pracę przy programowaniu w tym kierunku w trakcie studiów i trochę się obawiam że moje umiejętności nie będą wystarczające. Jak wspominacie swoją pierwszą pracę, jakie zadania i trudności mieliście na początku? #pracait #programowanie

Kliknij tutaj, aby odpowiedzieć w tym wątku anonimowo
Kliknij tutaj, aby wysłać OPowi anonimową wiadomość prywatną
Post dodany za
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
@AnonimoweMirkoWyznania zadań jako takich nie pamiętam, pamiętam że wyzwań było dużo, mimo jednej z lepszych uczelni w kraju; nie było mowy bym wiedział o nowinkach czy poszczególnych podsystemach, w szczegółach, co to jest urb, kernel overlays, fuse czy zram. Może i wiedziałem jak korzystać z vcs, ale jak pisać sensowny opis commita, które części komentować które nie, pracy jako takiej w grupie, pracy z niejasnymi wymaganiami/programowanie defensywne, rzeczywistej pracy z debbugerem
  • Odpowiedz
#eclipse #programista15k #programowanie #embedded
Miruny do projektu dodałem wirtualny folder, w którym znajdują się piki .c i .h. Gdy chce dać #include jakiegoś pliku z zalinkowanego folderu wywala błąd : No such file or directory .

Jakieś porady ? nie dodawałem wcześniej wirtualnych folderów.
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Przygotowuje sie mentalnie do nowego projektu #embedded #linux i wiem ze na boardzie jest esp32 wroom 32d. Tak czytam o tych esp, bo jeszcze nic z nimi nie robilem i sie zastanawiam czy da sie je jakos prosto obsluzyc driverem linuxowym zeby zrobic z nich karte wifi. Z tego co wodze to tam trzeba napisać na ten procek soft i dopiero już z userspace konfigurować. Ktos podpowoe jak
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#cpp #embedded #arm #programowanie
Pytanie dotyczy bare metal c++. Moim problemem jest undefined instruction w __cxa_guard_acquire podczas inicjalizacji lokalnej (w funkcji), statycznej (static), nie trywialnej (mającej własny konstruktor) zmiennej.
Wydaje mi się, że rozwiązaniem może być wymuszenie inicjalizacji tego rodzaju obiektów w startupie, a nie przy pierwszym wejściu do danego scope, w podobny sposób w jaki są inicjalizowane obiekty globalne.
Nie wiem jednak jak
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kiciek Hmmm, masz w opcjach kompilacji wybrany odpowiedni procesor? Jakieś -mthumb -mcpu=cortex-m4 or sth?

Tak szczerze, jeśli masz tylko jeden wątek, to pomyśl czy by się tych funkcji jakoś nie pozbyć, bo mutexy bez multithreadingu są umiarkowanie potrzebne.
  • Odpowiedz
Mirki od #avr programuje tu kto jeszcze prawilnie w #jezykc ?

Dzień dziecka co prawda minął, ale pijcie ze mno kompot - dodałem do słynnej biblioteki u8g2 obsługę hardwareowego i2c i mój pull request został przyjęty ( ͡ ͜ʖ ͡)

W moim repo na githubie dodałem do tego jeszcze obsługę funkcji xprintf - to taki zbiór funkcji dla mikrokontrolerów działających jak printf na dużych maszynach.
Krótko mówiąc -
QBA__ - Mirki od #avr programuje tu kto jeszcze prawilnie w #jezykc ?

Dzień dzieck...

źródło: comment_EiLNNpckwWIJa5t7JmL4Kytgsk1DOTqU.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@QBA__: Gdzieś w dyskusji do któregoś z bugów w tej bibliotece pojawił się datasheet do sterownika. Z nim było prosto. Wysłanie bajtu po 8080 do uC to 6 linijek kodu. Reszta to sprawa właśnie rozwlekła. Można pisać po pamięci sterownika, można zrobić bufor w pamięci uC, kreślić na buforze a bufor tylko ładować co jakiś czas. Czcionkę łatwo znaleźć, tekst nie jest problemem. Gorzej z gui i menu. Ponieważ potrzebowałem
  • Odpowiedz
Karramba.. znów piszę o pomoc w #embedded #linux . Bootowało mi się wszystko ładnie z karty SD, jak miałem wszystkie pliki na boot partycji. Miałe uramdisk, a do uboota i kernela podawałem root=/dev/ram. Jednakże chciałbym jak w normalnym systemie móc mieć filesystem read/write, no więc podzieliłem fdiskiem partycję na dwie. boot i rootfs

sudo fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 14,9 GiB, 15931539456 bytes, 31116288 sectors

Units: sectors of
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@yuim: Oki, jeszcze to sprawdze pozniej, w kazdym razie dzięki jeszce raz.. nadpisałem root=/dev/mmcblk0p2 przez root=ext4 :P Mam nadzieje że przejdzie ta ustawa i zakaże amatorom brać się za takie rzeczy ( ͡° ͜ʖ ͡°)
  • Odpowiedz
K--w..de nie wiem co jest. Partycjonuję kartę SD pod embedded linux na ubuntu używając fdiska. Jedna partycja boot fat16 i jedna ext4 na rootfs.

sudo fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 14,9 GiB, 15931539456 bytes, 31116288 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes
WilczurZnahor - K--w..de nie wiem co jest. Partycjonuję kartę SD pod embedded linux n...

źródło: comment_i2tIo8REkXTdpU9QGeLlStJ6eterVbvb.jpg

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@pepepanpatryk: zacznij od tego, by nie używać zmiennych globalnych, jak najbardziej enkapsulować. Jak się tego nauczysz, to będzie dużo łatwiej i zaoszczędzisz sobie i współpracującym dużo nerwów.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 7
Mirki od #linux - znacie jakiś sprytny sposób aby przypisać akcję do wykonania po odpięciu/urwaniu kabla ethernet?

Wiem że do pliku /etc/network/interfaces można sobie dopisać akcje pre-up post-up pre-down i post-down, ale to działa tylko przy ręcznym wyłączeniu za pomocą ifup ifdown.

#pytanie #pytaniedoeksperta #programowanie #linux #embedded
QBA__ - Mirki od #linux - znacie jakiś sprytny sposób aby przypisać akcję do wykonani...

źródło: comment_4uYlTBkeG6MIqio6IBwckpdNnU1AVv5H.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Taka ciekawostka.
Kernel Linuxa ma taką klasę jak led-trigger - czyli źródło zdarzeń do migania ledami. Jednym z nich jest "heartbeat" - podpięcie go do diody powoduje miganie w takt bicia serca.
Ale to nie koniec. Prędkość tego migania jest uzależniona od obciążenia systemu w ciągu ostatniej minuty(load_avg).

Mówiąc prościej:
Im bardziej procesor d------y zadaniami tym szybciej bije "serce" naszej płytki - małe, proste i fajne (
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Próbuję ogarnąć w #stm32 (konkretnie czarna płytka z aliexpress z stm32f103c8) wirtualny port UART po USB. Wiem że piny są podłączone, system (Linux) wykrywa urządzenie jako STM32F4 (?) i pojawia się /dev/ttyACM0, ale na nim cisza. Projekt generuję w IDE (teraz połączyli Eclipse'a z STM32CubeMX)

Funkcja CDC_Transmit_FS kończy się przedwcześnie, bo if (hcdc->TxState != 0) (jest tam jakaś losowa wartość). Jedyne miejsce gdzie to jest ustawiane na 0, jest wywoływane
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zbudowałem linux na x86_64 i uruchamiam na QEMU. Niestety w czasie bootwania inicjalicuje sie crng (jakis random number generator) i zeby sie zainicjalizował i zabootwał linux to trzeba ruszyć myszką, bo z ruchu myszką on bierze entropie. Da sie to jakos wyłączyć? Szukałem juz chyba wszedzie po configach i wydaje mi się ze wszystko random mam wyłączone.
#linux #embedded #qemu #buildroot
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach