logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak skompilować i uruchomić własny firmware dla ALI M3801 i innych układów z tunerów?

p.kaczmarek2 08 Gru 2025 10:37 2883 35

TL;DR

  • Minimalistyczne demo firmware dla ALI M3801 w tunerze Comsat TE 1050 HD uruchamia „Hello World” na UART i stanowi bazę do dalszego rozwoju.
  • Kompilacja działała tylko na Ubuntu z własnym toolchainem zbudowanym przez crosstool-NG, a obsługę GPIO dopisano przez analizę rejestrów i skan przycisków.
  • Odczyt identyfikatora układu zwrócił 0x3811, choć sprzęt ma ALI M3801, więc możliwa jest wewnętrzna rewizja chipu.
  • UART sprawia problemy: CH341 nie radzi sobie poprawnie z bitem parzystości even, a blokujący odczyt gubi znaki i wymaga przejścia na przerwania.
Wygenerowane przez model językowy.
📢 Słuchaj (AI):
📢 Słuchaj (AI):

Podsumowanie tematu

✨ Dyskusja dotyczy kompilacji i uruchomienia własnego firmware dla procesora ALI M3801, stosowanego w tunerach DVB, na przykładzie tunera Comsat TE 1050 HD oraz innych urządzeń z układami ALI. Autor korzysta z minimalistycznego projektu ali_sdk z GitHub, który nie jest pełnym SDK Linuxowym, lecz prostym demem wymagającym rozbudowy, m.in. o obsługę GPIO. Programowanie odbywa się przez interfejs UART z wykorzystaniem programatora CH341 i oprogramowania NeoProgrammer, a kompilacja firmware prowadzona jest na systemie Ubuntu, gdyż próby pod Cygwin i WSL nie powiodły się.

W trakcie dyskusji poruszono kwestie odczytu i zapisu pamięci flash, w tym metodę "na zwarcie" ułatwiającą wylutowanie małych układów pamięci. Omówiono protokół komunikacji UART, w tym komendy takie jak "c" do zatrzymania bootloadera, "comtest", "address", "transfer" i "burn" do programowania pamięci flash. Zidentyfikowano, że pakiety do zapisu mają długość 1028 bajtów (1024 bajty danych + CRC). Autor opracował narzędzie do wgrywania firmware przez UART w środowisku LabVIEW, automatyzujące wyrównanie rozmiaru obrazu i obsługę protokołu.

Dyskutowano także o problemach z obliczaniem CRC, gdzie zastosowano kod z projektu AliUnpacker, a także o konieczności uwzględnienia endianess i ewentualnego bswap32. Wspomniano o strukturze plików firmware, które mogą być kompresowane (LZMA) i zawierać nagłówki z CRC. Poruszono temat bootloadera fabrycznego, który obecnie nie obsługuje przerwań UART, co utrudnia stabilną komunikację i wymaga dalszych prac nad workflow wgrywania.

Wątek rozszerzono o analizę innych układów z tunerów DVB, takich jak MxL5007T (głowica SDR), M3100 (demodulator) oraz M3101 (SoC podobny do M3801). Udostępniono zdjęcia i dumpy firmware, a także fragmenty kodu bootloadera i aplikacji. Autorzy wymieniają się doświadczeniami dotyczącymi debugowania, emulacji i rozwoju własnego firmware dla układów ALI, dążąc do stworzenia stabilnego środowiska programistycznego i narzędzi do wygodnego wgrywania i testowania własnych aplikacji na tych procesorach.
Wygenerowane przez model językowy.
REKLAMA