Table of Contents

SD-card

Conhecimento prévio: [HW] Módulo de Controlo

Esta secção da biblioteca contém funções para uso do SD-card do HomeLab.

Tipos

  • static FATFS FATFS_Obj - FATFS_Obj is FATFS data structure instance. Consists of drive identificators.
  • FIL fil_obj - Estrutura de dados do sistema de ficheiros onde guardar os identificadores dos ficheiros.
  • DSTATUS - Devolve os códigos para as funções do disco.
    • RES_OK - (0) Sucesso do procedimento.
    • RES_ERROR - (1) Erro de R/W.
    • RES_WRPRT - (2) Escrita protegida.
    • RES_NOTRDY - (3) Disco não pronto.
    • RES_PARERR - (4) Alguns parâmetros são falsos.
  • FRESULT - Códigos mais importantes devolvidos pelas funções associadas aos ficheiros.
    • FR_OK - (0) Sucesso do procedimento.
    • FR_DISK_ERR - (1) Erro no layer de I/O do disco.
    • FR_INT_ERR - (2) Erro geral do disco.
    • FR_NOT_READY - (3) Disco não pronto para procedimento.
    • FR_NO_FILE - (4) Ficheiro não encontrado.
    • FR_NO_PATH - (5) Endereço não encontrado.
    • FR_INVALID_NAME - (6) Formato do nome de ficheiro errado.
    • FR_DENIED - (7) Disco cheio.
    • FR_EXIST - (8) Acesso negado.
    • FR_INVALID_OBJECT - (9) Erro de ficheiro ou pasta.
    • FR_WRITE_PROTECTED - (10) Disco protegido contra escrita.
    • FR_INVALID_DRIVE - (11) Número do disco é falso.
    • FR_NO_FILESYSTEM - (13) Ficheiro em suporte FAT não encontrado.
    • FR_TIMEOUT - (15) Ligação ao disco falhou.
    • FR_INVALID_PARAMETER - (19) Alguns parâmetros são falsos.
  • ModeFlags - Modos possíveis para abrir ficheiros.
    • FA_READ - Ficheiro aberto em modo leitura.
    • FA_WRITE - Ficheiro aberto em modo escrita.
    • FA_OPEN_EXISTING - Abre ficheiro. Se não existe devolve código do erro.
    • FA_OPEN_ALWAYS - Abre ficheiro. Se não existe cria o ficheiro.
    • FA_CREATE_NEW - Cria novo ficheiro. Se ficheiro já existe devolve código do erro.
    • FA_CREATE_ALWAYS - Cria novo ficheiro. Se ficheiro já existe este é sobreposto pelo novo.

Funções

  • DSTATUS disk_initialize (BYTE drv)

Inicializa o disco.Parâmetros:

  • drv - Número do disco. Na maior parte dos casos é 0.
  • Devolve código DSTATUS.
  • DSTATUS disk_status (BYTE drv)

Mostra o estado do disco. Parâmetros:

  • drv - Número do disco. Na maior parte dos casos é 0.
  • Devolve código DSTATUS.
  • FRESULT f_mount (BYTE Drive, FATFS* FileSystemObject)

Inicializa o sistema de ficheiros. Parâmetros:

  • Drive - Número do disco. Na maior parte dos casos é 0.
  • FileSystemObject - Apontador para o objecto do sistema de ficheiros.
  • Devolve códico FRESULT.
  • FRESULT f_open (FIL* FileObject, const TCHAR* FileName, BYTE ModeFlags)

Abre ou cria um ficheiro. Parâmetros:

  • FileObject - Apontador para o objecto do sistema de ficheiros.
  • FileName - Nome do ficheiro.
  • ModeFlags - Flag de modo de abertura.
  • Devolve códico FRESULT.
  • FRESULT f_close (FIL* FileObject)

Fecha ficheiro. Parâmetros:

  • FileObject - Apontador para o objecto do sistema de ficheiros.
  • Devolve códico FRESULT.
  • FRESULT f_read (FIL* FileObject, void* Buffer, UINT ByteToRead, UINT* ByteRead)

Lê o número de bytes requerido da memória. Parâmetros:

  • FileObject - Apontador para o objecto do ficheiro.
  • Buffer - Apontador para buffer onde guardar os dados.
  • ByteToRead - Número de ficheiros a ser lido.
  • ByteRead - Apontador para variável onde os bytes de leitura são devolvidos.
  • Devolve códico FRESULT.
  • FRESULT f_write (FIL* FileObject, const void* Buffer, UINT ByteToWrite, UINT* ByteWritten)

Escreve o número de bytes requeridos para um ficheiro. Parâmetros:

  • FileObject - Apontador para o objecto do ficheiro.
  • Buffer - Apontador para dados a serem escritos no ficheiro.
  • ByteToWrite - Número de bytes a serem escritos.
  • ByteWritten - Apontador para variável onde os bytes escritos são devolvidos.
  • Devolve códico FRESULT.
  • FRESULT f_sync (FIL* FileObject)

Escreve os dados dos buffers para um ficheiro para ficarem a salvo de uma quebra de energia. Usado em aplicações onde um ficheiro fica aberto por um período grande de tempo. Parâmetros:

  • FileObject - Apontador para o objecto do ficheiro.
  • Devolve códico FRESULT.
  • FRESULT f_mkdir (const TCHAR* DirName)

Cria pasta. Parâmetros:

  • DirName - Nome da pasta.
  • Devolve códico FRESULT.
  • FRESULT f_unlink (const TCHAR* FileName)

Apaga pasta ou ficheiro. Parâmetros:

  • FileName - Nome do objecto.
  • Devolve códico FRESULT.
  • FRESULT f_rename (const TCHAR* OldName, const TCHAR* NewName)

Renomeia ficheiro ou pasta. Parâmetros:

  • OldName - Nome antigo do objecto.
  • NewName - Nome novo do objecto.
  • Devolve códico FRESULT.
  • TCHAR* f_gets (TCHAR* Str, int Size, FIL* FileObject)

Lê uma string de um dado comprimento de um ficheiro. Parâmetros:

  • Str - Buffer onde guardar os dados lidos.
  • Size - Comprimento da string.
  • FileObject - Apontador para o objecto do ficheiro.
  • Returns Str buffer if successful.
  • int f_putc (TCHAR Chr, FIL* FileObject)

Aciciona um char ao ficheiro. Parâmetros:

  • Chr - Char a adicionar ao ficheiro.
  • FileObject - Apontador para o objecto do ficheiro.
  • Devolve 1 no caso de sucesso.
  • int f_printf (FIL* FileObject, const TCHAR* Foramt, …)

Adiciona uma string formatada a um ficheiro. Parâmetros:

  • FileObject - Apontador para o objecto do ficheiro.
  • Foramt - Formato da string.
  • Devolve o número de caracteres escritos no caso de sucesso.
  • DWORD f_tell (FIL* FileObject)

Posição do cursor no ficheiro. Parâmetros:

  • FileObject - Apontador para o objecto do ficheiro.
  • Devolve a posição de leitura/escrita do cursor no ficheiro como um apontador.
  • FRESULT f_lseek (FIL* FileObject,DWORD Offset)

Move o cursor para uma determinada posição no ficheiro. Parâmetros:

  • FileObject - Apontador para o objecto do ficheiro.
  • Offset - Posição desejada em bytes a partir do início do ficheiro.
  • Devolve códico FRESULT.

 

Exemplo

#include <stdio.h>
#include <homelab/module/ff.h>
#include <homelab/module/diskio.h>
 
int main (void)
{
    static FATFS FATFS_Obj;
    FIL fil_obj;
 
	// SD card initialization. 
	disk_initialize(0);
 
	// File system initialization. 
	f_mount(0, &FATFS_Obj);
 
	// Create text file "file.txt".
	f_open(&fil_obj, "/file.txt", FA_CREATE_NEW);
 
	// File to be open for writing.
	f_open(&fil_obj, "/file.txt", FA_WRITE);
 
	// Writing into file.
	f_printf(&fil_obj, "SD Card test");
 
 	// Close file.
	f_close(&fil_obj);	
}
pt/software/homelab/library/module/sdcard.txt · Last modified: by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0