[an error occurred while processing this directive]
Таки кто из нас с техасом сильнее не прав? (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено Dr.Alex 17 октября 2005 г. 11:27

F28xx:

Делаем две подряд операции чтение-модификация-запись в один и тот же регистр:


SpiaRegs.SPIFFTX.bit.SPIRST = 0; // AND @_SpiaRegs+10,#0x7fff
SpiaRegs.SPIFFTX.bit.SPIRST = 1; // OR @_SpiaRegs+10,#0x8000

Так как операция занимает 2 такта, а выполнение конвейеризовано, то OR получает значение регистра, который ещё не успел поANDиться. В результате имеем неправильный результат :-о
А почему компилятор там nop не вставляет?
Или я в чём-то в корне не прав? (Лень внимательно доки читать..)

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

Ответы


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

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

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru