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

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

Отправлено Зок Мёдов 27 июля 2005 г. 16:33
В ответ на: ну бенчмарк это так для начала разговора :) вопрос вообще про отладку без эмулятора отправлено yes 27 июля 2005 г. 15:25

У меня, например исчезла масса проблем при введении тотального выравнивания данных на 4 байта даже если это и не очень эффективно.
В целях профилактики. Эксепшены по памяти исчезли. Конечно это никак не гарантирует правильной работы программы. С другой стороны - эти эксепшены даже иногда помогают отловить такого рода ошибки.
Ну и, хотя конвейер защищённый, я никогда не допускаю его остановки. Если этого избежать нельзя, то вставляю NOP в явном виде.
Потом, по стилю написания. Верхний уровень программы - это C. На ассемблере прописываются ВСЕ функции и правильно оформляются согласно calling convention. Никакие опасные действия (например свистопляска с кольцевыми буферами и сложной адресацией) НИКОГДА не лежат вне этих ассемблерных функций. Эти функции тщательно отлаживаются на предмет ВСЕГО, прямо после написания, благо это сделать несложно. Программа на С только вызывает их, передаёт им параметры, занимается распределением локальных переменных и т.д. В VDSP ВЫКЛЮЧАЕТСЯ межпроцедурная оптимизация. (Это не касается мелких проектов, написанных только на С)
Конечно, такой подход не даёт полной оптимизации из-за несовершенства calling convention, но зато избавляет от массы головной боли. Да и если правильно разбить программу на такие функции, накладные расходы обычно не превышают пары процентов производительности.
Собственно, все это я говорю может быть зря, т.к. у каждого человека свой набор подходящих одному ему стереотипов программирования, но как говорится: я не виноват, вы сами первый спросили :)

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru