реклама на сайте
подробности

 
 
> Подсчет СRC
Pyku_He_oTTyda
сообщение Nov 17 2005, 05:59
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Подскажите, как правильно посчитать на ассемблере контрольную сумму ключа I-BUTTON?


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение Nov 17 2005, 06:37
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата
А можно просто в двух словах изложить алгоритм подсчета, как он делается...

К сожалению я не знаю алгоритм, сам выдрал пример из инета.
На всякий случай даю дизассемблированный текст, то что для меня создал IAR:
Код
    crc_table:
   \   00000000   5E00E2BC3F61       DB 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31
   \              83DD9CC2207E
   \              FDA31F      
   \   0000000F   9D4121C3FC7F       DB 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96
   \              40A25F1EE301
   \              3EBD60      
   \   0000001E   DC827D23C19F       DB 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128
   \              1C42A0FEBFE1
   \              035D80      
   \   0000002D   3CDEBE6202E0       DB 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158
   \              DF5C63817C3D
   \              C0229E      
   \   0000003C   431DFFA11846       DB 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56
   \              A4FA7927C59B
   \              DA8438      
   \   0000004B   E56659BBDB07       DB 102, 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71
   \              6785BA3906E4
   \              195847      
   \   0000005A   FBA526789AC4       DB 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167
   \              3B6587D95A04
   \              E6B8A7      
   \   00000069   1BF9C6457A98       DB 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123
   \              F82444A6991A
   \              25C77B      
   \   00000078   643AD886055B       DB 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81
   \              B9E7D28C6E30
   \              B3ED51      
   \   00000087   4E0FF2102FAC       DB 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46
   \              937111CDAD4F
   \              70F32E      
   \   00000096   92CC8DD3316F       DB 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206
   \              ECB2500EF1AF
   \              4D13CE      
   \   000000A5   72906D2CD133       DB 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208
   \              0C8FB05232EE
   \              8E6CD0      
   \   000000B4   0D53B1EFAEF0       DB 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118
   \              124CCF91732D
   \              94CA76      
   \   000000C3   AB2817F50849   DB 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235
   \              B45669EAD537
   \              578BEB09    
   \   000000D3   36B58A6895D4       DB 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233
   \              29CBF47748AA
   \              E916        
   \   000000E1   55B7880B34D6       DB 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168
   \              2B6A97754AC9
   \              F614A8      
   \   000000F0   2A7496C84B15       DB 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107
   \              F7A9E8B6540A
   \              89D76B      
   \   000000FF   35                 DB 53
     12          0x00,0x5E,0xBC,0xE2,0x61,0x3F,0xDD,0x83,0xC2,0x9C,0x7E,0x20,0xA3,0xFD,0x1F,
0x41,
     13          0x9D,0xC3,0x21,0x7F,0xFC,0xA2,0x40,0x1E,0x5F,0x01,0xE3,0xBD,0x3E,0x60,0x82,
0xDC,
     14          0x23,0x7D,0x9F,0xC1,0x42,0x1C,0xFE,0xA0,0xE1,0xBF,0x5D,0x03,0x80,0xDE,0x3C,
0x62,
     15          0xBE,0xE0,0x02,0x5C,0xDF,0x81,0x63,0x3D,0x7C,0x22,0xC0,0x9E,0x1D,0x43,0xA1,
0xFF,
     16          0x46,0x18,0xFA,0xA4,0x27,0x79,0x9B,0xC5,0x84,0xDA,0x38,0x66,0xE5,0xBB,0x59,
0x07,
     17          0xDB,0x85,0x67,0x39,0xBA,0xE4,0x06,0x58,0x19,0x47,0xA5,0xFB,0x78,0x26,0xC4,
0x9A,
     18          0x65,0x3B,0xD9,0x87,0x04,0x5A,0xB8,0xE6,0xA7,0xF9,0x1B,0x45,0xC6,0x98,0x7A,
0x24,
     19          0xF8,0xA6,0x44,0x1A,0x99,0xC7,0x25,0x7B,0x3A,0x64,0x86,0xD8,0x5B,0x05,0xE7,
0xB9,
     20          0x8C,0xD2,0x30,0x6E,0xED,0xB3,0x51,0x0F,0x4E,0x10,0xF2,0xAC,0x2F,0x71,0x93,
0xCD,
     21          0x11,0x4F,0xAD,0xF3,0x70,0x2E,0xCC,0x92,0xD3,0x8D,0x6F,0x31,0xB2,0xEC,0x0E,
0x50,
     22          0xAF,0xF1,0x13,0x4D,0xCE,0x90,0x72,0x2C,0x6D,0x33,0xD1,0x8F,0x0C,0x52,0xB0,
0xEE,
     23          0x32,0x6C,0x8E,0xD0,0x53,0x0D,0xEF,0xB1,0xF0,0xAE,0x4C,0x12,0x91,0xCF,0x2D,
0x73,
     24          0xCA,0x94,0x76,0x28,0xAB,0xF5,0x17,0x49,0x08,0x56,0xB4,0xEA,0x69,0x37,0xD5,
0x8B,
     25          0x57,0x09,0xEB,0xB5,0x36,0x68,0x8A,0xD4,0x95,0xCB,0x29,0x77,0xF4,0xAA,0x48,
0x16,
     26          0xE9,0xB7,0x55,0x0B,0x88,0xD6,0x34,0x6A,0x2B,0x75,0x97,0xC9,0x4A,0x14,0xF6,
0xA8,
     27          0x74,0x2A,0xC8,0x96,0x15,0x4B,0xA9,0xF7,0xB6,0xE8,0x0A,0x54,0xD7,0x89,0x6B,
0x35};
     28          
     29          //Вычисляет и возвращает crc8

   \                                 In segment CODE, align 2, keep-with-next
     30          void do_crc_8(unsigned char byte, unsigned char *crc8)
   \                     do_crc_8:
     31          {
     32          *crc8=crc_table[(*crc8^byte)];
   \   00000000   ....               LDI     R20, LOW(crc_table)
   \   00000002   ....               LDI     R21, (crc_table) >> 8
   \   00000004   01F9               MOVW    R31:R30, R19:R18
   \   00000006   8160               LD      R22, Z
   \   00000008   E010               LDI     R17, 0
   \   0000000A   2706               EOR     R16, R22
   \   0000000C   0F40               ADD     R20, R16
   \   0000000E   1F51               ADC     R21, R17
   \   00000010   01FA               MOVW    R31:R30, R21:R20
   \   00000012   9104               LPM     R16, Z
   \   00000014   01F9               MOVW    R31:R30, R19:R18
   \   00000016   8300               ST      Z, R16
     33          }
   \   00000018   9508               RET


Сообщение отредактировал haker_fox - Nov 17 2005, 06:54


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pyku_He_oTTyda   Подсчет СRC   Nov 17 2005, 05:59
- - haker_fox   У меня тут правда на Си пример подсчета CRC8, но о...   Nov 17 2005, 06:19
- - Pyku_He_oTTyda   Попробую разобратся, вроде понятно немного. А можн...   Nov 17 2005, 06:28
- - arttab   это табличный метод (CRC8) - для скорости. Вот обы...   Nov 17 2005, 07:33
- - &-rey   Держи еще такой вариант. ;------------------- CRC ...   Nov 17 2005, 07:39
- - Pyku_He_oTTyda   А как вручную подсчитать CRC для ключа с номером ...   Nov 17 2005, 07:56
- - &-rey   Цитата(Pyku_He_oTTyda @ Nov 17 2005, 11:5...   Nov 17 2005, 08:11
- - Pyku_He_oTTyda   CRC ASSEMBLY LANGUAGE PROCEDURE DO_CRC: CRC_LOOP:...   Nov 17 2005, 08:32
- - NULL   Есть хорошая статья про CRC. Многое становится пон...   Nov 17 2005, 08:35
- - &-rey   Ну тогда все верно. У меня данный код на DS18B20 р...   Nov 17 2005, 08:52
- - PaulS   Цитата(Pyku_He_oTTyda @ Nov 17 2005, 08:5...   Nov 17 2005, 10:05
- - Antony Ugolev   CRC8 на С, не табличная версия: Кодvoid Update_CR...   Nov 17 2005, 10:46
- - Pyku_He_oTTyda   Cпасибо! Буду вечером осмысливать, разбиратся....   Nov 17 2005, 10:48
- - Pyku_He_oTTyda   &-rey буду премного благодарен! Ящик cam()...   Nov 17 2005, 12:09
- - Laksus   ЦитатаПодскажите, как правильно посчитать на ассем...   Nov 18 2005, 00:29
- - Pyku_He_oTTyda   Александр, спасибо за ссылку! *.pdf действител...   Nov 18 2005, 06:12
- - add   CRC для AVR : ;*********************************...   Nov 18 2005, 07:47
- - ksv198   Цитата(Pyku_He_oTTyda @ Nov 17 2005, 08:5...   Nov 18 2005, 13:28
- - Pyku_He_oTTyda   Благодарю! Работы предостаточно на выходные ск...   Nov 18 2005, 13:42
- - greg   Привожу пример для Pic 18f452. Проверено на DS1991...   Nov 21 2005, 16:17
- - halfdoom   Попросили оптимизировать CRC8 для ИАРа, получилось...   Jul 7 2010, 10:08


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016