eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaGenerowanie sumy kontrolnej z fragmentu pliku binRe: Generowanie sumy kontrolnej z fragmentu pliku bin
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.172.24.44.20!n
    ot-for-mail
    From: a...@h...invalid (Arnold Ziffel)
    Newsgroups: pl.misc.elektronika
    Subject: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
    Date: Tue, 25 Jun 2024 15:22:07 -0000 (UTC)
    Organization: news.chmurka.net
    Message-ID: <0...@h...invalid>
    References: <v5egs3$39jfk$1@news.icm.edu.pl>
    MIME-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: 8bit
    Injection-Date: Tue, 25 Jun 2024 15:22:07 -0000 (UTC)
    Injection-Info: news.chmurka.net; posting-account="arnold";
    posting-host="172.24.44.20"; logging-data="3044";
    mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: tin/2.6.1-20211226 ("Convalmore") (Linux/6.1.21-v7+ (armv7l))
    Cancel-Lock: sha1:XwcJQbUYdgNrLTLEWufTiOsE0eM= sha1:yJDUcpzf5Dqfj3rBryOziYD+0lA=
    sha256:MkV/kPDEVf1YWyhiA+i5RTeCi8wqC4gzNTsRks81ENs=
    sha1:snRLTC4zof0SWfyJc/d+IQq8BS0=
    sha256:fpdIYUjy0jFpwq228j3qYjpJvy2KhfdZTPg6P85qJOc=
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:792553
    [ ukryj nagłówki ]

    Atlantis <m...@w...pl> wrote:

    > Potrzebuję więc jakiegoś narzędzia, które pozwoli mi w sposób
    > automatyczny (pod Linuksem, wewnątrz Makefile) wykonać następujący ciąg
    > operacji.
    > - Bierzemy fragment pliku bin - od określonego adresu i o określonej
    > długości.
    > - Liczymy z niego sumę kontrolną CRC16.
    > - Wyświetlamy wynik
    > - Zapisujemy wynik w tym samym pliku bin, pod określonym adresem (to w
    > przyszłości pozwoli mi zatrzymać wykonywanie programu, jeśli po jego
    > załadowaniu okaże się, że suma się nie zgadza).

    Wytniesz przez:

    dd if=file.bin bs=1 skip=2 count=3 status=none

    Spatchujesz plik przez:

    dd bs=1 seek=2 count=3 conv=notrunc of=plik.bin.new status=none

    Przykładowo:

    $ yes test | head -n10 > file.bin
    $ hexdump -C file.bin
    00000000 74 65 73 74 0a 74 65 73 74 0a 74 65 73 74 0a 74 |test.test.test.t|
    00000010 65 73 74 0a 74 65 73 74 0a 74 65 73 74 0a 74 65 |est.test.test.te|
    00000020 73 74 0a 74 65 73 74 0a 74 65 73 74 0a 74 65 73 |st.test.test.tes|
    00000030 74 0a |t.|
    00000032
    $ echo "ST" | dd bs=1 seek=2 count=2 conv=notrunc of=file.bin status=none
    $ hexdump -C file.bin
    00000000 74 65 53 54 0a 74 65 73 74 0a 74 65 73 74 0a 74 |teST.test.test.t|
    00000010 65 73 74 0a 74 65 73 74 0a 74 65 73 74 0a 74 65 |est.test.test.te|
    00000020 73 74 0a 74 65 73 74 0a 74 65 73 74 0a 74 65 73 |st.test.test.tes|
    00000030 74 0a |t.|
    00000032

    Teraz tylko znaleźć program, który zrobi crc16 z linii poleceń -- na
    szybko nie znalazłem, może się okazać, że będzie trzeba napisać jakiś
    kawałek kodu w Pythonie albo czymś podobnym.

    > Konkretnie korzystam z procedury crc16_arc_f opisanej na tej stronie:
    > http://regregex.bbcmicro.net/crc-code.htm#crc-code.1
    6.8080

    Jeśli korzystasz z niestandardowej procedury to tym bardziej napisz jakiś
    mały program. Z drugiej strony, mając program, możesz w zasadzie zrobić
    całość w nim.

    --
    Najbardziej pamiętam jedną z wigilii, kiedy wyciąłem śliczne gwiazdki na
    choinkę ze skórzanej kurtki mojego taty. Pamiętam też, że mleczaki
    wypadły mi wcześniej niż rówieśnikom...

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: