#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 /…