SafeFAT

HCC EmbeddedFile systems ≫ SafeFAT

SafeFAT는 저널링 시스템으로 모든 작업이 안전하게 수행되는 것을 보장합니다. 어떤 이유에서든 시스템 리셋이 예기치 않게 발생한다면, 일관성 있고 사용 가능한 상태로 리턴합니다. 따라서, 파일내에 데이터를 수정할 때(인스턴스를 탐색하거나 추가하는 경우) 원본파일은 “File flush” 또는 “File close” 를 호출하기 전까지 수정되지 않습니다. 이 시점에서 파일상태가 전환되고 새로운 데이터가 유효하게 됩니다. 이것은 파일쓰기(File Write), 파일삭제(File Delete), 디렉토리 생성/삭제(Create/Delete Directory), 이름바꾸기(Rename) 등과 같은 파일의 내용을 수정하는 모든 작업에 동일하게 적용됩니다. 만약 저장매체로 SafeFAT 사용하고 그것이 리셋하거나 SafeFAT을 실행하고 있는 다른 장치로 이동한다면, 시스템은 데이터의 손실과 파일과 메타 데이터(Meta-data)의 손상(Corruption)없이 깨끗하게 사용할 수 있습니다.

Features

  • FAT12, FAT16 and FAT32
  • Long filenames
  • Robust
  • Multiple volumes
  • Mix of media types
  • Unicode16 support
  • Media error handling
  • Fully PC compatible
  • Multiple files open for reading/writing
  • Multiple simultaneous users of open files
  • ANSI C compliant C source
  • Standard API (fopen, fclose, fwrite, etc.)
  • Efficient zero-copy read/write
  • Caching options
  • CheckDisk utility
  • Detailed implementation guide
Sample drivers and hardware reference designs are available for:
  • Compact Flash Cards
  • MultiMediaCards
  • SD, SDv2 and SDHC Cards
  • Hard disk drive
  • RAM drive
  • USB mass storage
  • USB MTP (Media Transfer Protocol)
  • NAND flash
  • Atmel DataFlash

Media Types

FAT는 표준 인터페이스 루틴(read_sector (), write_sector () 등)을 통해서 모든 Standard DOS-호환 디바이스에 인터페이스하기 위해 설계되었습니다. 신속하고 위험 부담이 없는 Reference drivers를 제공합니다.
MultiMediaCard, Secure Digital and SDHC Cards
이것은 아마도 임베디드 장치에 DOS 호환 파일 미디어를 추가하는 가장 간단한 방법일 것입니다.
HCC는 SD, SDHC 및 MMC Cards 인터페이스를 위해서 그것들을 지원하는 컨트롤러를 위한 4bit 데이터 인터페이스와 하드웨어 또는 소프트웨어 중 하나에서 구현되는 표준 SPI를 포함한 드라이버를 제공합니다. HCC는 개발자를 돕기 위해 입증된 하드웨어 레퍼런스 디자인을 제공합니다.
Compact Flash Cards
컴팩트 플래시 카드는 더 복잡하지만 성능이 뛰어납니다. 이것은 넓은 데이터 버스로 인해 높은 처리량의 결과로 CPU의 부하를 감소시킵니다. HCC는 또한 하드웨어 설계 정보 및 CPLD Logic을 제공합니다.div>

