Blame view

app/app-prime-modbus/include/common/mtd-nand.h 1.86 KB
8c2952457   김태훈   응용 프로그램 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
  /**    
      @file     mtd-nand.h
      @date     2010/05/27
      @author   오재경 freefrug@falinux.com  FALinux.Co.,Ltd.
      @brief    mtd를 통해 nand 플래시를 제어한ㄷ.ㅏ
                
      @todo     테스트 함수를 아직 만들지 않았다.
      @bug     
      @remark  
      @warning 
  */
  //
  //  저작권    에프에이리눅스(주)
  //            외부공개 금지
  //
  //----------------------------------------------------------------------------
  
  
  #ifndef _MTD_NAND_HEADER_
  #define _MTD_NAND_HEADER_
  
  #define MAX_BADBLOCK_COUNT		100
  #define RDERR_MANY_BADBLOCK		-10000
  
  typedef enum { 	
  		EZP_NONE = 0,
  		EZP_V1   = 1,
  		EZP_V2   = 2,
  		
  		EZP_S5PV210_HEADER = 210
  } ezboot_ver_t;
  
  /// mtd 를 위한 개별 관리 구조체
  typedef struct {
  
  	char  node_name[128];
  	int   fd;
  	int   pos;
  	
  	struct mtd_info_user info;
  
  } mtdnand_t;
  
  #ifdef __cplusplus 
  extern "C" { 
  #endif 	
  
  /// @{
  /// @brief  mtd-nand.c 에서 제공하는 함수 리스트 
  extern  mtdnand_t *mtdnand_create( char *fname );  /// mtd-nand 생성함수
  extern  void  mtdnand_free( mtdnand_t *mtd );      /// mtd-nand 해제함수
  
  extern  int   mtdnand_is_bad( mtdnand_t *mtd );                               /// 배드블럭확인 
  extern  int   mtdnand_read ( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 에서 데이타를 읽는다.
  extern  int   mtdnand_write( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 에 데이타를 쓴다.
  extern  int   mtdnand_read_oob( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 의 oob 영역을 읽는다.
  extern  int   mtdnand_read_skip_bad( mtdnand_t *mtd, unsigned char *buf, int count ); // mtd-nand 에서 배드블럭을 스킵하여 데이타를 읽는다.
  
  extern  int   mtdnand_seek ( mtdnand_t *mtd, int offset, int origin );        /// mtd-nand 의 엑세스 위치를 이동한다
  extern  int   mtdnand_erase( mtdnand_t *mtd );                                /// mtd-nand 의 한블럭을 지운다.
  
  /// @}
  
  #ifdef __cplusplus 
  }
  #endif 
  
  
  #endif //