Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
E-502 изменение прошивки BlackfinДобрый день. Поток только на ввод (ADC 1ch/ 2MHz + DIN), запуск от переднего фронта внешнего Sync1 (f=150Hz). Шаг прерывания по SPORT изменен на (4*1024). Для перезапуска используется ф-я fpga_reg_write(L502_REGS_IOHARD_GO_SYNC_IO, 0); } if (g_streams & L502_STREAM_ALL_IN) { fpga_reg_write(L502_REGS_IOHARD_PRELOAD_ADC, 1); g_mode = L502_BF_MODE_STREAM; После загрузки прошивки модуль передает несколько пакетов данных (около 100), после чего останавливается с ошибкой -11. Какие могут быть комментарии? |
|||
|
||||
|
Re: E-502 изменение прошивки BlackfinЗдравствуйте. По описанию изменений прошивки, то в вашем методе перезапуска мне не нравится один момент. Вы останавливаете сбор данных по SPORT по приему заданного количества значений и тут же его перетаскаете прием с начала буфера, сбрасывая все позиции (f_sport_in_put_pos = f_sport_in_get_pos = f_sport_in_proc_pos = 0;). Но у Вас при этом данные еще могут не быть переданы в ПК из буфера в Blackfin по HDMA и реально hdma_send_done() в user_process может вызваться после перезапуска. А в этой функции вызывается stream_in_buf_free() для пометки, что данные в буфере переданы и свободны, при этом буфер у Вас уже значится пустым за счет сброса счетчиков при перезапуске и вызов stream_in_buf_free() приведет к некорректному значению f_sport_in_get_pos, что в свою очередь может привести к ошибочному определению прошивкой blackfin факта переполнения буфера, который определяется по соотношению этих позиций. Поэтому в первую очередь я бы попробовал исправить эту проблему. Как видится, это можно сделать двумя способами: |
|||
|
||||
|
Re: E-502 изменение прошивки BlackfinСпасибо за подсказку. О том, что обнуленный указатель позиции в буфере может вызвать переполнение я не подумал. По поводу "анализ...": lqmeasstudio не отображает DIN, поэтому в моей программе (LabView) включен стрим в файл (TDMS). Пишется: количество принятых данных/ данные АЦП/ данные DIN, затем средствами LabView просматривается. Понимаю, что не совсем корректно, но как есть. Однако, ошибки и lqmeasstudio и программа (LabView) выдают одинаковые. Т.е. проблема в Blackfin. Буду рад комментариям, спасибо. |
|||
|
||||
|
Re: E-502 изменение прошивки Blackfin
Можете привести этот кусок кода, где конкретно изменили и как? И почему именно 4*1024 для 1024 точек?
А как именно Вы разделяете данные на пакеты. Если сигнал старта приходит с частотой 150 Гц постоянно, то не совсем понятно, как Вы понимаете, и блоки идут сплошным потоком, то как Вы понимаете, что относится к какому блоку? |
|||
|
||||
|
Re: E-502 изменение прошивки BlackfinДобрый день, Алексей. |
|||
|
||||
|
Re: E-502 изменение прошивки BlackfinХорошо, ответил на почту |
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск