⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nf_drv.h

📁 ATMEL 89c51sndc mp3外接硬盘源码
💻 H
📖 第 1 页 / 共 2 页
字号:
  #define Nf_write_open_C_area_even(add_sect, add_byte)                                    \
                                      Nf_send_command_even (NF_READ_C_AREA_CMD);           \
                                      Nf_send_command_even (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_even ( add_byte );                   \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] );      \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[1] )

  #define Nf_send_cl_address_odd(add_sect, add_byte)                                    \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );    \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[1] ) 
  
  #define Nf_read_open_A_area_odd(add_sect, add_byte )                                  \
                                      Nf_send_command_odd (NF_READ_A_AREA_CMD);         \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );    \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[1] );    \
                                      Nf_wait_busy_odd()
  
  #define Nf_read_open_B_area_odd(add_sect, add_byte )                                  \
                                      Nf_send_command_odd (NF_READ_B_AREA_CMD);         \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );    \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[1] );    \
                                      Nf_wait_busy_odd()
  
  #define Nf_read_open_C_area_odd(add_sect, add_byte )                                  \
                                      Nf_send_command_odd (NF_READ_C_AREA_CMD);         \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );    \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[1] );    \
                                      Nf_wait_busy_odd()
  
  #define Nf_write_open_A_area_odd(add_sect, add_byte)                                    \
                                      Nf_send_command_odd (NF_READ_A_AREA_CMD);           \
                                      Nf_send_command_odd (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_odd ( add_byte );                   \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );      \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[1] )
  
  #define Nf_write_open_B_area_odd(add_sect, add_byte)                                    \
                                      Nf_send_command_odd (NF_READ_B_AREA_CMD);           \
                                      Nf_send_command_odd (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_odd ( add_byte );                   \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );      \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[1] )
  
  #define Nf_write_open_C_area_odd(add_sect, add_byte)                                    \
                                      Nf_send_command_odd (NF_READ_C_AREA_CMD);           \
                                      Nf_send_command_odd (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_odd ( add_byte );                   \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );      \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[1] )

#else

  #define Nf_send_cl_address_even(add_sect, add_byte)                                    \
                                      Nf_send_address_even ( add_byte );                 \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] )
  
  #define Nf_read_open_A_area_even(add_sect, add_byte )                                  \
                                      Nf_send_command_even (NF_READ_A_AREA_CMD);         \
                                      Nf_send_address_even ( add_byte );                 \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] );    \
                                      Nf_wait_busy_even()
  
  #define Nf_read_open_B_area_even(add_sect, add_byte )                                  \
                                      Nf_send_command_even (NF_READ_B_AREA_CMD);         \
                                      Nf_send_address_even ( add_byte );                 \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] );    \
                                      Nf_wait_busy_even()
  
  #define Nf_read_open_C_area_even(add_sect, add_byte )                                  \
                                      Nf_send_command_even (NF_READ_C_AREA_CMD);         \
                                      Nf_send_address_even ( add_byte );                 \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] );    \
                                      Nf_wait_busy_even()
  
  #define Nf_write_open_A_area_even(add_sect, add_byte)                                    \
                                      Nf_send_command_even (NF_READ_A_AREA_CMD);           \
                                      Nf_send_command_even (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_even ( add_byte );                   \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] )
  
  #define Nf_write_open_B_area_even(add_sect, add_byte)                                    \
                                      Nf_send_command_even (NF_READ_B_AREA_CMD);           \
                                      Nf_send_command_even (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_even ( add_byte );                   \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] )
  
  #define Nf_write_open_C_area_even(add_sect, add_byte)                                    \
                                      Nf_send_command_even (NF_READ_C_AREA_CMD);           \
                                      Nf_send_command_even (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_even ( add_byte );                   \
                                      Nf_send_address_even ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_even ( ((Byte*)&add_sect)[2] )

  #define Nf_send_cl_address_odd(add_sect, add_byte)                                    \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] )
  
  #define Nf_read_open_A_area_odd(add_sect, add_byte )                                  \
                                      Nf_send_command_odd (NF_READ_A_AREA_CMD);         \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );    \
                                      Nf_wait_busy_odd()
  
  #define Nf_read_open_B_area_odd(add_sect, add_byte )                                  \
                                      Nf_send_command_odd (NF_READ_B_AREA_CMD);         \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );    \
                                      Nf_wait_busy_odd()
  
  #define Nf_read_open_C_area_odd(add_sect, add_byte )                                  \
                                      Nf_send_command_odd (NF_READ_C_AREA_CMD);         \
                                      Nf_send_address_odd ( add_byte );                 \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );    \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] );    \
                                      Nf_wait_busy_odd()
  
  #define Nf_write_open_A_area_odd(add_sect, add_byte)                                    \
                                      Nf_send_command_odd (NF_READ_A_AREA_CMD);           \
                                      Nf_send_command_odd (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_odd ( add_byte );                   \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] )
  
  #define Nf_write_open_B_area_odd(add_sect, add_byte)                                    \
                                      Nf_send_command_odd (NF_READ_B_AREA_CMD);           \
                                      Nf_send_command_odd (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_odd ( add_byte );                   \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] )
  
  #define Nf_write_open_C_area_odd(add_sect, add_byte)                                    \
                                      Nf_send_command_odd (NF_READ_C_AREA_CMD);           \
                                      Nf_send_command_odd (NF_SEQUENTIAL_DATA_INPUT_CMD); \
                                      Nf_send_address_odd ( add_byte );                   \
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[3] );      \ 
                                      Nf_send_address_odd ( ((Byte*)&add_sect)[2] )
#endif

                                           
/*_____ D E C L A R A T I O N ______________________________________________*/

extern void nf_download_buffer(void);      /* Copy the content of gl_buffer on the card          */
extern void nf_upload_buffer(void);        /* Load the content of the card on gl_buffer          */

void  nf_init_spare(void);           /* Init the first redundant data of a block           */
void  nf_calc_logical_block();       /* Calulate the value of logical block in spare area  */
void  nf_update_spare_data(void);    /* Write only the redundant information               */
void  read_spare_byte(void);
void  nf_init_buffer(void);          /* Initialize the buffer gl_buffer with 0xFF          */
void  nf_copy_block_head(void);      /* Copy the first sectors of a block                  */
void  nf_copy_block_tail(void);      /* Copy the last sectors of a block                   */
void  nf_reassign_block(void);       /* reassign the physical block on the look up table   */
bit   nf_block_erase (Uint32);        /* Erase one block                                    */
bit   nf_erase_all_block(void);       /* Erase all block                                    */

#endif /* _NF_DRV_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -