Запись файлов на SD-карту из встроенной системы

#c #embedded #atmel #atmelstudio

#c #встроенный #atmel #atmelstudio

Вопрос:

Я использую микропроцессор Atmel SAME54 с возможностями SDHC, используя IDE Atmel Studio 8. Однако драйвер, предоставляемый Atmel, предназначен для записи необработанных байтов на SD-карту. Для моих целей я пытаюсь записать данные в виде файлов .lam, которые в основном будут текстовым файлом.

Есть ли какой-либо способ закодировать заголовок файла, чтобы я мог напрямую записать файл в память и распознать его как файл на платформе ОС (Windows / Linux)? Если я напрямую напишу «Привет, мир!» в память, это работает, но не может быть прочитано из файлового менеджера Windows.

Изначально я думаю, что могу закодировать заголовок текстового файла, чтобы компьютер знал, что здесь есть файл. Но у меня много проблем с поиском этого, поскольку кажется, что текстовые файлы не имеют заголовков? Это кажется глупым. Я даже написал метод для записи моих данных в виде XML-данных, написав:

 <?xml version="1.0" encoding="UTF-8"?>
<Data>
    “Hello, world!”
</Data>
  

И это тоже не читается. Затем я посмотрел, могу ли я использовать fopen / fprintf / fclose во встроенных системах, но, похоже, это тоже не работает, поскольку очевидно, что в системе нет памяти ввода-вывода.

Я в недоумении, если это будет выполнимо для сохранения памяти в виде файлов. Очевидно, должен быть способ сделать это, так что есть какие-нибудь подсказки о том, как это сделать? В настоящее время я думаю перенастроить команды fopen / fprintf / fclose , чтобы использовать мои абстрактные команды SD_MMC для записи байтов данных. Однако я чувствую, что могу столкнуться с той же проблемой, что и раньше.

Любая помощь или ресурсы будут оценены.

Комментарии:

1. Я рекомендую вам найти подходящий драйвер FAT для карты и использовать его для обработки карт, как и любого другого диска в формате FAT. Даже если драйвер не поставляется со стандартными функциями C для обработки файлов, мы надеемся, что он должен быть достаточно похожим, чтобы быть простым в использовании.

2. Вам нужна поддержка файловой системы в вашем коде. Попробуйте адаптировать библиотеку FatFs в программном пакете Atmel. github.com/atmelcorp/atmel-software-package/blob/master/lib /…