-
1. Data: 2024-06-25 15:31:47
Temat: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: Atlantis <m...@w...pl>
Mam pewien projekt, do którego firmware jest budowany w wielu krokach (w
Makefile) z wielu różnych plików. Po drodze powstaje plik .bin, który
jednak nie jest produktem końcowym - docelowo binarka trafia na kartę
pamięci, skąd jest ładowana do RAM-u i wykonywana. W sofcie jest
zaimplementowana procedura liczenia sumy kontrolnej (CRC16) z tej części
pamięci, w której jest przechowywany kod wykonywalny. Na chwilę obecną
mogę dzięki temu upewnić się, że kod z każdym razem jest ładowany w
powtarzalny sposób - to jednak nie daje mi pewności, że nie ma błedów,
bo muszę jeszcze porównać sumę z obrazem generowanym na PC.
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).
Projekt jest retro, na antycznym CPU - stąd zastosowanie CRC16.
Konkretnie korzystam z procedury crc16_arc_f opisanej na tej stronie:
http://regregex.bbcmicro.net/crc-code.htm#crc-code.1
6.8080
-
2. Data: 2024-06-25 17:22:07
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: a...@h...invalid (Arnold Ziffel)
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...
-
3. Data: 2024-06-25 18:24:17
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: Jacek Marcin Jaworski <j...@a...pl>
> 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.
Ja mogę trzepnąć taki programik za parę stówek w C lub w C++ lub w D.
-
4. Data: 2024-06-25 18:40:35
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: LordBluzg(R)?? <m...@p...onet.pl>
W dniu 25.06.2024 o 18:24, Jacek Marcin Jaworski pisze:
>
>> 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.
>
> Ja mogę trzepnąć taki programik za parę stówek w C lub w C++ lub w D.
>
Mogę Ci dorobić podkład muzyczny w C-dur :) za stówkę lub w A-mol,
bardziej nostalgiczny :D
--
LordBluzg(R)??
<<<?i? ć?d?? i Putina i ęjcaredefnoK>>>
-
5. Data: 2024-06-25 20:34:37
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: Adam <a...@p...onet.pl>
Dnia Tue, 25 Jun 2024 18:40:35 +0200, LordBluzgÂŽí źíˇľí źíˇą napisaĹ(a):
> W dniu 25.06.2024 o 18:24, Jacek Marcin Jaworski pisze:
>>
>>> 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.
>>
>> Ja mogÄ trzepnÄ Ä taki programik za parÄ stĂłwek w C lub w C++ lub w D.
>>
> MogÄ Ci dorobiÄ podkĹad muzyczny w C-dur :) za stĂłwkÄ lub w A-mol,
> bardziej nostalgiczny :D
A moĹźesz wytĹumaczyÄ, czym siÄ róşni C-dur od a-moll, prz zaĹoĹźeniu, Ĺźe
masz na myĹli skalÄ naturalnÄ ?
--
Pozdrawiam.
Adam
-
6. Data: 2024-06-25 22:44:10
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: Atlantis <m...@w...pl>
On 25.06.2024 18:24, Jacek Marcin Jaworski wrote:
> Ja mogę trzepnąć taki programik za parę stówek w C lub w C++ lub w D.
Nie no, na spokojnie przeanalizuję sobie co robi ten asemblerowy kod
8080 i spróbuję napisać odpowiednik w C. Po prostu liczyłem na to, że
może nie trzeba będzie wyważać otwartych drzwi i któryś z linuksowych
kombajnów już to potrafi. :)
-
7. Data: 2024-06-26 06:56:39
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: ptoki <p...@e...pl>
On 2024-06-25 10:22, Arnold Ziffel wrote:
> 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
>
>
> 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.
>
moze to?
https://github.com/onslauth/bash_crc16
-
8. Data: 2024-06-26 10:39:31
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: Adam <a...@p...onet.pl>
Dnia Tue, 25 Jun 2024 23:36:07 +0200, LordBluzgÂŽí źíˇľí źíˇą napisaĹ(a):
> W dniu 25.06.2024 o 20:34, Adam pisze:
>
>>>>> 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.
>>>>
>>>> Ja mogÄ trzepnÄ Ä taki programik za parÄ stĂłwek w C lub w C++ lub w D.
>>>>
>>> MogÄ Ci dorobiÄ podkĹad muzyczny w C-dur :) za stĂłwkÄ lub w A-mol,
>>> bardziej nostalgiczny :D
>>
>> A moĹźesz wytĹumaczyÄ, czym siÄ róşni C-dur od a-moll, prz zaĹoĹźeniu, Ĺźe
>> masz na myĹli skalÄ naturalnÄ ?
>>
> To doĹÄ proste. Przede wszystkim solmizacjÄ i przyjÄĹo siÄ, Ĺźe tonacja
> dur jest "wesoĹa" a tonacja mol bardziej "smutna". W tonacji c-dur nie
> wystÄpujÄ np, pĂłĹdĹşwiÄki a w tonacji a-mol mamy gis w akordzie dla
> e-dur, czyli trĂłjdĹşwiÄk e-gis-h :) bo caĹkowicie "molowo" byĹoby za
> "smutne" :)
No wĹaĹnie niezupeĹnie.
JuĹź od wprowadzenia systemu rĂłwnomiernie temperowanego tego nie sĹychaÄ, bo
akordy brzmiÄ jednakowo.
Jest jeszcze gdzieĹ w Polsce koĹciĂłĹ, w ktĂłrym sÄ organy w starym stroju,
majÄ ce podwĂłjny klawisz h.
TakÄ niejako "zaszĹoĹciÄ " podwĂłjnego h jest skala minorowa melodyczna,
gdzie idÄ c w gĂłrÄ septyma jest podniesiona, a idÄ c w dóŠobniĹźona.
Przynajmniej tyle pamiÄtam z wykĹadĂłw sprzed jakichĹ 40 lat.
Qrde, znany muzykolog mnie uczyĹ, ale mam zaÄmÄ i nie mogÄ sobie
przypomnieÄ nazwiska.
Jeszcze jedno:
ĹąrĂłdĹa pisane donoszÄ , Ĺźe w Ĺredniowieczu czy Odrodzeniu i później,
wiÄkszoĹÄ ludzi (czyli "miastowych", nie "wieĹniakĂłw") byĹa w stanie
odróşniÄ tonacjÄ w granym na organach utworze.
Druga ciekawostka:
Aktualnie moĹźna utwĂłr dowolnie transponowaÄ przy skali rĂłwnimiernie
temperowanej. WczeĹniej w zasadzie utwĂłr transponowany juĹź nie brzmiaĹ
prawidĹowo.
--
Pozdrawiam.
Adam
-
9. Data: 2024-06-26 12:01:12
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: LordBluzg(R)?? <m...@p...onet.pl>
W dniu 26.06.2024 o 10:39, Adam pisze:
> Dnia Tue, 25 Jun 2024 23:36:07 +0200, LordBluzg(R)???????????? napisał(a):
>
>> W dniu 25.06.2024 o 20:34, Adam pisze:
>>
>>>>>> 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.
>>>>>
>>>>> Ja mogę trzepnąć taki programik za parę stówek w C lub w C++ lub w D.
>>>>>
>>>> Mogę Ci dorobić podkład muzyczny w C-dur :) za stówkę lub w A-mol,
>>>> bardziej nostalgiczny :D
>>>
>>> A możesz wytłumaczyć, czym się różni C-dur od a-moll, prz założeniu, że
>>> masz na myśli skalę naturalną?
>>>
>> To dość proste. Przede wszystkim solmizacją i przyjęło się, że tonacja
>> dur jest "wesoła" a tonacja mol bardziej "smutna". W tonacji c-dur nie
>> występują np, półdźwięki a w tonacji a-mol mamy gis w akordzie dla
>> e-dur, czyli trójdźwięk e-gis-h :) bo całkowicie "molowo" byłoby za
>> "smutne" :)
>
> No właśnie niezupełnie.
> Już od wprowadzenia systemu równomiernie temperowanego tego nie słychać, bo
> akordy brzmią jednakowo.
Chyba jednak nie. C-E-G brzmi inaczej niż A-C-E. Dodatkowo zależy to też
od instrumentu. Na przykład gitara i "riffy/chwyty" w różnych tonacjach
brzmią skrajnie różnie.
> Jeszcze jedno:
> Źródła pisane donoszą, że w Średniowieczu czy Odrodzeniu i później,
> większość ludzi (czyli "miastowych", nie "wieśniaków") była w stanie
> odróżnić tonację w granym na organach utworze.
Tak jest nadal. To "słuch absolutny" i akurat mam taką umiejętność.
Nabyłem ją dziedzicznie.
> Druga ciekawostka:
> Aktualnie można utwór dowolnie transponować przy skali równimiernie
> temperowanej. Wcześniej w zasadzie utwór transponowany już nie brzmiał
> prawidłowo.
No nie, zmienia się wtedy wysokość dźwięków. Przykładem może być, że
większość utworów "techno, rave itd" czyli ten typ muzyki, pisze się w
tonacji B...a to tylko dlatego, że częstotliwość tej tonacji jest
inaczej/lepiej odbierana przez ogół słuchających...w sensie wytwarzania
dopaminy :)
--
LordBluzg(R)??
<<<?i? ć?d?? i Putina i ęjcaredefnoK>>>
-
10. Data: 2024-06-26 12:22:09
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: Piotr Gałka <p...@c...pl>
W dniu 2024-06-26 o 10:39, Adam pisze:
>
> No właśnie niezupełnie.
> Już od wprowadzenia systemu równomiernie temperowanego tego nie słychać, bo
> akordy brzmią jednakowo.
Mam słuch muzyczny pierwszego rodzaju - rozróżniam kiedy grają, a kiedy
nie. Dla mnie jak najbardziej - wszystkie akordy brzmią jednakowo.
Ale...
Syn zdawał dodatkowy egzamin z muzyki do liceum z klasą o profilu
muzycznym. Usłyszawszy akord miał określić, czy to jest dur, czy mol
więc musi to być słychać.
Z tego co opowiadał to pani coś zagrała a on na to że mol w drugim
przewrocie. Jako jeden z kilku dostał z tego egzaminu max, ale do szkoły
go nie przyjęli :(
Mimo, że w dzieciństwie byłem katowany grą na pianinie to o przewrotach
akordów usłyszałem wtedy po raz pierwszy.
> Jeszcze jedno:
> Źródła pisane donoszą, że w Średniowieczu czy Odrodzeniu i później,
> większość ludzi (czyli "miastowych", nie "wieśniaków") była w stanie
> odróżnić tonację w granym na organach utworze.
> Druga ciekawostka:
> Aktualnie można utwór dowolnie transponować przy skali równimiernie
> temperowanej. Wcześniej w zasadzie utwór transponowany już nie brzmiał
> prawidłowo.
O tym, że kiedyś nie było równomiernego temperowania usłyszałem po raz
pierwszy jak pianino dla syna było po raz pierwszy strojone. Trafiliśmy
(przypadkiem) na stroiciela, który właśnie rozkręcał biznes wynajmowania
fortepianów na koncerty a potem do tego stopnia współpracował z
Możdżerem, że kupili sobie domy w tej samej wsi. Byłem kiedyś u niego na
'domowym koncercie' Możdżera.
Ale przy moim słuchu to jest kompletnie bez znaczenia kto naciska
klawisze fortepianu.
Wcześniej myślałem, że odległość między kolejnymi dźwiękami skali od
zawsze była taka sama. Przecież to tak prosto wynika z matematyki
(stosunek chęstotliwości = 2^(1/12)), że nie rozumiem po co było to
komplikować :) .
P.G.