Klar ein eigenes Terminalprogramm ist doch immer ein Anreiz. Es sollte Texte senden können aber auch in der Lage sein Hex-Dateien zu senden.
Klar ein eigenes Terminalprogramm ist doch immer ein Anreiz. Es sollte Texte senden können aber auch in der Lage sein Hex-Dateien zu senden.
Nichts existiert durch sich allein!
Bild hier
Hallo,
ich glaube mic meinte das mit dem internen Köter nicht ganz Ernst.
Der kläfft nur und beisst nicht
Der Rest ist grob richtig soweit ich das sehe.
Man sollte noch beachten das hier die tatsächlichen Werte die in den Speicher geschrieben werden sollen übertragen werden - NICHT die ASCII Zeichen aus der Hex Datei. Die muss man also vorher parsen!
(Warum das? --> schnellere Übertragung!)
Die CRC16 Routine ist die CRC-CCITT Variante.
Der letzte 256 Byte Block muss mit 0xFF aufgefüllt werden, es müssen immer 256 Byte am Stück übertragen werden!
Der Rest vom Speicher muss allerdings *nicht* gelöscht werden.
MfG,
SlyD
Hab ein gutes Tutorial dazu gefunden:
http://www.mikrocontroller.net/articles/CRC
RP6BASE_LEDs.hex:
Nehmen wir doch mal die 1. Zeile:Code::100000000C944B010C9489020C94A9020C94C0032B :100010000C945E030C9468010C9468010C946801C4 :100020000C9468010C9468010C9480050C94680190 :100030000C9468010C94C40B0C9468010C94680136 :100040000C9468010C9468010C9468010C9468018C :100050000C9468014C6574277320676F21203A293E :100060000A0048656C6C6F20576F726C6421204DDC :1000700079206E616D6520697320526F626279210B :100080000A00202020205C5F2D5F2D5F2D5F2D5FFB :100090002D5F2D5F2D5F2D5F2D5F2F0A0A00202021 :1000A000205C7C205250362020524F424F54205327 :1000B000595354454D207C2F0A000A0A2020205F06 :1000C0005F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F40 :1000D0005F5F5F5F5F5F0A0054686520526F626F09 :1000E00074206E6565647320746F2062652072658C :1000F000736574746564206E6F772E0A0A00596FF9 :1001000075206E65656420746F20636865636B207D :100110004D6F746F7220617373656D626C79202806 :100120006F7220796F757220736F66747761726574 :10013000292E0A0A000A0A28732E207461736B5F45 :100140006D6F746F72436F6E74726F6C28292066C6 :10015000756E6374696F6E20696E205250364C69FB :100160006221290A000A0A232323204D4F544F52AB :10017000204F56455243555252454E542023232377 :100180000A00596F75206E65656420746F2063687E :1001900065636B20456E636F6465722F4D6F746F7E :1001A0007220617373656D626C7920286F7220799B :1001B0006F757220736F667477617265292E0A0AF3 :1001C00000210A0A28732E207461736B5F6D6F74AF :1001D0006F72436F6E74726F6C28292066756E6340 :1001E00074696F6E20696E205250364C6962212905 :1001F0000A005249474854004C454654004166663F :100200006563746564206368616E6E656C3A000AAC :1002100023232320454E434F44455220284F52204C :100220004D4F544F5229204D414C46554E43544951 :100230004F4E21202323230A00232323232320415D :100240004C4C204F5045524154494F4E532053542B :100250004F5050454420544F2050524556454E541F :1002600020414E592044414D41474521202323231D :1002700023230A000A0A232323232320454D455222 :1002800047454E43592053485554444F574E202319 :10029000232323230A0011241FBECFE5D8E0DEBFAD :1002A000CDBF10E0A0E6B0E0E0EAFAE102C00590C0 :1002B0000D92AA36B107D9F711E0AAE6B0E001C065 :1002C0001D92AF30B107E1F70E946A010C944E0D08 :1002D0000C9400001F930E9468078AEB90E00E9434 :1002E000AB0B8EE990E00E94AB0B82E890E00E949D :1002F000AB0B82E690E00E94AB0B84E590E00E949D :10030000AB0B8FE30E94D60188EE93E00E944E076C :1003100080E00E94D60184EF91E00E944E0711E038 :10032000812F0E94D601110F113208F011E084E6EE :1003300090E00E944E07F4CF80919A00843010F034 :1003400010929A00089584E080939A00089587B3EC :100350008C7787BB88B38C7788BB8091850083FFBF :1003600002C0BF9AC79A84FF02C0B99AC19A85FF9A :1003700002C0B89AC09A84B38F7884BB85B38F7853 :1003800085BB94B320918500822F82958077982B2E :1003900094BB95B3892B85BB80919A00882319F46F :1003A000822F211181E080939A0008958093850027 :1003B0000E94A7010895C098B898000096B3809154 :1003C000850085FF02C0B89AC09A892F8170089570 :1003D000AE98A698000093B38091850082FF02C07A :1003E000A69AAE9A892F8074089508959093680014 :1003F0008093670008951F938091D2008333C8F0E3 :100400000E94DB01182F0E94E801982F809186003E :10041000811721F48091E300891749F01093860039 :100420009093E300E0916700F091680009951092C5 :10043000D2001F910895369B03C020E030E009C030 :10044000806487B986ED86B93699FECF349A24B197 :1004500035B1C9010895806487B986ED86B90895DC :10046000369956C020917B00233039F1243028F48E :10047000213099F02230C8F408C0253089F12530A8 :1004800020F1263009F041C033C084B195B190937A :10049000E7008093E60086E41FC084B195B1909395 :1004A000EC008093EB0085E417C084B195B1909384 :1004B000DD008093DC0083E40FC084B195B190939C :1004C000A6008093A50082E407C084B195B1909303 :1004D000CC008093CB0080E487B986ED86B915C047 :1004E00084B195B19093DA008093D90081E4F4CF80 :1004F00084B195B19093A4008093A30087E487B959 :1005000086ED86B910927B0008952F5F20937B00C3 :1005100008951F920F920FB60F9211248F939F93FD :100520008091E1009091E20001969093E200809327 :10053000E1008091D7009091D80001969093D80067 :100540008093D7009F918F910F900FBE0F901F90B7 :1005500018951F920F920FB60F9211248F939F93AD :100560008091D3009091D40001969093D400809311 :10057000D3008091AD009091AE0001969093AE00B3 :100580008093AD009F918F910F900FBE0F901F90A1 :100590001895089590936600809365000895893CAE :1005A00008F088EC80938B0010928C00693C08F076 :1005B00068EC6093890010928A000895282F809338 :1005C0006E0010926A008150823018F481E08093AE :1005D0006A00213021F080E090E0233011F481E0C6 :1005E00090E080936B00089590E080918400837088 :1005F00009F491E0892F089510928C0010928B00DD :1006000010928A0010928900109296001092950024 :100610001092D1001092D000809184008C7F809342 :1006200084008093E500E0916500F09166000995F3 :100630000895633D08F062ED6093AB001092AC004A :10064000833D08F082ED80939B0010929C000895FA :1006500080936C0060936D0080936A0060936B00E0 :10066000882311F0AA9A01C0AA98662311F0AB9AC8 :100670000895AB980895982F03C089B7806889BF03 :10068000809190008823C9F7892F90E08F73907034 :1006900026E0880F991F2A95E1F7262F30E02F7367 :1006A0003070822B932B90639093B0008093AF00B7 :1006B00080918F00806480938F0008951F920F9225 :1006C0000FB60F9211242F938F939F938091600008 :1006D0008230B0F520917A002223C1F02C3338F417 :1006E0008091C9009091CA0096FF07C008C0809110 :1006F000C9009091CA0096FF02C0979803C082B3C8 :10070000805882BB215020937A0032C080919000A3 :100710008823A1F097988091C9009091CA00880F12 :10072000991F9093CA008093C90088E780937A004C :10073000809190008150809390001AC0979818C0C3 :1007400080919400882391F080918F0080FD05C0F6 :1007500088B390E4892788BB03C085B3805885BBE4 :100760008091940081508093940002C0C69AAF9A01 :100770009F918F912F910F900FBE0F901F90189502 :100780001F920F920FB60F9211248F9380916000E9 :10079000833011F0863069F480918F0084FD09C0A8 :1007A00085FF07C0B29905C08091E4008F5F8093F8 :1007B000E40086B380918F008D7F80938F008F91AE :1007C0000F900FBE0F901F901895089590936200A0 :1007D000809361000895089590936400809363006E :1007E00008958091A7009091A800029708F43BC15A :1007F00090918F0094FD16C180916000823009F4C1 :1008000067C0833030F4882371F0813009F010C163 :1008100011C0853009F4ACC0863009F4C1C0833002 :1008200009F006C16DC089B78F7789BF9798C69ABE :10083000AF9AFEC080919000882341F596FF14C0C6 :100840008091AF009091B0009093CA008093C9004E :100850008EE08093900080918F008F7B80938F003B :1008600089B7806889BF06C089B78F7789BF979895 :10087000C69AAF9A809179008F5F809379008150FA :10088000843138F082E08093600003C089B78068CB :1008900089BF80918F0083FFCBC0E0916100F09110 :1008A00062008091E8009091E90009958091E8004C :1008B0009091E90090939800809397001092E9003E :1008C0001092E80080918F00877F80938F00B0C0E6 :1008D00089B78F7789BF9798C69AAF9A109294007C :1008E0001092E400109278001092770080918F00AF :1008F0008E7F806280938F0083E08093790075C043 :1009000080919400882381F4809179008F5F809397 :1009100079008150833040F089B7806889BF88E2D0 :1009200080939400109279008091C500882321F073 :100930008091E400823020F48091E400863038F029 :100940001092E40081E08093C50085E04EC0809164 :1009500077009091780001969093780080937700CB :1009600001970E9708F464C01092C50085E04FC04F :1009700089B78F7789BF9798C69AAF9A10929400DB :100980001092E400109278001092770080918F000E :10099000816280938F0083E08093790086E025C098 :1009A00080919400882381F4809179008F5F8093F7 :1009B00079008150833040F089B7806889BF88E230 :1009C00080939400109279008091CE00882321F0CA :1009D0008091E400823020F48091E400863040F081 :1009E0001092E40081E08093CE008093600020C0EC :1009F0008091770090917800019690937800809391 :100A0000770001970E97A0F01092CE0081E08093BE :100A1000600089B78F7789BF9798C69AAF9A10926E :100A2000940006C01092780010927700109279001E :100A30002091C50080917600821731F49091750065 :100A40008091CE00981759F0209376008091CE00C7 :100A500080937500E0916300F09164000995109215 :100A6000A8001092A70008951092600089B78F77B0 :100A700089BF9798C69AAF9A1092CE001092C5007F :100A8000089589B78F7789BF9798C69AAF9A1092C1 :100A9000CE001092C50081E08093600008958E988A :100AA0009698BB98C398C698AF9808958E9A969AD0 :100AB000BB98C39808958E989698BB9AC39A089548 :100AC0008E9A969ABB9AC39A0895C49A80919A0076 :100AD000843018F483E080939A000895C49880913C :100AE0009A00843060F4882331F420E030E0809173 :100AF0008500882311F021E030E020939A000895CA :100B00001F920F920FB60F9211242F933F934F9382 :100B10005F936F937F938F939F93AF93BF938091D6 :100B200082009091830001969093830080938200CD :100B30008091DB008F5F8093DB008091DE008F5F10 :100B40008093DE0081508A3008F447C18091B30061 :100B500080FF09C08091B4009091B50001969093F8 :100B6000B5008093B4008091B30081FF09C08091EB :100B7000B6009091B70001969093B7008093B600AD :100B80008091B30082FF09C08091B8009091B900B4 :100B900001969093B9008093B8008091B30083FFD1 :100BA00009C08091BA009091BB0001969093BB0060 :100BB0008093BA008091B30084FF09C08091BC008B :100BC0009091BD0001969093BD008093BC008091F0 :100BD000B30085FF09C08091BE009091BF000196CF :100BE0009093BF008093BE008091B30086FF09C040 :100BF0008091C0009091C10001969093C1008093B4 :100C0000C0008091B30087FF09C08091C20090911D :100C1000C30001969093C3008093C2008091CF00DF :100C20008F5F8093CF008150893CE8F08091AD00C8 :100C30009091AE009093E0008093DF008091D70008 :100C40009091D80090939E0080939D001092AE00EA :100C50001092AD001092D8001092D70081E08093DE :100C600099001092CF0040919A00433008F052C092 :100C7000423081F580918500882301F580917300D1 :100C8000909174009C012F5F3F4F3093740020932C :100C9000730068EC70E00E94D40C892BD9F5215ABE :100CA0003F4028F0B998C19810929A0029C087B3A4 :100CB000842787BB88B3842788BB2CC084FD02C0EF :100CC000B998C198109274001092730081E08093DB :100CD0009A0020C080917300909174002EE2813EB2 :100CE000920798F0413049F410929A008091850063 :100CF00084FD06C0B998C19803C082E080939A0031 :100D0000109274001092730005C0019690937400C5 :100D1000809373008091A7009091A800039748F4F6 :100D20008091A7009091A80001969093A8008093CD :100D3000A7008091C700873318F48F5F8093C700A6 :100D40008091D200843328F48091D2008F5F809309 :100D5000D2008091CD008F5F8093CD008150833091 :100D6000D0F18091C800482F50E02091AB00309125 :100D7000AC004217530759F04217530714F48F5F22 :100D800001C081508093C8008091C8008ABD8091C5 :100D9000EA00482F50E020919B0030919C004217C0 :100DA000530759F04217530714F48F5F01C0815065 :100DB0008093EA008091EA0088BD8091EA00882350 :100DC00021F48091C800882319F082EA8FBD01C008 :100DD0001FBC1092CD001092DE0080918F0083FD29 :100DE00046C020916F0030917000409171004F5FBC :100DF00040937100463190F036FD09C035FF07C0C1 :100E00003093E9002093E800886080938F00809100 :100E10008F008F7E80938F0020E030E090917200F1 :100E200086B3892782FF1FC0909590937200473048 :100E300040F480918F008F7E80938F0020E030E01F :100E400005C02115310511F04F3068F080918F00F9 :100E5000806180938F0036FD02C0220F331F92FF06 :100E60002160109271003093700020936F00BF9149 :100E7000AF919F918F917F916F915F914F913F9132 :100E80002F910F900FBE0F901F901895982F1092D2 :100E9000DB008091DB008917E0F308959C0108C016 :100EA0001092DB008091DB008A30E0F3215030406B :100EB00021153105A9F7089502C000000197009798 :100EC000E1F70895D49ADC9A0895DC98D4980895AF :100ED0001BBA18BA15BA81E082BB1ABA88E587BB7B :100EE0008CE884BB82EF81BBF894C598BD9A87B328 :100EF00097980E944F0510BC8CE089B91BB886E812 :100F000080BD88E98AB917B886E186B910BE85E048 :100F100085BF80EE8BBF14BE8AE083BF83E68CBFA3 :100F200082EA8FBD81E18EBD82ED90E097BD86BDE6 :100F30001ABC18BC80E060E00E94280389E085BDEF :100F40008EE683BD82E089BF80918F0081608093AF :100F50008F0081E080936000789408951F93182F8C :100F6000F89497980E944F0510929C0010929B0055 :100F70001092AC001092AB00109296001092950067 :100F80001092D1001092D0001092EA001092C80086 :100F90001ABC18BC1FBC0E946E0584E792E00E9438 :100FA000AB0B89E392E00E94AB0B812F8150823022 :100FB000C0F48FE092E00E94AB0B8DEF91E00E94B5 :100FC000AB0B113019F488EF91E002C082EF91E091 :100FD0000E94AB0B81EC91E00E94AB0B82E891E0A8 :100FE0000CC0133061F485E691E00E94AB0B85E301 :100FF00091E00E94AB0B8EEF90E00E94AB0B88ED6E :1010000090E00E94AB0B16E3109385000E94A701AD :101010002AE008C0000001973FEF8F3F9307D1F708 :10102000215019F080E090E8F6CF109285000E94E0 :10103000A7012AE005C000000197E9F7215021F33C :1010400080E090E0F9CF8091C700823308F47CC043 :101050001092C7008091C400882309F041C080919C :10106000EB009091EC008350934038F48091DC00C9 :101070009091DD0083509340F0F08091C6008F5F27 :101080008093C6008AE08093C40010929C00109266 :101090009B001092AC001092AB0010929600109240 :1010A00095001092D1001092D0008091840084604D :1010B000809384000895809184008B7F80938400C6 :1010C00080919100853628F01092C6001092910010 :1010D00007C08091C600833018F083E00E94AE07FD :1010E0008091EB009091EC008639910598F4809105 :1010F0009D0090919E00892B69F480918B009091C6 :101100008C00892B39F08091EA00873918F081E052 :101110000E94AE078091DC009091DD008639910538 :1011200098F48091DF009091E000892B69F4809120 :10113000890090918A00892B39F08091C800873905 :1011400018F082E00E94AE0780919900882309F48C :10115000C3C18091C400882309F0B9C18091C60041 :10116000882331F0809191008F5F8093910002C0BD :10117000109291004091840041FF38C02091E1001D :101180003091E200809187009091880028173907FC :1011900080F010928C0010928B00109296001092AA :1011A000950010929C0010929B004D7F409384000C :1011B0001DC02091E1003091E20080919F0090914C :1011C000A0002817390790F080918B0090918C0037 :1011D0009695879590938C0080938B00469730F47A :1011E00086E190E090938C0080938B004091840086 :1011F00040FF38C02091D3003091D4008091A900E5 :101200009091AA002817390780F010928A00109256 :1012100089001092D1001092D0001092AC00109270 :10122000AB004E7F409384001DC02091D3003091CD :10123000D4008091D5009091D6002817390790F0FE :101240008091890090918A009695879590938A0065 :1012500080938900469730F486E190E090938A006D :101260008093890040916A0080916C00481739F49E :1012700090916B0080916D00981709F479C02091CE :101280008B0030918C002115310531F4809189005B :1012900090918A00892B61F130938E0020938D000C :1012A0008091890090918A009093A2008093A10080 :1012B00010928C0010928B0010928A00109289007C :1012C000809195009091960062E070E00E94E80C99 :1012D00070939600609395008091D0009091D1001A :1012E00062E070E00E94E80C7093D1006093D0003F :1012F0008091DF009091E0004A97D0F480919D00AA :1013000090919E004A97A0F480918B0090918C0060 :10131000892B71F48091890090918A00892B41F486 :101320001092AC001092AB0010929C0010929B00A7 :101330008FB58823E9F4842F60916B000E94280305 :1013400080918D0090918E0090938C0080938B0003 :101350008091A1009091A20090938A0080938900CF :1013600010929600109295001092D1001092D00029 :1013700040918B0050918C0080919D0090919E0037 :101380009A01281B390BC9012091950030919600D4 :10139000820F931F9093960080939500855A9140F9 :1013A00034F084EA91E090939600809395008091C8 :1013B0009500909196008C559E4F34F48CE59EEFED :1013C000909396008093950080919D0090919E004F :1013D000892B31F4452B21F4109296001092950040 :1013E000809195009091960062E070E00E94E80C78 :1013F00070939C0060939B00633D710534F082ED17 :1014000090E090939C0080939B0080919B00909132 :101410009C0097FF04C010929C0010929B0040918A :10142000890050918A008091DF009091E0009A013C :10143000281B390BC9012091D0003091D100820FB7 :10144000931F9093D1008093D000855A914034F03F :1014500084EA91E09093D1008093D0008091D000F5 :101460009091D1008C559E4F34F48CE59EEF909373 :10147000D1008093D0008091DF009091E000892B13 :1014800031F4452B21F41092D1001092D0008091BC :10149000D0009091D10062E070E00E94E80C70935F :1014A000AC006093AB00633D710534F082ED90E0D9 :1014B0009093AC008093AB008091AB009091AC0016 :1014C00097FF08C01092AC001092AB0003C081508F :1014D0008093C40010929900909184008091E5005F :1014E000891739F09093E500E0916500F09166006E :1014F000099508950E9430020E94F1030E94FB01A9 :101500000E9423080895FF920F931F93CF93DF93B8 :10151000182F062FF22E8091840083608093840020 :1015200060E070E0CB01BA0120EB32E040E050E037 :101530000E94B50C24E630E040E050E00E94FB0C35 :10154000E901C901845690409093D6008093D5005C :101550009093A00080939F003093AA002093A9004D :10156000309388002093870028323105B0F484E15D :1015700090E09093AA008093A900909388008093B4 :1015800087008AE090E09093D6008093D5009093F6 :10159000A00080939F00C8E2D0E0193C18F018EC3E :1015A00088EC01C0812F80938B0010928C001093E7 :1015B000890010928A00802F0E94DE021092E200C1 :1015C0001092E1001092D4001092D300D093B20098 :1015D000C093B100D0939300C09392008091840097 :1015E0008093E500E0916500F09166000995FF2089 :1015F00019F406C00E947A0A809184008370D1F7A2 :10160000DF91CF911F910F91FF9008951F93CF937A :10161000DF93382FEA01122F80918400836080933A :1016200084001092D6001092D5001092A000109263 :101630009F00373180F086EF9FEF831B9109880F61 :10164000991F840F951F9093D6008093D500909397 :10165000A00080939F00CE0102979093AA008093F0 :10166000A9009093880080938700C832D105B8F410 :1016700084E190E09093AA008093A9009093880061 :10168000809387008AE090E09093D6008093D50005 :101690009093A00080939F00C8E2D0E004C021E0B6 :1016A000C039D20798F4393288F0CE0196958795E3 :1016B000969587959E01281B390B3093D600209371 :1016C000D5003093A00020939F0038E21092E200F2 :1016D0001092E1001092D4001092D300393C18F01F :1016E00038EC88EC01C0832F80938B0010928C0023 :1016F0003093890010928A00862F0E94DE02D093D8 :10170000B200C093B100D0939300C0939200809137 :1017100084008093E500E0916500F09166000995F2 :10172000112319F406C00E947A0A80918400837004 :10173000D1F7DF91CF911F9108955D9BFECF8CB9BA :101740000895FC0104C05D9BFECF31968CB9808169 :101750008823C9F7089503C05D9BFECF2CB9FC0117 :10176000019624912223C1F70895FC01E40FF11D95 :1017700005C05D9BFECF31968CB961508081882376 :1017800011F06623B1F708951F920F920FB60F92D2 :1017900011242F938F939F93EF93FF9320917F00BA :1017A00080917E00922F981B9032A8F480917D004A :1017B000E82FF0E09CB1E251FF4F90838F5F809360 :1017C0007D002F5F20937F00813210F010927D000A :1017D0001092ED0006C08CB18093810081E080936F :1017E000ED00FF91EF919F918F912F910F900FBE80 :1017F0000F901F9018951092ED0090917E008091AF :101800007F00891711F4E0E013C09F5F90937E0082 :1018100080917C00813210F010927C0080917C00DD :10182000E82FF0E0E251FF4FE0818F5F80937C0072 :101830008E2F0895AC011092ED0020E016C09F5F3E :1018400090937E0080917C00E82FF0E0E251FF4F02 :101850009081FA01E20FF11D90838F5F80937C00ED :10186000813210F010927C002F5F90917E00809169 :101870007F00891B861718F7822F089580917F00BB :1018800090917E00891B089557988CB180938000B9 :1018900010927C0010927D0010927E0010927F00CA :1018A0001092ED00579A08950F931F93DF93CF93F3 :1018B000CDB7DEB761970FB6F894DEBF0FBECDBFD0 :1018C000462F8E010F5F1F4FB80150E00E941D0D83 :1018D000C8010E94A10B61960FB6F894DEBF0FBE3F :1018E000CDBFCF91DF911F910F910895FF920F937C :1018F0001F93DF93CF93CDB7DEB761970FB6F89400 :10190000DEBF0FBECDBF262FF42E8E010F5F1F4FFF :10191000B801422F50E00E941D0DF80101900020F7 :10192000E9F73197E01BF10B4F2D4E1B141664F4B1 :1019300080E341505D9BFECF8CB94423D1F7CE01AB :1019400001960E94A10B05C04195C8016F2D0E9410 :10195000B50B61960FB6F894DEBF0FBECDBFCF9129 :10196000DF911F910F91FF900895629FD001739FA7 :10197000F001829FE00DF11D649FE00DF11D929F2B :10198000F00D839FF00D749FF00D659FF00D99276A :10199000729FB00DE11DF91F639FB00DE11DF91F8E :1019A000BD01CF0111240895AA1BBB1B51E107C043 :1019B000AA1FBB1FA617B70710F0A61BB70B881FDF :1019C000991F5A95A9F780959095BC01CD0108956E :1019D00097FB092E07260AD077FD04D0E5DF06D055 :1019E00000201AF4709561957F4F0895F6F7909551 :1019F00081959F4F0895A1E21A2EAA1BBB1BFD01E2 :101A00000DC0AA1FBB1FEE1FFF1FA217B307E407DD :101A1000F50720F0A21BB30BE40BF50B661F771F35 :101A2000881F991F1A9469F7609570958095909515 :101A30009B01AC01BD01CF010895FB019F01E8941A :101A40004230C4F04532B4F44A3029F497FB1EF416 :101A5000909581959F4F642F77270E94D40C805DCD :101A60008A330CF0895D8193CB010097A1F716F4BE :101A70005DE251931082C9010C943E0DDC01FC0122 :101A8000672F71917723E1F7329704C07C916D93B2 :101A900070836291AE17BF07C8F30895F894FFCF23 :0A1AA00001E503EB03C902F50100A4 :00000001FF
":100000000C944B010C9489020C94A9020C94C0032B"
Das kann man ja jetzt auseinanderziehen:
":" <- neues Paket?
"100000000" <- Irgendeine fortlaufende Adresse (welche?)
"C944B010C9489020C94A9020C94C0032B" <- 33 Zeichen je 8 Bit, aber 256/8=32 ?!?
Dann ganz am Ende:
":0A1AA00001E503EB03C902F50100A4"
":00000001FF"
Was bedeuten die beiden Zeilen?
Und was ist mit dem Generator-Polynom? Ist das das Teil in der letzten Zeile? (wobei das doch 16 Bit (CRC16), also 2 Zeichen a 8 Bit sein müssten)
Hallo
Am Ende jedes Blockes wird die Checksumme zum RP6 gesendet:
Write 256b @0 ; CRC16: 0xDDAA
>>170| >>221| >>170| <<B:66|
^ 0xAA ^ 0xDD
Write 256b @256 ; CRC16: 0x195D
>>93| >>25| >>170| <<B:66|
^ 0x5D ^ 0x19
Write 256b @512 ; CRC16: 0xE915
>>21| >>233| >>170| <<B:66| ^ 0xAA ^ 0xDD
^ 0x15 ^ 0xE9
Hintergrund der Hundegeschichte: Ein durch fehlerhaften Flashinhalt abgestürzter AVR könnte den Watchdog einschalten indem er irgendwie das entsprechende Bit im Kontrollregister setzt. Das würde möglicherweise die Ausführung des Bootladers stören oder gar verhindern. Blöderweise steht das aber nur im Datenblatt des Tiny13 (Seite 37/38):
https://www.roboternetz.de/phpBB2/ze...=336549#336549
Abhilfe würde das möglichst frühe Ausschalten des WDT bringen, darauf weist Atmel sogar in einem anderen Zusammenhang hin:
(Aus Mega32-Datenblatt Seite 35)Watchdog Timer
If the Watchdog Timer is not needed in the application, this module should be turned off.
If the Watchdog Timer is enabled, it will be enabled in all sleep modes, and hence,
always consume power. In the deeper sleep modes, this will contribute significantly to
the total current consumption. Refer to “Watchdog Timer” on page 41 for details on how
to configure the Watchdog Timer.
Allerdings bringt das reichlich wenig, wenn es vorne im Anwenderprogramm eingebaut wird und der Block mit dem entsprechenden Startcode nicht richtig gespeichert wurde. Das Ausschalten sollte eigentlich schon im Bootlader geschehen.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Noch was: Wie komme ich an so eine Debug-Ausgabe (dann könnte ich die Ausgabe und die Hex vergleichen)
Vor jedem Block Daten sendet der Loader folgendes:
Wobei die 1 dort eine fortlaufende Zahl von 0 an ist.Code:>> 170| >> 128| >> 0| >> 1|
Das Ende eines jeden Blocks wird durch einvom Loader signalisiert.Code:<<170
Das Ende eines (erfolgreichen) Blocks quittiert der RP6 mit folgendem:
Danach kommt wieder die oben genannt Startsequenz.Code:<<B:66| <<]:93| <<[:91|
Nach dem Übertragen wird die alte UART-Geschwindigkeit mitwieder hergestellt.Code:>> 0|
Solange ich das Übertragene nicht starte, kann doch auch gar nichts passieren oder? Vollkommen egal, welchen Mist ich übertragen habe?
Ich werde jetzt mal anfangen etwas rumzubasteln um erste Ergebnisse zu erzielen.
Hat schon jemand raus, wie man die CRC16-Checksumme berechnet?
Im Internet gibts dazu irgendwie verschiedene Möglichkeiten, keine Ahnung ob die das gleiche Ergebniss liefern.
Hallo
Solange das Programm nicht gestartet wurde sollte keine Gefahr bestehen.
Die vier Bytes am Anfang eines Blocks könnte auch die absolute Adresse im Speicher bedeuten.
Oder: 170dez ist 0xAA oder 0b10101010. Da ich den AVRs einiges zutraue könnte das möglicherweise dem USART ermöglichen die Bitlänge zu messen. Laut Datenblatt (S. 167) ist der Frequenzfehler mit einem 8MHz-Takt bei 500kbps genau 0%. Echt erstaunlich :)
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hier mal die komplette Übertragung des ersten Blockes an Daten:
Dazu nun ein paar Fragen.Code:>> 73| //73 senden <<g:103| Upload in progress... >> 75| //Generelles Startsignal fürs Flashen? <<[:91| //Quittierung >> 170| //Start-Signal >> 128| // >> 0| // >> 0| //fortlaufende Nummer >>12| >>148| >>75| >>1| >>12| >>148| >>137| >>2| >>12| >>148| >>169| >>2| >>12| >>148| >>192| >>3| >>12| >>148| >>94| >>3| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>128| >>5| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>246| >>11| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>12| >>148| >>104| >>1| >>76| >>101| >>116| >>39| >>115| >>32| >>103| >>111| >>33| >>32| >>58| >>41| >>10| >>0| >>72| >>101| >>108| >>108| >>111| >>32| >>87| >>111| >>114| >>108| >>100| >>33| >>32| >>77| >>121| >>32| >>110| >>97| >>109| >>101| >>32| >>105| >>115| >>32| >>82| >>111| >>98| >>98| >>121| >>33| >>10| >>0| >>32| >>32| >>32| >>32| >>92| >>95| >>45| >>95| >>45| >>95| >>45| >>95| >>45| >>95| >>45| >>95| >>45| >>95| >>45| >>95| >>45| >>95| >>45| >>95| >>47| >>10| >>10| >>0| >>32| >>32| >>32| >>92| >>124| >>32| >>82| >>80| >>54| >>32| >>32| >>82| >>79| >>66| >>79| >>84| >>32| >>83| >>89| >>83| >>84| >>69| >>77| >>32| >>124| >>47| >>10| >>0| >>10| >>10| >>32| >>32| >>32| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>95| >>10| >>0| >>84| >>104| >>101| >>32| >>82| >>111| >>98| >>111| >>116| >>32| >>110| >>101| >>101| >>100| >>115| >>32| >>116| >>111| >>32| >>98| >>101| >>32| >>114| >>101| >>115| >>101| >>116| >>116| >>101| >>100| >>32| >>110| >>111| >>119| >>46| >>10| >>10| >>0| >>89| >>111| Write 256b @0 ; CRC16: 0xDDAA >>170| //Checksumme >>221| //Checksumme >> 170| //End-Signal <<B:66| //Quittierung <<]:93| //Quittierung <<[:91| //Quittierung
Was bedeutet die erste "73" die gesendet wird?
Was die "103", die zurück kommt?
Danach wird eine "75" gesendet, die mit einer "91" quittiert wird. Dann geht das normale Sendemuster los.
Welche Bedeutung haben diese Zahlen?
An eine absoulte Adresse im Sinne einer Adresse glaube ich nicht, da es sich ja um Blöcke von 256 Byte handelt, also wäre pro Block eins weiter irgendwie Quatsch oder?
Vielleicht rechnet der Bootloader das dann noch um oder so.
Ich denke, da muss man sich aber keine Gedanken drum machen.
Einfach ausrechnen wie viele Blöcke es sind und gut ist.
Das kann wohl nur der beantworten der das Protokol oder den Quellcode kennt. Es sind vermutlich Steuercodes für die verschiedenen Bootlader-Funktionen oder Statusbitmuster des Loaders und des RP6.Welche Bedeutung haben diese Zahlen?
Danke:) Wenn Byte 3 und 4 die LSB/MSB der Adresse wären, würde jeder 256er-Block das MSB um eins erhöhen. Ich weis aber auch nichts genaues und rate nur ;)...irgendwie Quatsch oder?
Das Verfahren für die CRC16-Prüfsumme könnte beim GCC dokumentiert sein. Schlieslich erzeugt ja der Kompiler die Hex-Dateien. http://www.google.de/search?q=CRC16+CRC-CCITT+avr+hex
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
So. Nach dem ich mich noch mal ausführlich mit crc beschäftigt hab, hab ich festgestellt, dass die Frage nach den Generator-Polynom Unsinn war. Das ist ja für CCITT festgelegt.
Hab mir mal selbst ein Beispiel gemacht. Könnte das bitte mal jemand überprüfen, der sich damit auskennt? Danke!
Kann mir bitte noch jemand sagen, welche Teile der Hex jweils so einen Datenstrang darstellen, der dann mit dieser Methode behandelt werden muss?Code:CRC16 CCITT: Beispiel: Polynom: x^4 + x^1 + x^0 -> 4. Grades -> 10011 Daten: 1100101011001 An die Daten 4 Nuller anhängen: 1100101011001 -> 11001010110010000 Die Daten mit XOR durch das Generator Polynom teilen: 11001010110010000 10011 ----- 010100 10011 ----- 0011110 10011 ----- 011011 10011 ----- 010001 10011 ----- 00010001 10011 ----- 00010000 10011 ----- 000110 Rest an die Daten angängen: 11001010110010000 -> 11001010110010110 Fertige Daten durch Generator Polynom teilen: 11001010110010110 10011 ----- 010100 10011 ----- 0011110 10011 ----- 011011 10011 ----- 010001 10011 ----- 00010001 10011 ----- 00010011 10011 ----- 000000 <- Rest=0, also fehlerfreie Übertragung
MfG
-schumi-
PS:
Ich hab schon eine Vorabversion des Upload-Programms geschrieben, die dann in HighSpeed ausliest, welches Board angeschlossen ist. Code gibts wenn die Upload-Funktion impletiert ist.
Lesezeichen