Перейти к содержанию

    

qxov

Свой
  • Публикаций

    86
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о qxov

  • Звание
    Частый гость
  • День рождения 11.06.1980

Контакты

  • Сайт
    http://
  • ICQ
    50829972

Информация

  • Город
    Санкт-Петербург
  1. Спасибо. Год как лежит с такими же симптомами, всё руки не доходили. Попробуем на днях.
  2. Банк согласованных с преамбулой для различных величин расстройки по частоте/символьной скорости фильтров не рассматривается?
  3. Предполагаю, что вопрос возник из-за неправильной обработки перекрытия. Так-то если фильтр линейный, то работает принцип суперпозиции и хоть ты по одному отсчету фильтруй, если правильно это делаешь.
  4. Верный ответ - во втором сообщении темы.
  5. Цитата(jcxz @ Nov 5 2014, 09:34) Я использую её с обычными линейными буферами (увеличиваю линию задержки на размер N входных векторов, а потом - memmove линии задержки). Спасибо. Теперь мне не придется писать о том, что за несколько дней автор так и не смог осилить чтение документации в области интересующей его функции, где указано ЧТО она делает, КАК она это делает и КАК ДОЛГО это происходит. А еще в документации можно найти упоминание о функциях, оптимизированных с учетом дополнительных ограничений, что зачастую вполне допустимо. В другой же документации TI рекомендует следующий процесс оптимизации: C -> C+intrinsics -> Linear Assembler -> Parallel Assembler, но они автору также не указ и у него процесс проще (всего 11 команд же): "не понял как пользоваться функцией" -> "Parallel Assembler". Подозреваю также, что автору вообще должно хватить (нужно использовать) fixed-point, но доказать не могу. ЦитатаThis routine implements a block FIR filter. There are “nh” filter coefficients, “nr” output samples, and “nh+nr−1” input samples. The coefficients need to be placed in the “h” array in reverse order {h(nh−1), ... , h(1), h(0)} and the array “x” starts at x(−nh+1) and ends at x(nr−1). The routine calculates y(0) through y(nr−1) using the following formula: r(n) = h(0)*x(n) + h(1)*x(n−1) + ... + h(nh−1)*x(n−nh+1), where n = {0, 1, ... , nr−1}. ЦитатаThis is the C equivalent for the assembly code. Note that the assembly code is hand optimized and restrictions may apply. Кодvoid DSPF_sp_fir_gen(const float *x, const float *h, float * restrict r, int nh, int nr) {     int i, j;     float sum;     for(j=0; j < nh; j++)     {         sum = 0;         for(i=0; i < nr; i++)         {             sum += x[i+j] * h[i];         }         r[j] = sum;     } } ЦитатаCycles (4*floor((nh−1)/2)+14)*(ceil(nr/4)) + 8 e.g., nh=10, nr=100, cycles=758 cycles Code size (in bytes) 640 Для radix-2: ЦитатаCycles (nh * nr)/2 + 34, if nr multiple of 4 (nh * nr)/2 + 45, if nr not multiple of 4 For nh=24 and nr=64, cycles=802 For nh=30 and nr=50, cycles=795 Code size (in bytes) 960 Чтобы сравнивать было удобней: при nh=10 и nr=100 для r2 будет 534 такта.
  6. Цитата(Russky @ Oct 31 2014, 13:05) Вот сижу, разбираюсь с ассемблером и смотрю в код который идет от TI. То что писали его скорее всего индусы это понятно. Но проблема в том, что этот код похоже никто никогда не использвал. Т.е. для тестов и бенчмарков он может и сгодиться, а вот для реальных приложений нет. Все Ваши сообщения говорят о полном непонимании того инструменита, которым пытаетесь воспользоваться. Вы даже не потрудились прочитать документацию в части интересующей функции. При этом вешаете ярлыки на всех окружающих. Фу так делать.
  7. Сообщения об ошибках

    Первый баг: перетаскиваем компонент с зажатым Ctrl, жмем R. Второй баг: пытаемся отменить результат первого бага (Undo) - не до конца отменяется (поворот сохранился) Третий баг (или фича - я первый раз KiCAD запустил, не в курсе пока): попытка перетаскивания компонента с Ctrl, если он был подсоединен к проводнику перпендикулярно без промежуточного провода, приводит к отрыванию компонента от проводника. Четвертое. Не уверен вообще, что есть проблема, но пока не нашел способа как после перетаскивания компонента поправить проводники без их удаления с последующим восстановлением.
  8. Цитата(lamateur @ Jun 21 2012, 14:03) Еще раз подниму тему. Проблема до сих пор не решена. Нужна помощь в реализации передачи данных между плис и DSP. У вас в чем конкретно проблема? Со стороны DSP не понятно, как работать с Ethernet? Если так, то я почти без изменений прикрутил NDK на отдельное ядро (ибо эта скотина из DDR2 все-таки не очень хорошо работает почему-то, а внутренней памяти по мегабайту на ядро). Драйвер EMAC для NDK взял из комплекта MCSDK для 6474 (с сатйта ti).
  9. Если держать корку плис в ресете, заресетить srio на 6474, переконфигурить srio на процессоре и отпустить ресет корки плис, то запускается стабильно. Похоже, проблема возникала из-за несоответствия ackid на процессоре и в плис.
  10. Цитата(Sergey Semenov @ Feb 6 2012, 02:57) Наш опыт показывает, что RapidIO очень хорош. Да и могу поделится какими-то примерами работы с RapidIO для C6474 (хотя у TI почти все примеры прекрасно запускаются) Сейчас пытаемся связать TMS320C6474 и Virtex6 (если не ошибаюсь, rapidio core gen2 v1.3). Очень нестабильно поднимается линк. Перезапуск DSP/перезаливка плис = крышка, линк не поднять совсем. Точнее, на 6474 PORT_OK, но передачи данных нет (плис пишет в озу процессора). Если же звезды так расположатся, что данные начали передаваться - все отлично до следующего перезапуска. Не могли бы подсказать, что и как делали?
  11. Цитата(usercod @ Apr 27 2012, 15:06) 2. Адаптированны ли библиотеки для использования FFT Coprocessor? Ответ на вопрос 2: Библиотека не адаптирована. Кто-нибудь пробовал использовать FFT Coprocessor? Что будет если использовать функции FFT из DSPLib на процессоре где есть FFT Coprocessor? У процессора в ROM зашит код для FFT с использованием сопроцессора. Достаточно управление передать на нужный адрес и все ок. Название документа не помню.
  12. Цитата(Zelepuk @ Apr 16 2012, 12:26) да, по сути так оно и есть. Интересный подход применён, когда в функции main ничего не делается, но всё работает. Нигде не могу найти литературу чтобы объяснялись тонкости построения программ на чистом С "когда в main ничего не делается" Когда main завершается, в работу вступает DSP/BIOS. Если в main действительно ничего особенного не делается (TSK_create и прочее), то смотреть нужно .tcf файл. Там описываются задачи, программные и аппаратные прерывания, а также многое другое. После изучения этого файла многое должно проясниться.
  13. Цитата(Zelepuk @ Apr 15 2012, 21:37) На работе пришлось ковырять чужой проект под DSP BIOS. Глянул - ничего непонятно. Ранее имел опыт программирования на C. В идеале хочется найти учебник с простыми примерами. Книгу "Express DSP для чайников" читал. Но в ней только идеология. Подскажите, возможно есть что-то в открытом доступе. С чужим кодом почти всегда сложности. Попробуйте задавать конкретные вопросы. Например, "в функции main ничего не делается, а оно работает"
  14. Нужна помощь.

    Цитата(ToR_TDA @ Apr 13 2012, 23:38) Как бы Вам объяснить, что здесь лентяев не любят, и никто за Вас решать не будет. Попробуйте написать здесь решение тех пунктов, которые вам понятны, и четко сформулировать, что непонятно в остальных. Может помогут. По-моему даже не было попыток самостоятельно выполнить задание - оно должно быть примитивно даже для прогуливающих студентов.