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

Проблема с драйвером McAsp процессора OMAP-L138

Здравствуйте. Сейчас я разрабатываю программное обеспечение для устройства по сбору данных. Создано оно на базе процессора OMAP-L138, а сбор данных производится с 4-канального АЦП PCM4204. В качестве инструментария я использую Code Composer Studio 4.2, набор драйверов pspdrivers_01_30_01, EDMA пакет edma3_lld_01_11_02_05. При отладке других узлов устройства возникали проблемы из-за ошибок в драйверах, но они мною успешно выявлялись и исправлялись. Однако несколько дней назад я столкнулся с проблемой, которая поставила меня в тупик, в коем я сейчас и пребываю. Мне не удалось заставить корректно работать драйвер McAsp, отвечающий за связь с АЦП. При вызове функции SIO_reclaim, чтобы возвратить адрес заполненного данными буфера, процесс блокируется до момента, когда в выходной очереди драйвера появятся готовые буферы. Этого не происходит, и, следовательно, процесс так и остаётся находиться в состоянии блокировки. Почему этого не происходит, я и пытаюсь выяснить.

При детальном изучении проблемы я выяснил следующие факты. Операция испускания пустых буферов данных в канал SIO посредством функции SIO_issue проходит успешно. Всего канал предусмотрен для содержания 5 необработанных буферов. Я посылаю в канал 4 буфера. Каждый буфер имеет размер 16000 байт. В каждый из них должны складироваться данные выборок со всех четырёх каналов АЦП. Применяемый формат данных для McAsp -Mcasp_BufferFormat_MULTISER_MULTISLOT_SEMI_INTERLEAVED_1. При наблюдении, как изменяется содержимое буферов во время работы программы, я обнаружил, что данные первых двух посланных буферов регулярно обновляются. Возникает впечатление, что не вызывается функция Mcasp_localEdmaCallback. Однако, почему так происходит, мне пока не ясно. Здесь я выкладываю урезанную версию своего проекта. Он содержит только то, что относится к осуществлению коммуникации с АЦП.

Комментарии:

1.Библиотека pspiom.mcasp_LPE.a674 – это библиотека pspiom.mcasp.a674 с использованием

-DMcasp_LOOPJOB_ENABLED.

2. .Библиотека ti.pspiom.gpio_8_15.a674 – это изменённая библиотека ti.pspiom.gpio.a674. В ней я исправил ошибку, допущенную разработчиками драйвера, не позволяющую задействовать контакт GPIO 8[15] процессора.

 

Буду очень благодарен откликнувшимся людям, у которых уже есть за плечами опыт работы с данным драйвером. Спасибо за внимание.

test_mcasp_rus.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день, после месяца работы с данным драйвером, наши специалисты переписали все с помощью CSL: и работу McASP + EDMA и настройку EDMA и GPIO. Подняли производительность в десятки раз. Использование EDMA LLD3 вообще не рекомендуем из-за неэффективного цикла вызова обработчика прерываний EDMA Callback. (Посмотрите edma3ComplHandler в edma3resmgr.c)

Если всё же решитесь продолжать то не стесняйтесь тревожить ребят от TI тут, они достаточно быстро отвечают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. К сожалению, из-за большого количества дел, свалившихся на мою голову в эти дни, я не смог вовремя среагировать на ваш ответ. На форум TI E2E™ Community я уже обращался ( и также советую всем, у кого возникли какие-либо вопросы в связи с продукцией Texas Instruments, в первую очередь обращаться именно туда). Однако пока советы и наводки, которые мне дают эксперты Texas Instruments не привели к решению данной проблемы. Поэтому я решил обратиться со своим вопросом на этот форум. Спасибо за совет проанализировать код edma3ComplHandler. Я обязательно им воспользуюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лучше проанализировать SPRUFM1 и "TMS320C6745/C6747 DSP Enhanced DMA Controller User's Guide" и не пользоваться библиотеками для работы с периферией.

Там в общем всё достаточно просто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...