Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet
30 мар 2023 Чт
Об архитектуре FAT32SD
Уровень 1. Физический. Модуль для общения по SPI на физическом уровне. Обработка команд от вышестоящего над ним контроллера. Команды такие a) Инициализация SPI через 80 тактов на частоте 100 кГц, b) Прием и отсылка байта данных, c) Включение и выключение устройства.
Уровень 2. Транспортный. Контроллер чтение и записи на диск. Полный цикл инициализации устройства, то есть, включение, отсылка команд, получение данных, чтение и запись секторов с опорой на 512 байтный буфер.
Уровень 3. Прикладной. Работа с файловой системой FAT16/32, при помощи уровня 2 осуществляется передача данных по секторам, запрос имени файла, поиск файлов на диске, чтение в память или из памяти (sram).
Принцип работы.
Сначала в память записывается имя файла (неограниченное количество символов), дается ссылка, куда читать и писать (в ту же память, возможно или другую), отсылается команда. Например — чтение файла, получение списка всех файлов в директории, запись файла, создание директорий и т.д. Пока контроллер работает, он будет BSY=1. Работать он может долго, так что надо будет проверять BSY статус.
Не знаю, надо ли сделать вызов Interrupt. Может сделаю. Если дойду до этого вообще!
Уровень 2. Транспортный. Контроллер чтение и записи на диск. Полный цикл инициализации устройства, то есть, включение, отсылка команд, получение данных, чтение и запись секторов с опорой на 512 байтный буфер.
Уровень 3. Прикладной. Работа с файловой системой FAT16/32, при помощи уровня 2 осуществляется передача данных по секторам, запрос имени файла, поиск файлов на диске, чтение в память или из памяти (sram).
Принцип работы.
Сначала в память записывается имя файла (неограниченное количество символов), дается ссылка, куда читать и писать (в ту же память, возможно или другую), отсылается команда. Например — чтение файла, получение списка всех файлов в директории, запись файла, создание директорий и т.д. Пока контроллер работает, он будет BSY=1. Работать он может долго, так что надо будет проверять BSY статус.
Не знаю, надо ли сделать вызов Interrupt. Может сделаю. Если дойду до этого вообще!
<< Ранние записи |
Поздние записи >>