|
Ищу функции работы с SD картой, написанные для KEIL и SAM7 |
|
|
|
Jun 17 2010, 09:52
|
Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737

|
Цитата(toweroff @ Jun 9 2010, 19:15)  попробовал. Все компилится, функции в IRAM не размещаются... Короче вывод такой(в кейле): сколько десятков раз на форуме про это спрашивали, так ничего путёвого и не сказали. Походу выход один : Alt+F7 на файле, Code/Const в IRAM. Осилить премудрости scatter-а может и можно,но ....
|
|
|
|
|
Jun 28 2010, 11:12
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
To zheka: я "портировал" FatFs на at91sam7s256 месяца 3 назад. Это был экспериментальный проект. Со скачанным кодом я не разбирался, просто почитал описание основных процедур ну и добавил низкоуровневые ф-ции чтения-записи на SDшку. С 2Гб Kingston'ом все работало. Скорость там была, конечно, не ахти, но работало. Если хотите, могу скинуть Вам проектик в Keil'е. Там, конечно, неопрятно все, но при желании разобраться можно. Если, это интересно еще кому-нибудь, могу выложить архивчиком.
Сообщение отредактировал Nikitoc - Jun 28 2010, 11:12
|
|
|
|
|
Jun 29 2010, 07:46
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
Цитата(sonycman @ Jun 29 2010, 07:13)  А почему скорость "не ахти"? В районе скольки КБ/сек? Честно скажу - скорость не помню. Возможно, конечно, тестирование было не слишком объективным: я записывал через картридер файл, а во время тестирования ARM создавал на карточке еще один и копировал в него содержимое первого файла. Дело занимало несколько секунд, но я не помню размера файла-источника, чтобы даже примерно ответить, какая была скорость. Честно говоря, самому досадно. Когда понадобится применить это в каком-нибудь проекте придется заново разбираться Помню, правда, что в значительной мере, скорость работы ограничивалась SD-картой (в частности, процессом чтения).
|
|
|
|
|
Jun 29 2010, 12:10
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Nikitoc @ Jun 29 2010, 14:41)  Возможно. Тактовая частота 25Мгц. Резисторы согласования (33 Ом) я не ставил. Наблюдалась такая странность: при потоковом чтении между считыванием секторов приходилось делать задержку ~100us (и это не ожидание 0xFE, а именно пауза без тактирования !). Иначе не читалось. Возможно это была особенность той карточки. При потоковой записи такого не наблюдалось. Вполне возможно, что это нормально. Карте надо время, чтобы подготовить данные. Зато потом они идут практически сплошным потоком. А в Вашем случае токен начала передачи 0xfe что, совсем отсутствовал без снятия клока?
|
|
|
|
|
Jun 29 2010, 13:26
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
Цитата(sonycman @ Jun 29 2010, 15:10)  А в Вашем случае токен начала передачи 0xfe что, совсем отсутствовал без снятия клока? Ну, точно не помню, конечно, но чтение зависало на первом же буфере (2048 байт) после первого или второго сектора, если не было паузы. Цитата Вполне возможно, что это нормально. Карте надо время, чтобы подготовить данные. Зато потом они идут практически сплошным потоком. Это было бы классно, если бы можно было предугадать - когда нужна пауза, а когда нет.
Сообщение отредактировал Nikitoc - Jun 29 2010, 13:26
|
|
|
|
|
Jun 29 2010, 18:00
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Nikitoc @ Jun 29 2010, 17:26)  Это было бы классно, если бы можно было предугадать - когда нужна пауза, а когда нет. Согласно документации: Block Read Access Time 0.5 ms - 100 ms (max). Алгоритм мультисекторного чтения простой: 1. Даём команду CMD18, через NCR (максимум 64 клока) получаем ответ. 2. Ждём токен 0xfe (он появится через 0.5 ms - 100 ms). 3. Читаем 512 байтный сектор. 4. переходим на п.2 пока не прочтём все сектора. 5. Прекращаем чтение командой CMD12. Мне пришлось поработать всего с несколькими карточками, но проблем с тормозами не было - прямое мультисекторное чтение давало скорость в 1.4 мегабайта в сек. на 12 МГц (или 18 МГц - уже не помню) SPI.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|