[an error occurred while processing this directive]
Если кто-то намерен использовать библиотеку CSL_ММС в 5509 (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Jolik 14 марта 2004 г. 01:36

Имейте ввиду что в реализации процедуры MMC_write допущена ошибка. Надо вычленить из *:\ti\c5500\bios\lib\csl55xx.src файл mmc_write.c и заремить в нем строчку как показано ниже

...

// Format and send command

if (MMC_FGET_H(mmc,MMCCTL,SPIEN)) {
MMC_FSET_H(mmc,MMCCTL,CSEN,1); //select card
}

regs->mmcargh = (Uint16)((cardAddr >> 16)& 0xFFFFu);
regs->mmcargl = (Uint16)(cardAddr & 0xFFFFu);
// regs->mmcdxr = *buf++;

if (!(MMC_FGET_H(mmc,MMCCTL,SPIEN))) {
regs->mmccmd = MMC_WRITE_BLOCK|0xA800; //send command
}

...

Соответственно в SPRU593 (стр. 2-12 по 2-14) тоже описано неправильно.

Ошибка заключается в том, что ТИ требует следующей последовательности:
запись первого байта в регистр MMCDXR -> отправки команды в карточку -> получение ответа -> запись след. байта в регистр MMCDXR->... (SPRU593 (стр. 2-12))

На самом деле спецификация ММС требует следующей последовательности:
отправка команды в карточку -> получение ответа -> запись первого байта в регистр MMCDXR -> запись след. байта в регистр MMCDXR->...

Т.о. происходит потеря первого байта (16 бит!).

К компилятору отношения не имеет! :))))

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru