proga 0 26 января, 2012 Опубликовано 26 января, 2012 · Жалоба Здравствуйте. Сейчас я разрабатываю программное обеспечение для устройства по сбору данных. Создано оно на базе процессора 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SimpleSoft 0 26 января, 2012 Опубликовано 26 января, 2012 · Жалоба Добрый день, после месяца работы с данным драйвером, наши специалисты переписали все с помощью CSL: и работу McASP + EDMA и настройку EDMA и GPIO. Подняли производительность в десятки раз. Использование EDMA LLD3 вообще не рекомендуем из-за неэффективного цикла вызова обработчика прерываний EDMA Callback. (Посмотрите edma3ComplHandler в edma3resmgr.c) Если всё же решитесь продолжать то не стесняйтесь тревожить ребят от TI тут, они достаточно быстро отвечают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
proga 0 3 февраля, 2012 Опубликовано 3 февраля, 2012 · Жалоба Здравствуйте. К сожалению, из-за большого количества дел, свалившихся на мою голову в эти дни, я не смог вовремя среагировать на ваш ответ. На форум TI E2E™ Community я уже обращался ( и также советую всем, у кого возникли какие-либо вопросы в связи с продукцией Texas Instruments, в первую очередь обращаться именно туда). Однако пока советы и наводки, которые мне дают эксперты Texas Instruments не привели к решению данной проблемы. Поэтому я решил обратиться со своим вопросом на этот форум. Спасибо за совет проанализировать код edma3ComplHandler. Я обязательно им воспользуюсь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 3 февраля, 2012 Опубликовано 3 февраля, 2012 · Жалоба Лучше проанализировать SPRUFM1 и "TMS320C6745/C6747 DSP Enhanced DMA Controller User's Guide" и не пользоваться библиотеками для работы с периферией. Там в общем всё достаточно просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться