📄 nf_2x_2kb.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_2kb </TITLE> </HEAD> <BODY> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="6"> <TR> <TD ALIGN=CENTER VALIGN=MIDDLE BGCOLOR=BLUE> <H1> <FONT COLOR="#FFFFFF"> nf_2x_2kb </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="#invert_nf_block">invert_nf_block</A> <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_force_write_close">nf_force_write_close</A> <A HREF="#nf_format">nf_format</A> <A HREF="#nf_init">nf_init</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 2x NF with 2Kb page routines</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 2Kb page size NF and with 2 parallel NF</UL><LI><B><A NAME="nf_drv.h"></A> nf_drv.h</B><BR></LI><UL>This file contains the 2x NF 2kb driver definitions</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>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 2k low 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="invert_nf_block"></A><H3> invert_nf_block </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#invert_nf_block">invert_nf_block</A> ( void ) </PRE></TD></TABLE><P>This function invert assigned and free physical block<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_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><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><P><TABLE BORDER="1" WIDTH="75 %" BGCOLOR="white" CELLPADDING="6"><TR> <TD>ram/xram</TD> <TD></TD><TR> <TD>cycle</TD> <TD></TD><TR> <TD>stack</TD> <TD></TD><TR> <TD>code</TD> <TD></TD></TABLE><H4> Note </H4><P>This function use the global variable Uint32 address<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> ( void ) </PRE></TD></TABLE><P>Calculate the logical block value (used in spare data area)<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return:</PRE></TD></TABLE><P><TABLE BORDER="1" WIDTH="75 %" BGCOLOR="white" CELLPADDING="6"><TR> <TD>ram/xram</TD> <TD></TD><TR> <TD>cycle</TD> <TD></TD><TR> <TD>stack</TD> <TD></TD><TR> <TD>code</TD> <TD></TD></TABLE><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>Check the status of the device after a program or an erase operation<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return: NF status</PRE></TD></TABLE><P><TABLE BORDER="1" WIDTH="75 %" BGCOLOR="white" CELLPADDING="6"><TR> <TD>ram/xram</TD> <TD></TD><TR> <TD>cycle</TD> <TD></TD><TR> <TD>stack</TD> <TD></TD><TR> <TD>code</TD> <TD></TD><TR> <TD>code</TD> <TD></TD></TABLE><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>Copy the first part of a block that is not modified during a writeoperation<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> block : physical block number nb_sector : number of sector to be copied*return:</PRE></TD></TABLE><P><TABLE BORDER="1" WIDTH="75 %" BGCOLOR="white" CELLPADDING="6"><TR> <TD>ram/xram</TD> <TD></TD><TR> <TD>cycle</TD> <TD></TD><TR> <TD>stack</TD> <TD></TD><TR> <TD>code</TD> <TD></TD></TABLE><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> ( bit even_only ) </PRE></TD></TABLE><P>Copy the last part of a block that is not modifiedd uring a writeoperation<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE> even_only bit : if TRUE, only even nf block will be copied if FALSE, even and odd block will be copied*return:</PRE></TD></TABLE><H4> Note </H4><P>this function modify :gl_addressgl_ptr_memgl_cpt_pagenf_current_physical_sector_addr_oddnf_current_physical_sector_addr_evengl_buffer (reset to 0xFF)nf_redundant_logical_block_value must be up to date<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>bit <A HREF="#nf_erase_all_block">nf_erase_all_block</A> ( void ) </PRE></TD></TABLE><P>This function erase all blocks on a NF card<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><P><TABLE BORDER="1" WIDTH="75 %" BGCOLOR="white" CELLPADDING="6"><TR> <TD>ram/xram</TD> <TD></TD><TR> <TD>cycle</TD> <TD></TD><TR> <TD>stack</TD> <TD></TD><TR> <TD>code</TD> <TD></TD></TABLE><H4> Note </H4><P>This function use the global variable Uint32 gl_address<HR><A NAME="nf_force_write_close"></A><H3> nf_force_write_close </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>void <A HREF="#nf_force_write_close">nf_force_write_close</A> ( void ) </PRE></TD></TABLE><P>End of write close function.<P><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#FFD0D0" CELLPADDING="6"><TR> <TD VALIGN=MIDDLE><PRE>*return:</PRE></TD></TABLE><HR><A NAME="nf_format"></A><H3> nf_format </H3><TABLE BORDER="0" WIDTH="100 %" BGCOLOR="#D6E8FF" CELLPADDING="6">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -