THIN

HCC Embedded » File systems » THIN

THIN은 HCC-Embedded사의 매우 성공적인 FAT 시스템을 최적화시켜 만든 버젼으로 Footprint를 더욱 감소시켰습니다.
이 DOS 호환 파일시스템은 한정된 자원에서 구성하여 사용할 수 있도록 설계되었습니다.
그것은 8051, MSP430 그리고 H8S 시리즈의 MCU에서 잘 동작하며 대부분의 8bit와 16bit CPU에서 사용하기에 적합합니다.

THIN은 응용 프로그램에서 유일하게 필요한 기능만 선택하기 때문에 속도와 크기 모두 최적화됩니다.
THIN 사용자는 “A work of art!” 로 평가하고 있습니다.

Features

  • FAT12, FAT16 and FAT32
  • Long filenames
  • Highly scalable
  • Small footprint
  • Low memory resource usage
  • Media error handling
  • Fully PC-compatible
  • ANSI-compliant C source
THIN can be tested on the uCDrive Development Board.
THIN은 Royalty Free 라이센스, 기술지원, 1년간 업그레이드와 유지보수를 제공합니다.

Scalability

  • F_FAT12
  • F_FAT16
  • F_FAT32
  • F_FORMAT
  • F_LONGFILES
  • F_WRITE
  • F_NAMECHECKING
  • F_WILDCARDS
  • F_DIRECTORIES
  • … and many, many more
전체 리스트는 개발자 가이드를 참고하십시오!
각각의 모든 API 호출은 빌드에 포함하거나 빌드에서 제외시킬 수 있습니다. 이것은 자동으로 불필요한 하위 루틴(Sub-routines)을 제거합니다.
THIN은 확장할 수 있도록 설계된 DOS 호환 플래시 파일시스템으로 제한된 자원을 가진 개발자가 정확하게 필요한 시스템을 구축할 수 있습니다. 이 시스템은 완전한 기능을 갖추고 개발자의 요구사항의 변경에 ​​따라 새로운 옵션을 사용할 수 있습니다.
프로세서 및 개발 도구의 주요 차이점(성능차이 등)이 있기 때문에 Footprint에 대한 명확한 수치를 제공하는 것은 불가능합니다.

다음은 Keil Development Suite에서 8비트 8051 MCU를 위해 만들어졌습니다.

Code Footprint
빌드시 선택한 옵션에 따른 파일시스템의 Code Footprint는 4KB(디스크에 있는 파일을 액세스하기 위한 최소한의 DOS호환 시스템 필요용량) ~ 20KB(디스크 포멧 등 모든 옵션을 포함한 완벽한 파일시스템 필요용량) 입니다.
Data Footprint
THIN은 모든 호스트 시스템에서 완벽하게 독립적으로 동작합니다. 메모리는 정적으로 할당됩니다.(즉, Heap이 필요없다는 의미)
전형적인 전체 Data Footprint는 각 열린 파일에 대해 1.5K(< 1K plus 0.5K) 보다 작습니다.
[The typical total data footprint is <1K plus 0.5K for each open file. – 오역방지를 위한 원문]
Stack Requirement
일반적으로 파일시스템을 호출을 하기 위한 스택의 요건은 0.5K 이하입니다.
개발자 가이드는 서로 다른 구성에 특정 스택의 요건에 대한 가이드라인 정보(지침서)를 제공합니다.
Options
이 시스템은 많은 빌드 옵션을 제공하고 자세한 내용은 개발자 가이드에 있습니다.

제공되는 빌드옵션 :

Speed

한정된 자원의 시스템에서의 핵심 기능은 프로세싱을 위한 제한된 MIPS를 가지고 있다는 것입니다. 그래픽과 통신 태스크는 Host MCU에 큰 부담이 되고 있습니다.

THIN을 통한 HCC는 지대한 노력으로, 8/16bit MCU에 적합한 가장 효율적인 C 소스코드를 제공하고 있습니다. 이것은 상세 코드분석 및 최적화, 이 두가지 조합에 의해서 수행됩니다. 또한 규정에 의한 넓은범위의 개발자 옵션으로 불필요한 코드를 피할 수도 있습니다.
THIN은 특별한 시스템을 보다 쉽게 창의적으로 만들수 있습니다.

Code footprint(코드 사용량)를 최소화하면 일반적으로 성능을 개선하는 데 도움이 됩니다. 또한, 8051에서 드라이버 루틴들의 중요한 부분은 MCU에 최소한의 부하(전송률과 최상의 수신을 가능케 함)를 주기 위해서 어셈블(Assemble)로 다시 코딩됩니다. 이 어셈블러 루틴은 C에서 사용할 수 있고 어떤 Target MCU를 위한 훌륭한 템플릿입니다. 시스템의 추가적인 특징은 제한적으로 복사함수(Copy functions)를 사용하는 것입니다. 대부분의 파일에서 읽거나 쓰는 경우, 제로 카피(Zero copy)를 하여 MCU의 부하를 최소화하고 최대 처리량을 달성할 수 있습니다.

Porting

THIN은 매우 쉽게 포팅할 수 있도록 설계되었습니다. 여러 상용 RTOS에서 테스트되었고 RTOS가 없는 Stand-alone 시스템에서도 테스트되었습니다. 우리는 모든 RTOS에 쉽게 포팅할 수 있습니다.
모든 코드는 ANSI 호환 ‘C’ 에서 제공됩니다. 이것은 4개의 다른 개발환경에서 테스트되었고, 가장 높은 수준의 호환성을 보장하기 위해 문법 검사기(Syntax Checker)를 통해서 실행됩니다.
시스템의 쉬운 평가을 위한 샘플 어플리케이션 코드가 제공됩니다. 하드웨어 의존성에 명확한 기준과 함께 다양한 미디어 타입에 대한 샘플 드라이버를 제공합니다. 개발자 가이드에서는 포팅의 모든 측면에서 자세한 정보를 제공하고 특정 호스트 시스템에 대해서 수정해야 하는 부분을 명확하게 나타냅니다.

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

  • 1. 시간/날짜 정보를 위한 실시간 클럭.
    시간/날짜 정보는 응용 프로그램의 파일과 함께 저장된다면 실시간 클럭이 필요합니다.
  • 2. 난수 생성기(Random number generator)는 포맷 작업중에 일련번호를 생성합니다.
    이것은 미디어의 포맷이 필요 경우에만 권장합니다.
  • 3. 상호배제를 위한 세마포어(Semaphores for mutual exclusion).
    이것은 선점형 시스템(pre-emptive system)에서만 필요합니다.
개발자 가이드는 시스템에 대한 더 자세한 정보를 제공합니다 :
  • which functions to exclude
  • the effect of excluding/including a particular option
  • selecting FAT12/16/32 support
  • selecting long or 8.3 name support
  • a variety of code validation functions

Media Types

THIN은 표준 인터페이스 루틴(read_sector (), write_sector () 등)을 통해서 모든 Standard DOS-호환 디바이스에 인터페이스하기 위해 설계되었습니다.
MultiMediaCard, Secure Digital and SDHC Cards
이것은 아마도 임베디드 장치에 DOS 호환 파일 미디어를 추가하는 가장 간단한 방법일 것입니다. HCC는 SD, SDHC 및 MMC Card, 표준 SPI(하드웨어 또는 소프트웨어 중 하나에서 구현)를 포함하여 인터페이스를 위한 드라이버를 제공합니다. HCC는 인터페이스 구현을 위한 하드웨어 설계 정보을 제공합니다.

Compact Flash Cards
컴팩트 플래시 카드(CFC)는 PC 호환 미디어와 함께 더 복잡한 통신을 요구하지만 성능이 뛰어납니다. 이것은 넓은 데이터 버스로 인해 높은 처리량으로 CPU의 부하를 감소시킵니다. HCC는 CFC 인터페이스 구현을 위한 하드웨어 설계 정보를 제공합니다.

Atmel DataFlash
ATMEL DataFlash의 모든 종류를 사용하기 위해서 두개의 드라이버 타입을 제공합니다.
1. 논리 디스크에 DataFlash 페이지를 직접 매핑하는 간단한 드라이버가 표준으로 제공됩니다.
2. 보다 안정적인 방법으로 DataFlash를 처리하는 더 복잡한 드라이버( DFML)는 별도로 주문하셔야 합니다.

NAND Flash
HCC는 논리섹터(Logical sectors)로 구성된 집합과 같은 파일시스템으로 나타낸 NAND Flash 배열에 대한 Flash Translation Layer 제품인 SafeFTL을 제공합니다. SafeFTL은 THIN을 위한 드라이버 레이어(Layer)로 제공할 수 있습니다.
자세한 정보를 보실려면 [SafeFTL.] 클릭하십시오!
RAM Drive
RAM 드라이브는 표준으로 제공되고 있으며 RAM상 응용 프로그램 개발에 유용합니다.

Other Devices

HCC는 지원되는 디바이스 목록을 추가하고 고객의 요청에 따른 특정 드라이버를 개발할 수 있습니다. 고객의 요구사항을 의논하기 위해 이노에스제이(주) [Email: sam@innosj.com / Tel: 02-6268-4500 ]에 연락하십시오!
General File System Functions
f_getversion Get File System Version Number
f_initvolume Initialize the Volume

Drive Functions
f_mountdrive Mount a Drive
f_format Format the Drive
f_hardformat Hard Format the Drive
f_getfreespace Get Usage Information From a Drive
f_setlabel Set the Label on a Volume
f_getlabel Get the Label from a Volume

Directory Functions
f_getcwd Get Current Working Directory
f_mkdir Make a Directory
f_chdir Change Directory
f_rmdir Remove a Directory

File Access Functions
f_open Open a File
f_close Close a File
f_write Write ro a File
f_read Read from a File
f_seek Set Position in a File
f_tell Get Current File Position
f_eof Check if at End of File
f_rewind Move to Start of File
f_putc Put a Character to a File
f_getc Get a Character from a File

File Control Functions
f_rename Rename a File of Directory
f_delete Delete a File or Directory
f_filelength get the Current Length of a File
f_findfirst Find a File or Directory in the Specified Path
f_findnext Find Next File or Directory in the Specified Path
f_settimedate Set the Time and Date on a File or Directory
f_gettimedate Get the Time and Date from a File or Directory
f_setattr Set the Attributes on a File or Directory
f_getattr Get the Attributes from a File or Directory

MCUs

THIN은 다양한 소형 컨트롤러(8051, Hitachi/Renesas H8S series, TI MSP430, 16bit MCUs)에 사용되었습니다.

8051

THIN은 8051 플랫폼(Keil 개발환경)에 초기화되어 개발되었습니다.
8051의 거대한 범위 때문에 완벽하게 지원하는 디바이스 목록을 제공하는 것은 불가능합니다.

기본 요구사항 :

  1. A minimum of 1K of RAM. 2.5K would be normal for the file system and a reasonable application.
  2. A minimum of 10K of ROM if a read/write file system is required.

MMC/SD 카드는 (SPI 포트/소프트웨어 SPI 시뮬레이션 포트)를 통해서 대부분의 8051에 연결할 수 있습니다.

두개의 옵션에 따른 샘플 드라이버를 제공합니다.
1. 드라이버의 Critical 부분들은 최고의 성능을 위해서 8051 어셈블러 코드로 제공.
2. 두개의 GPIO핀은 카드 탐지(Card Detect)와 쓰기 방지(Write Protect)에 할당.

Compact Flash Card(CFC) 는 데이터 버스와 추가 제어라인을 통해서 연결될 것입니다.
HCC는 이것을 위한 하드웨어 레퍼런스 설계정보를 제공합니다.

만약 특별하게 문의하실 게 있으시면 이노에스제이(주) [Email: sam@innosj.com ]에 연락하십시오!

MSP430

Texas Instruments 사의 저전력 MSP430 Family의 16bit RISC mixed-signal 프로세서는 배터리 측정 어플리케이션을 위한 궁극적인 솔루션을 제공합니다.

이 디바이스 중 몇가지는 PC-호환 데이터 저장을 위해 MMC/SD 카드에 연결할 수 있습니다.
THIN은 모든 MSP430 디바이스를 사용하기 위해 SPI를 지원하여 쉽고 효율적으로 SD/MMC 카드 인터페이스를 만듭니다. 추가적으로, SPI 포트 핀으로 MSP430의 카드 탐지(Card Detect)와 쓰기 방지(Write Protect)에 2개의 GPIOs를 설정하여 사용할 것입니다.

The following devices with 5-10KB of RAM are recommended for use with THIN:

  • MSP430F1610
  • MSP430F1612
  • MSP430F1611
The following devices with 2KB of RAM may be used with THIN:
  • MSP430F148
  • MSP430F1481
  • MSP430F149
  • MSP430F1491
  • MSP430F168
  • MSP430F169
  • MSP430F448
  • MSP430F449
  • MSP430F438
  • MSP430F439

Note: On an MSP430 the minimum build of THIN including an MMC card driver uses less than 800bytes of RAM!

HCC-Embedded has tested drivers for the MSP430 range.
They have been proven on TI’s FET development boards using IAR’s Embedded WorkBench.

만약 문의하실 게 있으시면 이노에스제이(주) [Email: sam@innosj.com ]에 연락하십시오!
The following devices with 4-8KB of RAM are recommended for use with THIN:

ATmega

  • ATmega128
  • ATmega128L
  • ATmega64
  • ATmega645
  • ATmega6450
  • ATmega64L
The following devices with 2KB of RAM may be used with THIN:
  • ATmega325
  • ATmega3250
  • ATmega32L
Note: These 2KB RAM devices can be used only with a minimal build of THIN. Using THIN with these devices leaves only about 200 bytes of memory for the user application.

HCC-Embedded has developed and tested sample drivers for use on ATmega devices.

만약 문의하실 게 있으시면 이노에스제이(주) [Email: sam@innosj.com ]에 연락하십시오!

ATMEL사의 ATmega flash microcontroller중 일부는 PC-호환 데이터 저장을 위해 MMC/SD 카드에 연결할 수 있습니다. THIN은 이러한 디바이스를 사용하기 위해서 SPI를 지원하여 간단하고 효율적으로 SD/MMC 카드 인터페이스를 만듭니다. 추가적으로, SPI 포트 핀으로 ATmega의 카드 탐지(Card Detect)와 쓰기 방지(Write Protect)에 2개의 GPIOs를 설정하여 사용할 것입니다.