EXeGLuMATOR 0 24 июля, 2009 Опубликовано 24 июля, 2009 · Жалоба Взял последнюю версию 0.07с FatFs. Соответственно и пример применения на данную серию процов. Собственно к библиотеке FatFs вопросов нет. Но есть чудный модуль MCI.c. Вроде перенес все нормально, да собственно и переносить там особо нечего. Регистры совпадают, только ножки переделать. Но не тут-то было. Инициализация карточки проходит без вопросов - вроде правильно все читается. Show disk status... Drive size: 59776 sectors Sector size: 512 Erase block size: 32 sectors MMC/SDC type: 2 CSD: 00000000 00 26 00 32 1F 59 81 D2 FE F9 CF FF 92 40 00 4A .&[email protected] CID: 00000000 03 53 44 53 44 30 33 32 57 00 3E 26 E3 00 55 62 .SDSD032W.>&..Ub OCR: 00000000 80 FF 80 00 .... SD Status: 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ Но вот SD Status - похоже не тот. Не проходит функция disk_read. А именно отваливается по условию в строчке 605. Даже не знаю где копать - вроде все правильно по коду... Частота контроллера урезана по самое нехочу. карточка компом нормально видится, читается, пишется. Другая карточка - аналогичный эффект.. Кто что может посоветовать? Или может кому не жалко работающего такого файлика? :rolleyes: mci.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 24 июля, 2009 Опубликовано 24 июля, 2009 · Жалоба тоже морочился с FatFs тока у меня stm32 c SDIO контроллером. ничем помоч не могу но если пройдете этот этап то обращаю внимание на другой возможный косяг, можете наступить на грабли с таймером таймаута. я день угробил пока понял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EXeGLuMATOR 0 24 июля, 2009 Опубликовано 24 июля, 2009 · Жалоба Не.. таймер таймаута я прошел. :) Тоже впоролся - различные системы управления прерываниями в примерах и в моих проектах. Вроде работает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 24 июля, 2009 Опубликовано 24 июля, 2009 · Жалоба Не.. таймер таймаута я прошел. :) Тоже впоролся - различные системы управления прерываниями в примерах и в моих проектах. Вроде работает... тогда у меня вопрос. чебы я не делал, какого либа размера буффер не передавал, fatfs спускает вниз кусками максимум по 8 блоков что замедляет максимальную скорость записи. косяг в коде fatfs. пытался отладчиком ... плюнул. непонятно откуда эта цифра берется. хочется застиавить чтоб мильтиблочная запись была большим числом блоков. тогда до 6 мегабайт в сек можно записывать в SD карту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 25 июля, 2009 Опубликовано 25 июля, 2009 · Жалоба 8 блоков - это же 4К? Размер кластера. После заполнения кластера приходится лезть в FAT, искать следующий свободный кластер, помечать его в двух копиях FAT как занятый, записывать номер следующего свободного кластера в FSINFO... Так что непрерывно не получается:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EXeGLuMATOR 0 25 июля, 2009 Опубликовано 25 июля, 2009 · Жалоба Это все здорово конечно. :) Но тема изначально несколько о другом... ;) Неужто никто на 2388 не портировал эту системку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sensor_ua 0 25 июля, 2009 Опубликовано 25 июля, 2009 · Жалоба Неужто никто на 2388 не портировал эту системку? Там же в примерах у Чена есть порт на LPC2378 с MCI. Можно сравнить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EXeGLuMATOR 0 25 июля, 2009 Опубликовано 25 июля, 2009 · Жалоба Так в том-то и дело, код из этого примера и используется. Но видимо есть еще какие-то ньюанусы... :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sensor_ua 0 25 июля, 2009 Опубликовано 25 июля, 2009 · Жалоба Сразу скажу, что на LPC не запускал. Бегло посмотрел код - там переменные XferStat и XferWp модифицируются в обработчике прерываний, а используется в фоне - возможно при выходе из while (604-я строка) по XferWp происходит модификация XferStat( хотя вероятность мала). И чему равно XferWp на 605-й строке? Такое использование XferWp и XferStat, IMHO, небезопасно и я бы ввёл переменные для копий и читал бы в них в критической секции безотносительно данной задачи. ЗЫ. В Isr_MCI модифицируются обе переменные, так что что там по логике получается, нужно разбираться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EXeGLuMATOR 0 25 июля, 2009 Опубликовано 25 июля, 2009 · Жалоба Да вот-же. Хотелось побыстрее все запустить. Видимо не прокатит. Но пример-то рабочий... По крайней мере должен быть - он тянется еще с предыдущих версий FatFs. Да и как-то мутно все реализовано в этом файле. :07: Видимо придется все полностью переделывать. Что совсем не веселит... Может таки у кого есть заведомо рабочий такой файлик? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
КонстантинТ 0 26 июля, 2009 Опубликовано 26 июля, 2009 · Жалоба тоже морочился с FatFs тока у меня stm32 c SDIO контроллером. ничем помоч не могу но если пройдете этот этап то обращаю внимание на другой возможный косяг, можете наступить на грабли с таймером таймаута. я день угробил пока понял. А что там за косяк с таймером таймаута?. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 27 июля, 2009 Опубликовано 27 июля, 2009 · Жалоба :rolleyes: А что там за косяк с таймером таймаута?. побольше значение ставить нада, иначе неработает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EXeGLuMATOR 0 27 июля, 2009 Опубликовано 27 июля, 2009 · Жалоба Это к STM относится, я так понимаю? А поближе к теме? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skripach 5 27 июля, 2009 Опубликовано 27 июля, 2009 · Жалоба Попробуйте др. карточку. Я портировал на LPC2478 EFSL и ChanFS, обе работают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EXeGLuMATOR 0 27 июля, 2009 Опубликовано 27 июля, 2009 · Жалоба Попробуйте др. карточку. Я портировал на LPC2478 EFSL и ChanFS, обе работают. Да пробовал. В том-то и дело. А файликом для MCI не поделитесь для FatFs? :rolleyes: Где-то похоже сидит какая-то мелочь - найти не могу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться