Давайте прочитаємо 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)