📄 nf_2x_512b.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML><HEAD> <META NAME="GENERATOR" CONTENT="langdoc 1.0.1"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE> nf_2x_512b </TITLE> </HEAD> <BODY> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="6"> <TR> <TD ALIGN=CENTER VALIGN=MIDDLE BGCOLOR=BLUE> <H1> <FONT COLOR="#FFFFFF"> nf_2x_512b </FONT> </H1> </TD> </TR> </TABLE><P ALIGN=RIGHT> <I> Copyright (c) 2003</I> </P><H2> Library Usage </H2><H3> Package Description </H3><H3> Package Summary </H3><H4> Constants </H4><PRE></PRE><H4> Global Variables </H4><PRE></PRE><H4> Macros </H4><PRE></PRE><H4> Functions </H4><PRE><A HREF="#nf_block_erase">nf_block_erase</A> <A HREF="#nf_calc_logical_block">nf_calc_logical_block</A> <A HREF="#nf_check_status">nf_check_status</A> <A HREF="#nf_copy_block_head">nf_copy_block_head</A> <A HREF="#nf_copy_block_tail">nf_copy_block_tail</A> <A HREF="#nf_erase_all_block">nf_erase_all_block</A> <A HREF="#nf_format">nf_format</A> <A HREF="#nf_init">nf_init</A> <A HREF="#nf_init_buffer">nf_init_buffer</A> <A HREF="#nf_init_spare">nf_init_spare</A> <A HREF="#nf_mark_bad_block">nf_mark_bad_block</A> <A HREF="#nf_read_byte">nf_read_byte</A> <A HREF="#nf_read_close">nf_read_close</A> <A HREF="#nf_read_open">nf_read_open</A> <A HREF="#nf_read_sector">nf_read_sector</A> <A HREF="#nf_read_spare_byte">nf_read_spare_byte</A> <A HREF="#nf_reassign_block">nf_reassign_block</A> <A HREF="#nf_update_spare_data">nf_update_spare_data</A> <A HREF="#nf_write_byte">nf_write_byte</A> <A HREF="#nf_write_close">nf_write_close</A> <A HREF="#nf_write_open">nf_write_open</A> <A HREF="#nf_write_sector">nf_write_sector</A> </PRE><H3> Files List </H3><UL><LI><B><A NAME="nf.c"></A> nf.c</B><BR></LI><UL>This file contains the high level NF routines for 2 NF slots</UL><LI><B><A NAME="nf.h"></A> nf.h</B><BR></LI><UL></UL><LI><B><A NAME="nf_drv.c"></A> nf_drv.c</B><BR></LI><UL>This file contains the NF driver routines for 2 NF slots</UL><LI><B><A NAME="nf_drv.h"></A> nf_drv.h</B><BR></LI><UL></UL></UL><H3> Included Files </H3><UL><LI><B>board.h" / * board definition * / </B><BR></LI><LI><B>board.h" / * board definition * / </B><BR></LI><LI><B>config.h" / * system configuration * / </B><BR></LI><LI><B>config.h" / * system configuration * / </B><BR></LI><LI><B>lib_mcu\usb\usb_drv.h" / * usb driver definition * / </B><BR></LI><LI><B>nf.h" / * NF definition * / </B><BR></LI><LI><B>nf_drv.h" / * nf driver definition * / </B><BR></LI><LI><B>nf_drv.h" / * NF driver definition * / </B><BR></LI></UL><H2> Types Description </H2><UL><LI><B><A NAME="t_free_blocks"></A> t_free_blocks</B><BR></LI><UL><PRE>struct { Uint16 even; Uint16 odd;} </PRE></UL><LI><B><A NAME="t_lut"></A> t_lut</B><BR></LI><UL><PRE>struct { Union16 even; Union16 odd;} </PRE></UL><LI><B><A NAME="t_reassign_block"></A> t_reassign_block</B><BR></LI><UL><PRE>struct { Byte zone; Uint16 logical_block; Uint16 physical_block_odd; Uint16 physical_block_even;} </PRE></UL></UL><H2> Constant Macros </H2><H2> Global Variables </H2><H2> Function Macros </H2><H2> Functions </H2><A NAME="nf_block_erase"></A><H3> nf_block_erase </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_block_erase">nf_block_erase</A> ( Uint32 pos ) </PRE></TD></TABLE><P><P><P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> *RETURN: OK : erase done KO : erase not done*</PRE></TD></TABLE><H4> Note </H4><P><P><P><P><P><HR><A NAME="nf_calc_logical_block"></A><H3> nf_calc_logical_block </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_calc_logical_block">nf_calc_logical_block</A> ( ) </PRE></TD></TABLE><P>data area)<P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> *RETURN:*</PRE></TD></TABLE><H4> Note </H4><P><P><P><HR><A NAME="nf_check_status"></A><H3> nf_check_status </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_check_status">nf_check_status</A> ( void ) </PRE></TD></TABLE><P>operation<P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*RETURN: NF status*</PRE></TD></TABLE><H4> Note </H4><P><P><P><HR><A NAME="nf_copy_block_head"></A><H3> nf_copy_block_head </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_copy_block_head">nf_copy_block_head</A> ( void ) </PRE></TD></TABLE><P>during a write operation<P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> nb_sector : number of sector to be copied*RETURN:*</PRE></TD></TABLE><H4> Note </H4><P>This function uses the Samsung NF specific command: Copy-Back Program<P><HR><A NAME="nf_copy_block_tail"></A><H3> nf_copy_block_tail </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_copy_block_tail">nf_copy_block_tail</A> ( void ) </PRE></TD></TABLE><P>during a write operation<P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*RETURN:*</PRE></TD></TABLE><H4> Note </H4><P><P><HR><A NAME="nf_erase_all_block"></A><H3> nf_erase_all_block </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_erase_all_block">nf_erase_all_block</A> ( void ) </PRE></TD></TABLE><P>information<P><P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> *RETURN: </PRE></TD></TABLE><H4> Note </H4><P><P><HR><A NAME="nf_format"></A><H3> nf_format </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>s_format * <A HREF="#nf_format">nf_format</A> ( void ) </PRE></TD></TABLE><P>This function is called by the fat_format function and returns a pointerto a table containing the format parameters after erasing the NF.<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return: Address of the format parameter structure in code</PRE></TD></TABLE><HR><A NAME="nf_init"></A><H3> nf_init </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_init">nf_init</A> ( void ) </PRE></TD></TABLE><P>NF initialisation<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return: OK : init complete KO : - NF not supported or not recognise</PRE></TD></TABLE><HR><A NAME="nf_init_buffer"></A><H3> nf_init_buffer </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_init_buffer">nf_init_buffer</A> ( void ) </PRE></TD></TABLE><P><P><P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> *RETURN:*</PRE></TD></TABLE><H4> Note </H4><P><P><P><HR><A NAME="nf_init_spare"></A><H3> nf_init_spare </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_init_spare">nf_init_spare</A> ( void ) </PRE></TD></TABLE><P>the first time and the sector inside the block is not 0.<P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*RETURN:*</PRE></TD></TABLE><H4> Note </H4><P><P><P><HR><A NAME="nf_mark_bad_block"></A><H3> nf_mark_bad_block </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_mark_bad_block">nf_mark_bad_block</A> ( void ) </PRE></TD></TABLE><P><P><P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> *RETURN: **</PRE></TD></TABLE><H4> Note </H4><P><P><P><P><P><HR><A NAME="nf_read_byte"></A><H3> nf_read_byte </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>Byte <A HREF="#nf_read_byte">nf_read_byte</A> ( void ) </PRE></TD></TABLE><P>Low level memory read function<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return: Data read from memory</PRE></TD></TABLE><HR><A NAME="nf_read_close"></A><H3> nf_read_close </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_read_close">nf_read_close</A> ( void ) </PRE></TD></TABLE><P>Low level memory read close<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return:</PRE></TD></TABLE><HR><A NAME="nf_read_open"></A><H3> nf_read_open </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_read_open">nf_read_open</A> ( Uint32 pos ) </PRE></TD></TABLE><P>Low level memory read update<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> pos: address of the logic sector to read (size 512 bytes)*return: Update memory for reading</PRE></TD></TABLE><HR><A NAME="nf_read_sector"></A><H3> nf_read_sector </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_read_sector">nf_read_sector</A> ( Uint16 nb_sector ) </PRE></TD></TABLE><P>This function is an optimized function that writes 512 bytes from NFto USB controller<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> global: gl_ptr_mem*return: OK read done KO read failure</PRE></TD></TABLE><HR><A NAME="nf_read_spare_byte"></A><H3> nf_read_spare_byte </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_read_spare_byte">nf_read_spare_byte</A> ( void ) </PRE></TD></TABLE><P>read spare data byte and construct the look up table.<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return: OK : LUT construction complete KO : pb for LUT</PRE></TD></TABLE><HR><A NAME="nf_reassign_block"></A><H3> nf_reassign_block </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_reassign_block">nf_reassign_block</A> ( void ) </PRE></TD></TABLE><P><P><P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*RETURN:*</PRE></TD></TABLE><H4> Note </H4><P><P><P><HR><A NAME="nf_update_spare_data"></A><H3> nf_update_spare_data </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_update_spare_data">nf_update_spare_data</A> ( void ) </PRE></TD></TABLE><P>data area<P><P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> *RETURN:*</PRE></TD></TABLE><H4> Note </H4><P><P><P><HR><A NAME="nf_write_byte"></A><H3> nf_write_byte </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_write_byte">nf_write_byte</A> ( Byte b ) </PRE></TD></TABLE><P>Low level memory write function<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> b: data to write*RETURN: write status: OK: write done KO: write not done*</PRE></TD></TABLE><HR><A NAME="nf_write_close"></A><H3> nf_write_close </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_write_close">nf_write_close</A> ( void ) </PRE></TD></TABLE><P>Low level memory write close: release NF<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return:</PRE></TD></TABLE><HR><A NAME="nf_write_open"></A><H3> nf_write_open </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_write_open">nf_write_open</A> ( Uint32 pos ) </PRE></TD></TABLE><P>Low level memory write update<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> pos: address of the the next write data*return:</PRE></TD></TABLE><HR><A NAME="nf_write_sector"></A><H3> nf_write_sector </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>bit <A HREF="#nf_write_sector">nf_write_sector</A> ( Uint16 nb_sector ) </PRE></TD></TABLE><P>This function is an optimized function that writes 512 bytes from USBcontroller to NF<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> global: gl_ptr_mem*return: write status: OK: write done KO: write not done</PRE></TD></TABLE><HR></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -