[an error occurred while processing this directive]
В общем - да вроде бы согласен. Но что касается CRC... (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ReAl 25 апреля 2006 г. 19:49
В ответ на: Я с Вами полностью согласен, но (+) отправлено <font color=gray>gcc-user</font> 25 апреля 2006 г. 15:49


uint8_t crcbuf_hi, crcbuf_lo;

void upd_crc(uint8_t b) {
uint8_t carry = crcbuf_hi ^ b;
carry = carry ^ (uint8_t) (carry >> 4);
crcbuf_hi = crcbuf_lo ^ (uint8_t) (carry << 4) ^ (uint8_t) (carry >> 3);
crcbuf_lo = carry ^ (uint8_t) (carry << 5);
}


avr-gcc -O2

upd_crc:
lds r25,crcbuf_hi
eor r25,r24
mov r24,r25
swap r24
andi r24,0x0f
eor r25,r24
mov r24,r25
swap r24
andi r24,0xf0
lds r18,crcbuf_lo
eor r24,r18
mov r18,r25
lsr r18
lsr r18
lsr r18
eor r24,r18
sts crcbuf_hi,r24
mov r24,r25
swap r24
lsl r24
andi r24,0xe0
eor r24,r25
sts crcbuf_lo,r24
ret

На асме - лень смотреть внимательно, но навскидку ТУТ много не выиграешь.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru