реклама на сайте
подробности

 
 
> FatFS файловая система от ChaN, Портирование на IAR для LPC2364
Tanker
сообщение Feb 15 2010, 14:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 30-06-07
Пользователь №: 28 806



Здравствуйте!
Портировал FatFS на IAR для LPC2364.
Смог прочитать CID и CSD карты disk_initialize, карты инициализируются нормально, делаю выводы о правильности хардваре и софтваре.

Перехожу к чтению 0-сектора SD-карты, через disc_read, там есть участок кода:
Код
ready_reception(count, 512);            /* Ready to receive data blocks */
cmd = (count > 1) ? CMD18 : CMD17;        /* Transfer type: Single block or Multiple block */
if (send_cmd(cmd, sector, 1, &resp)        /* Start to read */
    && !(resp & 0xC0580000)) {
      rp = 0;
        do {
            while ((rp == XferWp) && !(XferStat & 0xC)) {    /* Wait for block arrival */
            }
            if (XferStat & 0xC); break;/* Abort if any error has occured */ СЮДА СТАБИЛЬНО ВЫПАДАЮ!!!

Поскольку XferStat изменяется в прерывании DMA (которое срабатывает, там стоит счётчик и я вижу что он увеличивается при попытках что-то прочитать из секторов карты) делаю вывод, что что-то неправильно у меня в настройке DMA.
Неужели придётся разбираться с DMA ?!! там же чёрт ногу сломит (какие-то связанные списки и др. муть) а я начинающий ;-)
В экзампле от FatFS, буферы для DMA находятся в USB-memory, я указал "обычную память" (вернее убрал атрибут того что массив находится в области usb-памяти), ведь основной хватает. Могло ли это повлиять?
Буду рад полезной информации на данную тему.

Сообщение отредактировал rezident - Feb 15 2010, 15:32
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01327 секунд с 7
ELECTRONIX ©2004-2016