[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
1. В описании по периферии бит 10 регистра DMA_CCRn числится как зарезервированный. В даташите - как FIFO FLUSH. Кто знает, что есть правда ?
2. Ситуация такая - на 144 мгц тактовой принимается/передается через MCBSP #1 поток 18 мегабит. Естественно при помощи DMA с автоинитом. Запись 32 байт командами
RPT #31
MOV *ar0+, port(*ar1+)
в буферную память USB приводит к потере пары слов на TX'е сериального порта (туды идет 32-х битная передача из DARAM ).
Кто тормозит? Варианты ответа :))) Я, DMA, USB, или peripheral controller ?
3. Для тех, кто еще не нарвался: DMA контроллер имеет недокументированный в еррате глюк. При 8-битной передаче откуда-либо в пространство ввода-вывода (например в сериальный порт в режиме SPI или в буфера USB контроллера) первый байт теряется напрочь, зато последний - передается два раза... Это не зависит ни от бурстов, ни от паковки данных, ни от режимов синхронизации. Желающие ознакомиться подробнее могут скачать мой тестовый проектик из конфы http://www.dspvillage.ti.com/discuss , в разделе про семейство C5000, про 'problem with 8-bit DMA xfer'
Как лечить - неизвестно. Единственное, что приходит в голову, вычесть единицу из начального адреса, и прибавить двойку к количеству элементов. Правда тем самым засрав последний байт буфера-приемника. И это не пройдет для SPI.
4. Один программист из германии еще сообщил, что при пересылки из EMIF'овского пространства с фиксированного нечетного адреса байтов (тоже кстати 8-битный ДМА) в буфер в DARAM'е передается всегда 0. Но сам я это не проверял, да и импортным программистам не очень-то доверяю по части сообразительности. Он решил проблему просто перепаяв источник данных на младшие шины данных :))) Хотя проблема могла быть и в другом.
5. Ну и пара приколов masm55.exe (даже версия 2.30 глючит):
BCCU label, src RELOP k8 обругивается при k8>=80h (приходится отрицательные числа ставить :))
Попробуйте написать что-то типа ADD T0,*ar0+ - оно не существует в системе команд c55x, получите ADD #<что-то>,*ar0+ - где <что-то> зависит от указанного регистра в операнде-источнике.
E-mail: info@telesys.ru