Hard Disk Drives
샘플 드라이버 및 레퍼런스 디자인은 FAT 파일시스템의 HDD의 IDE 인터페이스에 대해서 개발되었습니다. 또한 HDD를 사용할 때 필수적인 caching 옵션을 파일시스템에서 제공하고 있습니다. Caching 메카니즘은 고유 FAT의 효율성과 함께 결합되어 있습니다. 주로 Zero-copy를 읽거나 쓰면서 임베디드 시스템상에서 HDD를 구현할때 최고의 효율을 가져옵니다.
Atmel DataFlash
ATMEL DataFlash의 모든 종류를 사용하기 위해서 두개의 드라이버 타입을 제안합니다.
1. 논리 디스크에 DataFlash 페이지를 직접 매핑하는 간단한 드라이버가 표준으로 제공됩니다.
2. 보다 안정적인 방법으로 DataFlash를 처리하는 더 복잡한 드라이버(DFML)는 별도로 주문하셔야 합니다.
NAND Flash
HCC는 NAND Flash에 대한 Flash Translation Layer Product(SafeFTL)로 완벽하고 안정적인 인터페이스를 제공합니다. 그것은 FAT와 함께 주문할 수 있습니다..
USB Mass Storage
이 패키지는 HCC의 USB HOST 스택 인터페이스에 대한 샘플 드라이버를 포함하고 있습니다.
USB의 pendrives를 허용하여 표준 파일시스템 디바이스처럼 액세스할 것입니다.
USB Media Transfer Protocol
EUSBD-MTP는 HCC에서 구현한 미디어 전송 프로토콜입니다. 그것은 모든 HCC 파일시스템에서 Windows Vista 또는 Windows Media Player와 같은 미디어 전송 프로토콜을 지원하는 호스트 시스템상에 표준 드라이버처럼 볼 수 있습니다.
USB MST(대용량 저장장치)에 대한 대안으로 MTP를 사용했을때 장점:
  • 1. 호스트에 안전한(Failsafe) 파일시스템의 연결을 허용합니다.
  • 2. API를 통해서 타겟 파일시스템에 대한 액세스를 제공합니다.
  • 3. 호스트와 타겟이 파일시스템에 동시 액세스할 수 있습니다.
USB Reliable File Interface
EUSBD-RFI(신뢰적인 파일 인터페이스)는 MTP와 대용량 저장장치(Mass Storage)에 대한 대안으로 나온 USB 윈도우 드라이버입니다. Windows XP와 Windows Vista에 사용할 수 있으며, 이 드라이버는 Windows 탐색기에 원격 드라이브를 연결하기 위한 USB를 통해 NFS와 같은 프로토콜을 구현합니다.
실용적인 관점에서 임베디드 디바이스 개발자에게 주는 몇가지 이점:
  1. 1.Host는 Target에서 다른 사용자로 파일시스템을 액세스하기 때문에 모든 액세스가 동기화됩니다. 따라서, Host가 연결되면 로컬 드라이브를 분리하실 필요가 없습니다.
  2. 2.모든 파일시스템은 Target에서 사용할 수 있습니다. 파일시스템의 논리와 신뢰성은 Host상에서 운영중인 시스템이 아닌 Target에서 결정됩니다.
  3. 3. RFI는 소규모 임베디드 시스템에 맞게 특별하게 설계되었습니다.

RAM Drive

RAM 드라이브는 표준으로 제공되고 있으며, 시스템을 올리고 하드웨어의 의존성 없이 실행할때 특히 유용합니다.
Other Devices
HCC는 항상 지원되는 디바이스 목록에 추가하며 고객의 요청에 따라 특정 드라이버를 개발할 수 있습니다. 고객의 요구사항을 의논하기 위해 한국총판 이노에스제이(주)[Email: sam@innosj.com / Tel: 02-6268-4500 ]에 연락하십시오! HCC-Embedded는 또한 주문품의 개발 서비스를 제공합니다.

Porting

FAT는 쉽게 이식할 수 있게 설계되었으며 Host 시스템에 거의 종속적(의존적)입니다. 여러 상용 RTOSes에서 테스트되었고, RTOS가 없는 Stand-alone 시스템에서도 테스트되었습니다. 우리는 모든 RTOS에 쉽게 포팅할 수 있습니다.
모든 코드는 ANSI 호환 ‘C’ 에서 제공됩니다. 이것은 다양한 개발환경 (GCC, Visual C++ 및 모든 나열된 파트너 등 포함)에서 테스트되었고, 가장 높은 수준의 호환성을 보장하기 위해 문법 검사기(Syntax Checker)를 통해서 실행됩니다.
시스템과 함께 시스템의 쉬운 평가을 위해서 샘플 어플리케이션 코드(HTTP 서버,FTP 서버)도 같이 제공됩니다. 추가적으로, 패키지는 하드웨어 의존성에 명확한 기준과 함께 다양한 미디어 타입에 대한 샘플 드라이버를 포함하고 있습니다.
FAT 개발자 가이드에서는 포팅의 모든 측면에 대한 자세한 정보를 제공하고 특정 호스트 시스템에 대해서 수정해야 하는 영역을 명확하게 나타냅니다.

특히, 호스트 시스템에서 제공할 수 있는 것:

  • 1. 시간/날짜 정보를 위한 실시간 클럭.
    시간/날짜 정보는 응용 프로그램의 파일과 함께 저장된다면 실시간 클럭이 필요합니다.
  • 2. 난수 생성기(Random number generator)는 포맷 작업중에 일련번호를 생성합니다.
    이것은 미디어의 포맷이 필요 경우에만 권장합니다.
  • 3. 상호배제를 위한 세마포어(Semaphores for mutual exclusion).
    이것은 선점형 시스템(pre-emptive system)에서만 필요합니다.
HCC는 다양한 임베디드 프로젝트를 위한 프로젝트 개발 서비스 및 고객맞춤 설계 서비스 제공업체입니다.

Standard File API

General File System Functions
fgetversion Get File System Version Number
finitvolume Initialize a Volume
fdelvolume Removes a Volume from the System
fget_volume_count Gets Number of Active Volumes
fget_volume_list List the Active Volumes
fcreatepartition Creates a Partition
fgetpartition Gets the specified partition

Drive Functions
fmountdrive Mount a Drive
fformat Format a Drive
fhardformat Hard Format a Drive
fgetfreespace Get Usage Information From a Drive
fgetdrive Get Current Drive Number
fchdrive Change Current Drive
fsetlabel Set the Label on a Volume
fgetlabel Get the Label from a Volume

Directory Functions
fgetcwd Get Current Working Directory
fgetdcwd Get a Drives’ Current Working Directory
fmkdir Make a Directory
fchdir Change Directory
frmdir Remove a Directory

File Access Functions
fopen Open a File
fclose Close a File
fwrite Write ro a File
fread Read from a File
fseek Set Position in a File
ftell Get Current File Position
feof Check if at End of File
frewind Move to Start of File
fputc Put a Character to a File
fgetc Get a Character from a File
ftruncate Truncates a File

File Control Functions
frename Rename a File of Directory
fdelete Delete a File or Directory
ffilelength get the Current Length of a File
ffindfirst Find a File or Directory in the Specified Path
ffindnext Find Next File or Directory in the Specified Path
fsettimedate Set the Time and Date on a File or Directory
fgettimedate Get the Time and Date from a File or Directory
fsetattr Set the Attributes on a File or Directory
fgetattr Get the Attributes from a File or Directory
Also included is a full Unicode API

Unified API

일부 개발자는 동일한 응용 프로그램에 SafeFLASH와 FAT를 사용합니다. SafeFLASH은 NOR와 NAND 플래시에 안전한 액세스를 위해서 사용되며 FAT는 PC 호환장치에 액세스하기 위해 사용됩니다. 하나의 응용 프로그램에 SafeFLASH와 FAT의 사용자를 위해서 우리는 통일된 API(Unified API)를 제공합니다.
통합 API는 파일시스템에서 안전한 시스템의 이점과 PC 호환 시스템에서의 이점 모두 균일하게 제공하며 단일 인터페이스를 통해 액세스할 수 있습니다. 두 시스템은 완전히 독립적으로 일하고 Wrapper Layer는 모든 파일 시스템 호출을 관리합니다. 다른 시스템의 성능은 교체된 시스템에 의해서 영향을 받습니다.
CAPI라고 불리는 통합 API는 하나의 응용 프로그램에 FAT와 SafeFLASH 모두 사용자에게 무료로 제공하고 있습니다.