Давайте прочитаємо FAT без бібліотек
Меню навігації
Посилання користувача
інформація про користувача
Ви тут » Програмування ATMEL у BASCOM. » Запитання - відповіді » Давайте прочитаємо FAT без бібліотек
Повідомлень 1 сторінка 10 з 10
Поділитися1 2014-09-03 11:19:52
- Автор: Дімон
- Активний учасник
- Звідки: Н.Новгород
- Зареєстрований: 2009-05-16
- Запрошень: 0
- Повідомлень: 96
- Повага: [+26/-0]
- Позитив: [+1/-0]
- Стать: Чоловіча
- Вік: 38 [1980-04-28]
- Провів на форумі: 2 дні 10 годин
- Останній візит: 2018-12-02 20:54:59
Давно мене бере заздрість коли люди роблять Wav плеєри на Attinny2313, читають FAT і ніяких труднощів при цьому не відчувають. і відразу куляти в порт( як і роблять).
Ось що я зміг зрозуміти про те, як це зробити:
Дані з карти SD зчитуються блоками (секторами) по 512 байт. Тобто. не можна звернутися до конкретної комірки, а лише до початку блоку (сектору) і послідовно його рахувати. Блоки (сектори) організовані в кластери, розмір кластера задається при форматуванні картки (якщо звичайно вам запропонують його вказати) і прописаний як і все інше в PBR.
ПОЧИНАЄМО
Головний завантажувальний запис MBR
Завантажувальний запис розділів PBR
Зчитуємо важливу інформацію з осередків PBR
Щоб знайти кореневий каталог, треба помножити кількість копій FAT (10h) на число секторів у ньому (16h) і додати до отриманого значення число зарезервованих секторів (0Eh).
Далі знаходимо розмір кореневого каталогу. По зміщенню 11h в PBR (2 байти) вказано кількість записів у кореневому каталозі (розмір кожного запису 32 байти). каталогу у секторах.
Область даних. У ній починається розміщення даних.
А тепер перші граблі, ну як граблі, про це всі знають, але я потрапив.
Область даних починається одразу з другого кластера
У мене виходить так: зі зміщення вказаному в записі файлу в кореневому каталозі треба відняти 2
Закликаю тих, хто цікавиться до участі!
Відредаговано Дімон (2014-09-03 19:01:38)