-
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-25 23:36:07
Temat: Re: Generowanie sumy kontrolnej z fragmentu pliku bin
Od: LordBluzg(R)?? <m...@p...onet.pl>
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" :)
--
LordBluzg(R)??
<<<?i? ć?d?? i Putina i ęjcaredefnoK>>>
-
8. 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
-
9. 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
-
10. 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>>>