Wpis z mikrobloga

#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ś pomysł jak moge zmienc tryb pinu GPIO ?
  • 17
  • Odpowiedz
@PowerfulTransistor: to jest ustawienie GPIO jako wyjście. Mi chodzi o to, że gpio może pracować jako zwyłe GPIO, albo moze być sprzęgnięte z eth albo z czymś innym. Więc najpierw musze konkretny PIN GPIO ustawić jako GPIO...
  • Odpowiedz
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
@r00ti: "/bin/ash: devmem: not /bin/ash: devmem: not found" to trochę dziwny
komunikat, prędzej "/bin/ash: devmem: not not found". To znaczy że
albo nie masz devmem wyprowadzonego jako zewnętrzna binarka i musisz
robić "busybox devmem" albo w ogóle masz busyboxa zbudowanego bez
/dev/mem. Ostatecznie devmem jest na inną architekturę niż jest CPU
lub w ogóle nie masz busybox tylko coś innego. Do /dev/mem
  • Odpowiedz